
About
A Model Context Protocol (MCP) server that provides web search capabilities through DuckDuckGo, with additional features for content fetching and parsing.
Features
- Web Search: Search DuckDuckGo with advanced rate limiting and result formatting
- Content Fetching: Retrieve and parse webpage content with intelligent text extraction
- Rate Limiting: Built-in protection against rate limits for both search and content fetching
- Error Handling: Comprehensive error handling and logging
- LLM-Friendly Output: Results formatted specifically for large language model consumption
Available Tools
Search Tool
Performs a web search on DuckDuckGo and returns formatted results.
Parameters:
query: Search query stringmax_results: Maximum number of results to return (default: 10)region: (Optional) Region/language code to override the default. Leave empty to use the configured default region.
Region Code Examples:
us-en: United States (English)cn-zh: China (Chinese)jp-ja: Japan (Japanese)de-de: Germany (German)fr-fr: France (French)wt-wt: No specific region
Example Usage:
- Search with default settings:
search("python tutorial") - Search with specific region:
search("latest news", region="jp-ja")for Japanese news
Content Fetching Tool
Fetches and parses content from a webpage.
Parameters:
url: The webpage URL to fetch content fromstart_index: Character offset to start reading from (for pagination)max_length: Maximum number of characters to returnbackend: Optional per-call override of the default fetch backend (httpx,curl, orauto). When omitted, uses whatever was set via--fetch-backendat server startup.
Fetch Backend (bypassing bot detection)
Some sites block the default httpx client because of its distinctive TLS fingerprint. An opt-in backend, curl (via curl_cffi), impersonates a real Chrome browser's TLS handshake and passes through those checks.
Backend options:
httpx: Lightweight async HTTP (default)curl: Usescurl_cffiwith Chrome 131 TLS impersonation (requires[browser]extra)auto: Trieshttpxfirst; on 403 or Cloudflare challenge, retries withcurl(requires[browser]extra)
Features in Detail
Rate Limiting
- Search: Limited to 30 requests per minute
- Content Fetching: Limited to 20 requests per minute
- Automatic queue management and wait times
Result Processing
- Removes ads and irrelevant content
- Cleans up DuckDuckGo redirect URLs
- Formats results for optimal LLM consumption
- Truncates long content appropriately
Content Safety
-
SafeSearch Filtering: Configured at server startup via
DDG_SAFE_SEARCHenvironment variable- Controlled by administrators, not modifiable by AI assistants
- Filters inappropriate content based on the selected level
- Uses DuckDuckGo's official
kpparameter
-
Region Localization:
- Default region set via
DDG_REGIONenvironment variable - Can be overridden per search request by AI assistants
- Improves result relevance for specific geographic regions
- Default region set via
This server runs through your single 1Server connection. No extra config required.