Skip to content

OpenRouter Server Tools

IDopenrouter_server_tools
CategoryTools
FeaturesNone
DependenciesNone
RiskHigh (grants provider-executed web reach)

Enables OpenRouter’s provider-executed “server tools” (beta). Unlike normal function tools, these run server-side by OpenRouter: it loops internally and returns the final answer, so the agent loop never dispatches them. This capability contributes request intent, not executable tools — the selected tools are compiled into the OpenRouter request’s tools array as provider-executed entries.

This is the OpenRouter counterpart to client-executed web access like Web Fetch: the difference is who runs the tool. With server tools, OpenRouter performs the search or fetch and folds the results into the same generation — no extra round-trip through Everruns. Use it when your agents run on the OpenRouter provider and you want built-in web reach without wiring up a separate search integration.

None — this capability configures the OpenRouter request, it does not provide client-side tools. The model invokes server tools during the generation and OpenRouter executes them; the only client-visible artifact is the final answer.

OpenRouter exposes these server tools. Enable any subset:

ToolNameWhat it does
Web Searchweb_searchSearches the web and grounds the answer in results. Accepts an optional max_results cap.
Web Fetchweb_fetchFetches and reads a URL the model chooses.
Date & TimedatetimeGives the model the current date and time.
Image Generationimage_generationGenerates images inline.
Apply Patchapply_patchApplies code patches.
FusionfusionOpenRouter’s Fusion tool.
AdvisoradvisorOpenRouter’s Advisor tool.
SubagentsubagentDelegates to an OpenRouter-run subagent.

web_search is the only server tool that takes parameters today (web_search_max_results). Availability of each tool depends on the upstream model and OpenRouter’s beta rollout — see OpenRouter’s server-tools docs for the current list.

  1. Capability config → request intent — the tools you enable are compiled into the OpenRouter routing config and serialized by the OpenRouter driver into the request’s tools array as {"type":"openrouter:…"} entries.
  2. OpenRouter executes server-side — when the model decides to call a server tool, OpenRouter runs it, loops internally, and returns the final answer. The agent loop never sees an intermediate tool call.
  3. No-op off OpenRouter — non-OpenRouter providers ignore the routing config entirely. Enabling this capability on a non-OpenRouter agent is a harmless no-op, so it is safe to leave on for agents that may switch providers.
{
"capabilities": [
{
"capability_ref": "openrouter_server_tools",
"config": { "tools": ["web_search"] }
}
]
}

Enable several tools and cap web-search results

Section titled “Enable several tools and cap web-search results”
{
"capabilities": [
{
"capability_ref": "openrouter_server_tools",
"config": {
"tools": ["web_search", "web_fetch", "datetime"],
"web_search_max_results": 5
}
}
]
}

Config rules:

  • tools — array of server-tool names from the table above. Unknown names are rejected on write. Duplicates are de-duplicated.
  • web_search_max_results — positive integer; only decorates web_search. It is ignored for every other tool and rejected when < 1.

Enabling server tools grants the model provider-executed web reach (web_search / web_fetch). OpenRouter performs these requests, so Everruns’ own egress controls do not apply — the same data-exfiltration class as client-side Web Fetch. The capability is therefore rated High risk and gated behind the same admin-only trust check as other outbound-web capabilities. Grant it only to agents you trust with outbound web access.

  • OpenRouter only — this is an OpenRouter request extension. Other providers ignore it (no error, no behavior change).
  • Beta — server tools are an OpenRouter beta; tool availability varies by upstream model and may change.
  • Provider-side execution — because OpenRouter runs the tools, their activity does not appear as Everruns tool calls. Inspect them in OpenRouter’s dashboard logs instead.