Skip to content
AgentSearch

How to Add Free Web Search to Claude Desktop with MCP (No API Key)

Claude Desktop can work with your files and apps through MCP servers, but a local server is what gives it a web search tool you control. This guide adds Claude Desktop MCP web search with one entry in claude_desktop_config.json, with no API key and no signup. Here's the whole setup:

{
  "mcpServers": {
    "agentsearch": {
      "command": "npx",
      "args": ["-y", "@agentsearchhq/agentsearch-mcp"]
    }
  }
}

That entry runs AgentSearch, the @agentsearchhq/agentsearch-mcp package on npm, which is also listed in the official MCP Registry as io.github.agentsearchhq-coder/agentsearch-mcp. It gives Claude a free agentsearch_web_search tool:

Free tier: up to 25 searches/day per IP, no key needed (shared daily capacity; paid calls have no cap).

What we tested: we ran @agentsearchhq/agentsearch-mcp 1.3.6 (npm latest) on Linux with Node.js 24 over raw stdio to list its tools, then loaded the exact config above with the official MCP TypeScript SDK client, which started the server through npx and ran a real free search. We also launched the Claude Desktop Linux beta (4.4212.0) with that file in place and confirmed where it reads the config. We couldn't sign in on our test machine, so we didn't see the tools inside a chat. The macOS and Windows paths and the menu steps below come from Anthropic's and the MCP project's documentation.

Using a coding tool instead? See add web search to Claude Code with MCP, Cursor, or Cline.

Prerequisites

  • Claude Desktop, current version. Anthropic lists it for macOS, Windows, and Linux (beta).
  • Node.js 20 or newer with npx on your PATH (node -v). The server's package requires Node 20+. Claude Desktop ships a built-in Node.js for desktop extensions, but a server you add in the config file runs your own npx.

Step 1: Open claude_desktop_config.json

The MCP project's guide for Claude Desktop gives this route:

  1. Open the Claude menu in your system's menu bar (not the settings inside a chat) and choose Settings...
  2. Go to the Developer tab.
  3. Click Edit Config.

That creates the file if it doesn't exist and opens it. You can also open it directly:

  • macOS (from the docs): ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows (from the docs): %APPDATA%\Claude\claude_desktop_config.json
  • Linux beta (what we saw): ~/.config/Claude/claude_desktop_config.json. On first launch, the app kept our mcpServers block and added a preferences key to the same file. Leave that key alone.

Anthropic's help center notes a newer Settings layout, where local MCP servers also show up under Settings > Desktop app, then Manage next to Extensions. If your menus look different, the file paths above are what matter.

Step 2: Add the AgentSearch server

Paste the agentsearch block from the top of this post inside mcpServers. If the file already has servers or a preferences key, add the block next to them and mind the commas.

  • agentsearch is the name Claude Desktop shows for the server.
  • command and args run npx -y @agentsearchhq/agentsearch-mcp. The -y skips npx's install prompt, which nobody can answer for a background process.
  • No env block is needed for free search.

Save the file, then check it's valid JSON before you restart:

python3 -m json.tool ~/Library/Application\ Support/Claude/claude_desktop_config.json

Swap in your own path. On a file with a trailing comma, it printed Illegal trailing comma before end of object: line 5 column 55 in our test, which points straight at the problem.

Step 3: Restart and check the tools

Fully quit Claude Desktop and open it again. Closing the window isn't enough; the app reads the config at startup.

To see whether the server connected, Anthropic's help center says to click the + button at the bottom of the chat box and select Connectors, which lists connected MCP servers and their tools. The MCP guide describes the same menu as Add files, connectors, and more, then Connectors, then Manage connectors.

You should see five tools under agentsearch:

  • agentsearch_web_search: web search that returns up to 5 results (title, URL, and a passage of page text). Free with no configuration.
  • agentsearch_extract: reads a URL and returns clean markdown or text. Paid; needs a wallet.
  • agentsearch_render: loads a JavaScript-heavy page in a headless browser and returns markdown, text, HTML, links, or a screenshot. Paid; needs a wallet.
  • agentsearch_review_lookup and agentsearch_review_submit: read and share agent-written reviews of web tools. Free.

The server marks search, extract, render, and review lookup as read-only in its MCP annotations. Here's a trimmed result from the real search we ran with the config above and max_results: 2:

{
  "query": "claude desktop config mcp servers",
  "result_count": 2,
  "results": [
    {
      "title": "Getting Started with Local MCP Servers on Claude Desktop",
      "url": "https://support.claude.com/en/articles/10949351-getting-started-with-local-mcp-servers-on-claude-desktop",
      "content": "Click the \"+\" button on bottom the chat box within Claude Desktop, then select \"Connectors.\" This will show you connected MCP servers ...",
      "domain": "support.claude.com"
    },
    {
      "title": "Connect to local MCP servers",
      "url": "https://modelcontextprotocol.io/docs/2026-07-28/develop/connect-local-servers",
      "content": "Learn how to extend Claude Desktop with local MCP servers to enable file system access and other powerful integrations.",
      "domain": "modelcontextprotocol.io"
    }
  ]
}

Results are passages, not whole pages. That's what Extract and Render are for.

Step 4: Search, then Extract, then Render in a chat

Start with something Claude can't know from its training data:

Search the web for this week's release notes for Node.js and list the headline changes with links.

Claude calls agentsearch_web_search and answers from the passages. The MCP guide says Claude asks for your approval before tool actions, so expect a prompt.

When a passage isn't enough, ask for the full page:

Extract the first link as markdown and summarize the breaking changes.

That's Extract. If the page is a single-page app and Extract comes back thin, ask for Render instead:

That page loads its content with JavaScript. Render it and pull out the version table as a list.

Without a wallet, Extract and Render answer with No wallet is configured, so no call was made. Nothing is charged, and search keeps working. Our guide on reading JavaScript pages from an AI agent explains when you need each one.

Step 5 (optional): Turn on paid Extract and Render

Search and Extract cost $0.005 per call, paid in USDC over x402, with no signup, no API key, and no minimums. Render is for pages that only show their content after JavaScript runs. See pricing for current rates.

The server pays through the Pocket Network Agentic Portal with USDC on Base. Give it the key for a new, dedicated wallet that holds only a small amount of USDC, in an env block:

{
  "mcpServers": {
    "agentsearch": {
      "command": "npx",
      "args": ["-y", "@agentsearchhq/agentsearch-mcp"],
      "env": {
        "AGENTSEARCH_WALLET_PRIVATE_KEY": "0xYOUR_DEDICATED_WALLET_KEY",
        "AGENTSEARCH_MAX_TOTAL_ATOMIC": "50000"
      }
    }
  }
}

Restart Claude Desktop after you change it.

Search stays free by default, even with a wallet key. In 1.3.6, the key only turns on paid Extract and Render. agentsearch_web_search stays on the free tier unless you also set AGENTSEARCH_MODE to paid (or auto).

Spend caps. The server checks these before it signs anything:

  • AGENTSEARCH_MAX_TOTAL_ATOMIC caps total spend per server session in USDC atomic units (1000000 = $1.00). The default is $1.00; the example sets $0.05. The count resets when the server restarts, which happens every time Claude Desktop restarts.
  • AGENTSEARCH_MAX_PER_CALL_ATOMIC is a per-call ceiling. You can only lower it.

With the cap at 0 and an unfunded test key, Extract returned Session spend cap reached ... Nothing was signed.

The key sits in plain text in this file, so never copy the file into a repo or a support ticket. The package's README also points out that an MCP client may not ask before every tool call, so the caps are what hold.

Troubleshooting

Run the server by itself. Run npx -y @agentsearchhq/agentsearch-mcp in a terminal. A healthy server prints a line starting agentsearch-mcp listening on stdio to stderr and waits (Ctrl+C to stop). If that fails, Claude Desktop can't start it either.

Read the logs. The MCP guide puts Claude Desktop's MCP logs in ~/Library/Logs/Claude on macOS and %APPDATA%\Claude\logs on Windows. mcp.log covers connections, and mcp-server-agentsearch.log holds the server's own stderr. On macOS, tail -n 20 -f ~/Library/Logs/Claude/mcp*.log follows them live.

Trailing comma or other invalid JSON. Validate the file with python3 -m json.tool as shown in Step 2, then restart.

node or npx not found. Install Node.js 20+. If you use nvm or a similar version manager, the desktop app may not see the PATH from your shell profile. Run which npx in a terminal and put that full path in command.

Windows (untested). We didn't test Windows. If Claude Desktop can't start npx there, wrapping it as "command": "cmd" with "args": ["/c", "npx", "-y", "@agentsearchhq/agentsearch-mcp"] is a common fix. The MCP guide also covers an ENOENT error mentioning ${APPDATA}: add your expanded APPDATA path to the server's env block.

Search says "AGENTSEARCH_MODE must be one of 'free', 'paid' or 'auto'". Fix the typo or remove the variable. No call is made.

Team or Enterprise accounts. Admin policies can restrict extensions and MCP servers. Check with your admin if the server never appears.

For retry and fallback patterns, see error handling for AI agent web tools.

Other ways to connect

  • Pocket Agentic Portal MCP. An entry running npx -y @pocket-network/agentic-portal-mcp connects Claude Desktop to the Pocket Agentic Portal, where AgentSearch is one of the listed services.
  • Plain HTTP. To call search from your own code, see the free web search API page. For per-call payments in depth, read x402 pay-per-call APIs for AI agents.

More clients are on the AgentSearch MCP page, and MCP web search for AI agents covers the bigger picture.

FAQ

Do I need an API key to add web search to Claude Desktop?

No. The config at the top has no key, no account, and no env block. Free tier: up to 25 searches/day per IP, no key needed (shared daily capacity; paid calls have no cap).

Where is claude_desktop_config.json?

On macOS it's ~/Library/Application Support/Claude/claude_desktop_config.json and on Windows %APPDATA%\Claude\claude_desktop_config.json, per the MCP docs. The Linux beta read ~/.config/Claude/claude_desktop_config.json in our test. Settings > Developer > Edit Config opens it for you.

Why don't the tools show up after I saved the file?

Claude Desktop reads the config only at startup, so quit it fully and reopen it. If the server still isn't listed under Connectors, check the JSON, run the npx command in a terminal, and read mcp-server-agentsearch.log.

Does adding a wallet key make search cost money?

Not by default. In 1.3.6, search stays free with a wallet key set. Only AGENTSEARCH_MODE=paid (or auto) makes search a paid call at $0.005. Extract and Render are the calls that use the wallet.

How many results does a search return?

Up to 5 per call. Claude can ask for fewer with max_results (1 to 5).

Can I install it as a Desktop Extension instead?

Yes. Download agentsearch-mcp-1.3.6.mcpb from the v1.3.6 GitHub release, then open it (double-click, or drag it into Claude Desktop's Settings → Extensions) and click Install. Free search still needs no API key. The config file entry in this guide remains a valid alternative and always runs the latest version from npm.

Is it safe to let Claude read web pages?

Treat web content as untrusted input, because a page can contain text written to steer an AI. Keep approvals on for tools that change files or send messages, and review what Claude does after it reads external pages.

How do I turn it off?

Delete the agentsearch block from claude_desktop_config.json and restart Claude Desktop.

Get started

Paste the agentsearch block into claude_desktop_config.json, restart Claude Desktop, check Connectors for the five tools, and ask Claude about something that changed this week. When you need full pages, add a capped wallet key for Extract and Render. See pricing and the MCP setup page, or browse more guides on the AgentSearch blog.

More from the blog

Service pages: Web Search API · Web Extract API · Web Render API