web-search-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@web-search-mcpwhat are today's top technology news headlines?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
web-search-mcp
An MCP server that exposes a real, cited web_search tool by shelling out to the Claude Code CLI running inside an isolated Docker container, logged into a personal claude.ai Pro subscription.
Why this exists
Some environments proxy Claude Code through a gateway (e.g. an internal LiteLLM-style proxy) that doesn't support Anthropic's built-in web_search server tool for the model it routes to. This project sidesteps that entirely: it's a separate, single-purpose MCP tool backed by its own Claude Code CLI session, running in a container so its login never touches the host's own Claude Code config.
See docs/superpowers/specs/2026-07-28-web-search-mcp-design.md for the full design rationale, including why a raw Anthropic API key doesn't work for this and why Docker isolation is necessary.
Related MCP server: Claude Web Search MCP Server
How it works
MCP client ──tool call──▶ server.py (FastMCP, stdio) ──subprocess──▶ docker run --rm -v claude-pro-home:/root web-search-claude:latest
│
▼
Claude Code CLI, logged into a Pro account
(real web_search tool, real Anthropic models)server.py runs docker run per query, parses the CLI's JSON output, and returns the answer text (which includes a Sources: section whenever the CLI actually searched).
Setup
Requires Docker and uv.
git clone https://github.com/bartdorlandt/web-search-mcp.git
cd web-search-mcp
uv sync
# Build the image (bundles the Claude Code CLI)
docker build -t web-search-claude:latest .
# Create a volume to hold the Pro-account login, then log in (interactive, opens a browser)
docker volume create claude-pro-home
docker run --rm -it -v claude-pro-home:/root web-search-claude:latest /loginThe login only needs to happen once — the OAuth session persists in the claude-pro-home volume across container runs.
Manual test
uv run python -c "from server import _web_search_impl; print(_web_search_impl('What are today\'s top technology news headlines?'))"Using it standalone
uv run python server.pyThis starts the MCP server over stdio — point any MCP client at that command directly.
Adding it to gridctl
If you're using gridctl as an MCP gateway, add it as a local-process server in your stack.yaml:
mcp-servers:
- name: web-search
command: [uv, run, --directory, /path/to/web-search-mcp, python, server.py]
transport: stdioClone this repo to /path/to/web-search-mcp (or wherever you like) and update the path above, then gridctl reload. No env: block is needed — the only credential this tool uses lives in the claude-pro-home Docker volume, not in gridctl's variable store.
Repo: https://github.com/bartdorlandt/web-search-mcp
Notes
No automated test suite — the wrapper's logic is thin enough that its correctness is verified functionally (see the design doc's Testing section).
Calls are assumed serial, not concurrent — see "Operational assumptions" in the design doc.
Every query bills against the logged-in account's subscription usage.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bartdorlandt/web-search-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server