Skip to main content
Glama
README.md2.37 kB
# search-mcp: Minimal Web Search MCP Server A simple, reliable MCP server for web search using DuckDuckGo. No API keys required. Totally vibe-coded in ~25 minutes. Don't trust this app (even if it works for me). ## Features - **Single tool**: `web_search` - search the web via DuckDuckGo - **No API keys needed** - uses free DuckDuckGo API - **Timeout handling** - 10-second timeout per request to prevent hanging - **Minimal dependencies** - only `mcp` and `requests` - **Proper MCP protocol** - correct stdio transport implementation ## Installation ```bash cd ~/Code/search-mcp pip install -e . ``` Or with uv: ```bash cd ~/Code/search-mcp uv pip install -e . ``` ## Usage ### Direct Testing ```bash python search_mcp.py ``` Then send JSON-RPC requests via stdin: ```json {"jsonrpc": "2.0", "method": "tools/list", "id": 1} ``` ### Amazon Q Configuration Add to your `~/.config/cursor/mcp.json` or Kiro-CLI config: ```json { "mcpServers": { "WebSearch": { "type": "stdio", "command": "python3", "args": ["/Users/USERNAME/Code/search-mcp/search_mcp.py"], "timeout": 120000, "disabled": false } } } ``` ## Tool: `web_search` **Parameters:** - `query` (string, required): The search query - `max_results` (integer, optional): Max results to return (default: 5) **Example:** ```python await client.call_tool("web_search", {"query": "Python async programming", "max_results": 3}) ``` ## Why This Works 1. **Correct MCP protocol** - properly implements stdio transport with persistent connection 2. **Timeout handling** - 10-second timeout on requests to prevent Amazon Q hangs 3. **Error handling** - gracefully handles network errors and timeouts 4. **Simple codebase** - ~150 lines, easy to debug or modify 5. **No external service** - uses DuckDuckGo's free API, no rate limiting issues ## Troubleshooting ### Module not found errors Make sure you installed with `pip install -e .`: ```bash python3 venv .venv source .venv/bin/activate pip install -e . ``` ### Server not responding Check that the Python path is correct in your config: ```bash which python3 python3 search_mcp.py ``` ### Timeout issues The server has a 10-second timeout per request. If searches are timing out: - Check your internet connection - Verify DuckDuckGo is accessible - Try simpler/shorter search queries ## License MIT

Latest Blog Posts

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/deeprave/mcp-websearch'

If you have feedback or need assistance with the MCP directory API, please join our Discord server