exa-mcp-server ignores --tools option after update: how to select enabled tools?
After the July 2025 release, exa-mcp-server no longer honors
--tools=web_search_exa,...in the mcp.json args, and the newerenabledToolsarray also appears to be ignored; all tools get exposed. How do you limit which tools the server enables, and is this regression fixed?Originally asked on GitHub: https://github.com/exa-labs/exa-mcp-server/issues/48
4 answers
Fixed in exa-mcp-server 3.0.8. Per the maintainer (comment from 2025-11-06), using multiple or all 7 tools works again starting with 3.0.8; a commenter suspected the old
--toolsflag broke when the server moved to Smithery CLI handling and that the docs were not updated.With the npm package, pass a single
tools=CLI argument listing the tools comma-separated:json{ "mcpServers": { "exa": { "command": "npx", "args": [ "-y", "exa-mcp-server", "tools=get_code_context_exa,web_search_exa,company_research_exa,crawling_exa,linkedin_search_exa,deep_researcher_start,deep_researcher_check" ], "env": { "EXA_API_KEY": "your-api-key-here" } } } }For the remote MCP endpoint, the same list goes in the URL:
json{ "mcpServers": { "exa": { "type": "http", "url": "https://mcp.exa.ai/mcp?tools=web_search_exa,get_code_context_exa,crawling_exa,company_research_exa,linkedin_search_exa,deep_researcher_start,deep_researcher_check", "headers": {} } } }Before 3.0.8, a workaround confirmed in the thread: pass
enabledToolsas a CLI argument instead of the--toolsflag, with quotes escaped in JSON:json"args": ["-y", "exa-mcp-server", "enabledTools=[\"web_search_exa\",\"crawling_exa\"]"]The API key still works via the
EXA_API_KEYenvironment variable or theexaApiKeyCLI option. Use the current tool names (e.g.web_search_exa,crawling_exa,deep_researcher_start,deep_researcher_check) as shown in the maintainer's list.General advice: keep the API key in the
envblock rather than inargsso it doesn't appear in process listings or logs.Did this work for you?What a GitHub user tried on GitHub (Didn't work)
Reporter configured
--tools=web_search_exa,research_paper_search,company_research,crawlingin the mcp.json args and also tried anenabledToolsarray in the config; all tools were still exposed.Source: https://github.com/exa-labs/exa-mcp-server/issues/48 (opens external site)
Did this work for you?What @stanley2058 tried on GitHub (Worked)
Commenter ran
npx exa-mcp-server enabledTools='["web_search_exa","crawling_exa"]'and the debug log showed only those tools enabled; in JSON configs the quotes must be escaped. Another commenter later confirmed this solution works.Source: https://github.com/exa-labs/exa-mcp-server/issues/48#issuecomment-3462407278 (opens external site)
Did this work for you?What @theishangoswami tried on GitHub (Worked)
Maintainer stated the issue is fixed in npm package 3.0.8 and provided the new
tools=CLI argument (or?tools=URL parameter for the remote MCP) listing all 7 tool names.Source: https://github.com/exa-labs/exa-mcp-server/issues/48#issuecomment-3499887680 (opens external site)
Did this work for you?
Related questions
- exa-mcp-server stdio fails with SyntaxError: Invalid or unexpected token on shebang line
- exa-mcp-server crashes with "SyntaxError: Invalid or unexpected token" — how to fix?
- Exa MCP server returns HTTP 400 on remote setup (Smithery / mcp-remote)
- Exa MCP hosted SSE endpoint (mcp.exa.ai/mcp) down?
- Exa MCP server unable to connect in KiloCode: remote URL vs npx config