mcp-web-search
Provides DuckDuckGo web search and site fetching tools for Claude Desktop, enabling up to 10 search results and text content extraction from URLs.
README
mcp-web-search
A local MCP server that gives Claude web search and page-fetching capabilities — built to work around the network restrictions that Claude organisation accounts operate under.
Why this exists
Claude.ai organisation accounts restrict outbound network access to a fixed domain allowlist. General web search and browsing are blocked and regular members cannot change that. Personal accounts have built-in web search and don't have this problem.
This server runs locally on your machine — where the internet is unrestricted — and proxies web requests back to Claude via the MCP protocol. If you've ever hit host_not_allowed with no way to fix it, this is for you.
What it does
Two tools, nothing more:
| Tool | Description |
|---|---|
search_list |
Search the web via DuckDuckGo and return up to 10 ranked results |
access_site |
Fetch any URL, follow redirects, and return its content as plain text |
Tech stack
| Component | Technology | Version |
|---|---|---|
| Language | Python | ≥ 3.12 |
| MCP framework | FastMCP (mcp package) |
≥ 1.28.1 |
| Search backend | DuckDuckGo (ddgs package) |
≥ 9.14.4 |
| Package manager | uv | any recent |
Architecture
graph TD
Claude[Claude Desktop] -->|MCP stdio / HTTP| Server[mcp-web-search<br/>FastMCP server]
Server -->|HTTPS| DDG[DuckDuckGo API]
Server -->|HTTPS| Web[Any public URL]
Claude calls one of the two tools over MCP. The server makes the outbound request from the local machine (bypassing Claude's network restrictions) and returns structured JSON.
Key design decisions
No authentication on the server
Decision: The server accepts all requests without any auth token or API key.
Why: It only binds to 127.0.0.1 by default and is intended as a personal local tool — adding auth would be friction with no real security benefit in that context.
Do not change because: adding auth here would also require changes to every Claude Desktop config that uses this server.
Raw urllib instead of httpx / requests
Decision: access_site uses the stdlib urllib.request only.
Why: Avoids an extra dependency for a single HTTP call. ddgs already handles the search transport.
Do not change because: it keeps the dependency surface minimal; only revisit if redirect handling or TLS behaviour becomes a problem.
Setup & contributing
See CONTRIBUTING.md.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.