diff --git a/src/mcp/AGENTS.md b/src/mcp/AGENTS.md index 7f175dff0..478a03841 100644 --- a/src/mcp/AGENTS.md +++ b/src/mcp/AGENTS.md @@ -25,7 +25,7 @@ mcp/ | Name | URL | Purpose | Auth | |------|-----|---------|------| -| websearch | mcp.exa.ai/mcp?tools=web_search_exa | Real-time web search | EXA_API_KEY | +| websearch | mcp.exa.ai / mcp.tavily.com | Real-time web search | EXA_API_KEY / TAVILY_API_KEY | | context7 | mcp.context7.com/mcp | Library docs | CONTEXT7_API_KEY | | grep_app | mcp.grep.app | GitHub code search | None | @@ -35,6 +35,36 @@ mcp/ 2. **Claude Code compat**: `.mcp.json` with `${VAR}` expansion 3. **Skill-embedded**: YAML frontmatter in skills (handled by skill-mcp-manager) +## Websearch Provider Configuration + +The `websearch` MCP supports multiple providers. Exa is the default for backward compatibility and works without an API key. + +| Provider | URL | Auth | API Key Required | +|----------|-----|------|------------------| +| exa (default) | mcp.exa.ai | x-api-key header | No (optional) | +| tavily | mcp.tavily.com | Authorization Bearer | Yes | + +### Configuration Example + +```jsonc +{ + "websearch": { + "provider": "tavily" // or "exa" (default) + } +} +``` + +### Environment Variables + +- `EXA_API_KEY`: Optional. Used when provider is `exa`. +- `TAVILY_API_KEY`: Required when provider is `tavily`. + +### Priority and Behavior + +- **Default**: Exa is used if no provider is specified. +- **Backward Compatibility**: Existing setups using `EXA_API_KEY` continue to work without changes. +- **Validation**: Selecting `tavily` without providing `TAVILY_API_KEY` will result in a configuration error. + ## CONFIG PATTERN ```typescript @@ -68,3 +98,4 @@ const mcps = createBuiltinMcps(["websearch"]) // Disable specific - **Disable**: User can set `disabled_mcps: ["name"]` in config - **Context7**: Optional auth using `CONTEXT7_API_KEY` env var - **Exa**: Optional auth using `EXA_API_KEY` env var +- **Tavily**: Requires `TAVILY_API_KEY` env var