mcp-web-search
MCP Web Search
A Model Context Protocol (MCP) server for web search using DuckDuckGo. No API key required.
Features
Web Search - Search the web via DuckDuckGo's static HTML interface
Content Extraction - Fetch and extract readable content from any webpage using Mozilla's Readability
Zero Configuration - No API keys, no signup, works out of the box
Lightweight - Uses Node.js native
fetch, no heavy browser automation
Tools
Tool | Description |
| Search the web with DuckDuckGo. Returns title, URL, and snippet for each result. |
| Extract main text content from a webpage URL. Removes ads, navigation, and noise. |
Usage
Local installation
git clone https://github.com/doranobik/mcp-web-search.git
cd mcp-web-search
npm install
npm run build
node dist/index.jsNote: This package is not published to npm. The
mcp-web-searchname on npm belongs to an unrelated project, so install from this repository instead.
Docker
docker build -t mcp-web-search .
docker run -i mcp-web-searchMCP Client Configuration
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"web-search": {
"command": "node",
"args": ["/path/to/mcp-web-search/dist/index.js"]
}
}
}LM Studio (mcp.json):
{
"mcpServers": {
"web-search": {
"command": "node",
"args": ["/path/to/mcp-web-search/dist/index.js"]
}
}
}Tool Parameters
webSearch
Parameter | Type | Required | Default | Description |
| string | Yes | - | Search query |
| number | No | 10 | Max results (1-20) |
| string | No | - | Region code (e.g., |
fetchWebContent
Parameter | Type | Required | Default | Description |
| string | Yes | - | URL to fetch |
| number | No | 5000 | Max characters to return (100-200000) |
Disclaimer
This server searches the web by parsing DuckDuckGo's HTML interface, not an official API. It may break if DuckDuckGo changes its markup, and heavy automated use may violate DuckDuckGo's terms of service or lead to rate limiting. Use it responsibly and at your own risk.
License
MIT — see LICENSE for details.