agent-web-search
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ARK_API_KEY | No | Required for ARK provider. One key, or multiple comma/newline-separated keys | |
| EXA_API_KEY | No | Uses the paid Search API when present | |
| EXA_MCP_URL | No | Overrides the free MCP endpoint when no API key is set | |
| XAI_API_KEY | No | xAI API credential (required for Grok provider) | |
| YDC_API_KEY | No | You.com Search API credential (required for You.com provider) | |
| GEMINI_API_KEY | No | Google AI API credential (required for Gemini provider) | |
| TAVILY_API_KEY | No | Tavily Search API credential (required for Tavily provider) | |
| PARALLEL_API_KEY | No | Enables the paid API; omit it to use the free MCP | |
| PERPLEXITY_API_KEY | No | Perplexity Search API credential (required for Perplexity provider) | |
| BRAVE_SEARCH_API_KEY | No | Brave Web Search API credential (required for Brave provider) | |
| AGENT_WEB_SEARCH_TIMEOUT | No | Socket timeout for a single upstream HTTP call. Multi-step providers multiply it: keyless Parallel makes up to 3 calls (worst case 3×), ARK may append a continuation call (worst case 2×), so the whole search can take up to 3 × this value | 60 |
| AGENT_WEB_SEARCH_HTTP_HOST | No | HTTP bind host for container deployments | 0.0.0.0 |
| AGENT_WEB_SEARCH_HTTP_PORT | No | HTTP bind port; explicit value overrides platform PORT | PORT or 8000 |
| AGENT_WEB_SEARCH_PROVIDERS | No | Comma-separated startup-enabled provider set | ddgs,exa,parallel |
| AGENT_WEB_SEARCH_ARK_MODELS | No | Comma/newline-separated ARK model IDs | |
| AGENT_WEB_SEARCH_AUTH_TOKEN | No | Required HTTP Bearer Token, at least 32 characters | |
| AGENT_WEB_SEARCH_GROK_MODELS | No | Comma/newline-separated Grok model IDs | |
| AGENT_WEB_SEARCH_GEMINI_MODELS | No | Comma/newline-separated Gemini model IDs | |
| AGENT_WEB_SEARCH_MCP_TRANSPORT | No | stdio or http; --transport may override it | stdio |
| AGENT_WEB_SEARCH_HTTP_LOG_LEVEL | No | Uvicorn log level for the container server | info |
| AGENT_WEB_SEARCH_ALLOW_ANONYMOUS | No | Explicitly disables HTTP auth for trusted/demo environments | false |
| AGENT_WEB_SEARCH_HTTP_ALLOWED_HOSTS | No | Optional comma-separated Host allowlist | |
| AGENT_WEB_SEARCH_HTTP_ALLOWED_ORIGINS | No | Optional comma-separated Origin allowlist; requires allowed hosts |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| web_searchA | Search the web using agent-native semantic search and LLM-grounding backends. Optimized for complete natural-language questions rather than traditional keyword queries. Enabled providers: DuckDuckGo web search; Exa web search; Parallel LLM-optimized web search. Use a complete natural-language question. Failed providers are omitted from successful responses. If every enabled provider fails, the call returns a tool error with code all_providers_failed and per-provider diagnostics. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 1 tool
With only one tool in the set, there is no possibility of confusing it with another tool. Its purpose—semantic web search for natural-language questions—is unambiguous and clearly stated.
The single tool uses a clean snake_case verb_noun name (web_search) that is readable and conventional. No competing conventions exist to create inconsistency.
A search server can legitimately be a one-tool server, so the scope is defensible. However, a single tool is thin for a search surface that could reasonably offer companion operations (e.g., page fetch/retrieval), placing it at the borderline end of the rubric.
Search itself is well covered, including multi-provider fallback and diagnostics, but the lifecycle dead-ends there: an agent getting only snippets has no tool to retrieve or read a specific result page. This is a notable gap an agent must work around.