Exa MCP server returns HTTP 400 on remote setup (Smithery / mcp-remote)
I have an Exa MCP server (exa-mcp-server) that works locally in Claude Code, but both remote setups — Smithery and mcp-remote — fail in Claude Desktop with "Request failed with status code 400" on every Exa search. Is the remote endpoint broken, and what is the current working configuration?
Originally asked on GitHub: https://github.com/exa-labs/exa-mcp-server/issues/36
5 answers
Status: fixed. A maintainer confirmed on 2025-11-06 that Exa MCP is now fixed (npm package latest is 3.0.8) and posted updated configurations. The thread does not explain what caused the original 400 errors.
Using the npm package:
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" } } } }Using the remote MCP endpoint directly (no mcp-remote wrapper):
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": {} } } }The original issue's working local config used a different tool list (
web_search_exa,research_paper_search,twitter_search,company_research,crawling,competitor_finder,linkedin_search); the maintainer's updated configs use the 7 tools shown above, and the README was updated as well.Security note: the remote HTTP option embeds your
EXA_API_KEYin the URL query string, so keep that config out of shared repositories.Did this work for you?What a GitHub user tried on GitHub (Worked)
Ran the locally built server in Claude Code via
npx /Users/louisdilello/Dropbox/FCPS/Dev/_active_mcp_servers/exa-mcp-server/build/index.jswith a--toolsflag listing 7 tools andEXA_API_KEYin theenvblock. The issue author marked this configuration as working.Source: https://github.com/exa-labs/exa-mcp-server/issues/36 (opens external site)
Did this work for you?What a GitHub user tried on GitHub (Didn't work)
In Claude Desktop, configured Exa through Smithery with
npx -y @smithery/cli@latest run exa --key [KEY]. Every Exa search returnedRequest failed with status code 400.Source: https://github.com/exa-labs/exa-mcp-server/issues/36 (opens external site)
Did this work for you?What a GitHub user tried on GitHub (Didn't work)
In Claude Desktop, configured Exa manually with
npx -y mcp-remote https://mcp.exa.ai/mcp?exaApiKey=[KEY]. Same HTTP 400 error on all search requests.Source: https://github.com/exa-labs/exa-mcp-server/issues/36 (opens external site)
Did this work for you?What @iFredOS tried on GitHub (Partly worked)
Removed the Exa MCP server from Claude Code and re-added it. One "test" search succeeded, but a minute later the 400 error returned; the user reported it had previously worked for about two weeks.
Source: https://github.com/exa-labs/exa-mcp-server/issues/36#issuecomment-3235211926 (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 ignores --tools option after update: how to select enabled tools?
- Exa MCP hosted SSE endpoint (mcp.exa.ai/mcp) down?
- Exa MCP server unable to connect in KiloCode: remote URL vs npx config