A Model Context Protocol (MCP) server that provides comprehensive web search capabilities using curl commands to interact with DuckDuckGo and Brave Search.
- Multiple Search Engines: Search using DuckDuckGo, Brave Search, or both
- Unified Search: Combine results from multiple search engines with deduplication
- Customizable Parameters: Control region, language, safe search, time filters, and more
- Simple Integration: Easy to integrate with any MCP-compatible client
npm install mcp-web-search
Add the following to your MCP settings configuration file:
{
"mcpServers": {
"web-search": {
"command": "node",
"args": ["path/to/mcp-web-search/index.js"],
"disabled": false,
"autoApprove": []
}
}
}
Search the web using DuckDuckGo.
{
"name": "duckduckgo_search",
"arguments": {
"query": "your search query",
"region": "us-en",
"safeSearch": true,
"time": "",
"maxResults": 10
}
}
Parameters:
-
query
(required): The search query -
region
(optional): Region code (e.g., us-en, uk-en). Default: us-en -
safeSearch
(optional): Enable safe search. Default: true -
time
(optional): Time filter (d: day, w: week, m: month). Default: "" (no filter) -
maxResults
(optional): Maximum number of results. Default: 10
Search the web using Brave Search.
{
"name": "brave_search",
"arguments": {
"query": "your search query",
"country": "US",
"language": "en",
"safeSearch": true,
"freshness": "",
"maxResults": 10
}
}
Parameters:
-
query
(required): The search query -
country
(optional): Country code (e.g., US, GB). Default: US -
language
(optional): Language code (e.g., en, fr). Default: en -
safeSearch
(optional): Enable safe search. Default: true -
freshness
(optional): Time filter (pd: past day, pw: past week, pm: past month, py: past year). Default: "" (no filter) -
maxResults
(optional): Maximum number of results. Default: 10
Search using multiple engines and combine results.
{
"name": "unified_search",
"arguments": {
"query": "your search query",
"engines": ["duckduckgo", "brave"],
"maxResults": 5,
"deduplicate": true
}
}
Parameters:
-
query
(required): The search query -
engines
(optional): Search engines to use. Default: ["duckduckgo", "brave"] -
maxResults
(optional): Maximum number of results per engine. Default: 5 -
deduplicate
(optional): Remove duplicate results. Default: true
All search tools return results in the following format:
{
"engine": "engine_name",
"query": "your search query",
"results": [
{
"title": "Result title",
"url": "https://example.com",
"snippet": "Result snippet or description"
},
...
]
}
The unified search returns:
{
"query": "your search query",
"engines": ["duckduckgo", "brave"],
"results": [
{
"title": "Result title",
"url": "https://example.com",
"snippet": "Result snippet or description",
"engine": "engine_name"
},
...
]
}
This MCP server uses curl commands to interact with search engines and regex-based parsing to extract results from HTML responses. It does not rely on official APIs, which makes it more resilient to API changes but may require updates if the search engines change their HTML structure.
- HTML parsing is done using regex, which may break if search engines change their HTML structure
- No support for advanced search features like image search, news search, etc.
- Rate limiting is handled by the search engines themselves
ISC