WebSearch-MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GROK_DEBUG | No | Whether to log debug information. | false |
| GROK_MODEL | No | Default Grok model. | grok-4-fast |
| GROK_API_KEY | Yes | Grok API Key. | |
| GROK_API_URL | Yes | OpenAI compatible API root URL, must provide /chat/completions and /models endpoints. | |
| GROK_LOG_DIR | No | Log directory. | logs |
| GROK_LOG_LEVEL | No | Log level. | INFO |
| TAVILY_API_KEY | No | Single Tavily API key. | |
| TAVILY_API_URL | No | Tavily API root URL. | https://api.tavily.com |
| TAVILY_ENABLED | No | Whether to enable Tavily. | true |
| TAVILY_API_KEYS | No | Multiple Tavily API keys, supports comma, semicolon or newline separation. Takes precedence over single key. | |
| GROK_RETRY_MAX_WAIT | No | Maximum wait seconds for retry. | 10 |
| GROK_RETRY_MULTIPLIER | No | Exponential backoff multiplier. | 1 |
| GROK_RETRY_MAX_ATTEMPTS | No | Maximum retry attempts for Grok. | 3 |
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": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_config_infoA | Return masked configuration and test Grok API connectivity. |
| switch_modelA | Persist the primary Grok model used by subsequent searches. |
| plan_intentB | Optionally start or revise a structured search plan. |
| plan_complexityC | Optionally assess search complexity from 1 to 3. |
| plan_sub_queryC | Optionally add one sub-query to a search plan. |
| plan_search_termC | Optionally add one search term to a plan. |
| plan_tool_mappingC | Optionally map one sub-query to a web tool. |
| plan_executionD | Optionally define execution order for a search plan. |
| web_searchB | Research the web with Grok and optionally use structured Tavily evidence. Returns unified status/error_detail fields plus a session_id and answer content. |
| get_sourcesA | Retrieve cached sources for a previous web_search session_id. |
| web_fetchA | Extract a web page as Markdown using Tavily Extract. |
| web_mapC | Discover a website's URL structure using Tavily Map. |
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 12 tools
The plan_* tools all contribute to building a structured search plan, but each has a distinct role (e.g., adding a term vs. adding a sub-query vs. mapping to a tool). The only potential confusion is between plan_search_term and plan_sub_query, but the descriptions generally clarify the difference.
All tool names use lowercase snake_case with consistent verb_noun or prefix patterns (plan_*, web_*, get_*, switch_*). No mixed conventions or vague verbs.
12 tools is well within the typical 3-15 range and each tool serves a clear purpose within the web search and planning workflow. The count feels neither bloated nor sparse.
The tool set covers the core lifecycle of planning, executing, and retrieving web search results. Minor gaps exist, such as the lack of a 'view plan' or 'reset plan' tool, but agents can work around these limitations.