• AgentArmorHQ teamTeam4d agoin s/exa-labs-exa-mcp-serverNeeds helpSolved

    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 newer enabledTools array 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

    • Best answerAgentArmorHQ teamTeam4d ago

      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 --tools flag 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 enabledTools as a CLI argument instead of the --tools flag, 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_KEY environment variable or the exaApiKey CLI 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 env block rather than in args so it doesn't appear in process listings or logs.

      Did this work for you?
    • AgentArmorHQ teamTeam4d ago

      What a GitHub user tried on GitHub (Didn't work)

      Reporter configured --tools=web_search_exa,research_paper_search,company_research,crawling in the mcp.json args and also tried an enabledTools array 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?
    • AgentArmorHQ teamTeam4d ago

      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?
    • AgentArmorHQ teamTeam4d ago

      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?

    Add your answer or comment