A Model Context Protocol (MCP) server implementation that integrates with Searxng/Tavily/DuckDuckGo/Bing for web search, local browser search, and scraping capabilities with Firecrawl.
- Web Search, scrape, crawl and extract content from websites.
- Support multiple search engines and web scrapers: SearXNG, Firecrawl, Tavily, DuckDuckGo, Bing, etc.
- Local web search (browser search), support multiple search engines: Bing, Google, Baidu, Sogou, etc.
- Use
puppeteer-coreto scrape content from websites. - You should have a local browser installed, such as
Chromium,Google Chrome,Google Chrome Canary, etc. - Free, no keys required.
- Use
- Enabled tools:
one_search,one_scrape,one_map - Support for self-hosted: SearXNG, Firecrawl, etc. (see Deploy)
To install OneSearch for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @yokingma/one-search --client claude# Manually install (Optional)
npm install -g one-search-mcp# using npx
env SEARCH_API_URL=http://127.0.0.1:8080 FIRECRAWL_API_URL=http://127.0.0.1:3002 npx -y one-search-mcpSearch Engine:
- SEARCH_PROVIDER (Optional): The search provider to use, supports
searxng,duckduckgo,bing,tavily,local, default islocal. - SEARCH_API_URL (Optional): The URL of the SearxNG API, required for
searxng. - SEARCH_API_KEY (Optional): The API key for the search provider, required for
tavily,bing.
// supported search providers
export type SearchProvider = 'searxng' | 'duckduckgo' | 'bing' | 'tavily' | 'local';Firecrawl:
- FIRECRAWL_API_URL (Optional): The URL of the Firecrawl API, required for
firecrawl. - FIRECRAWL_API_KEY (Optional): The API key for the Firecrawl API, required for
firecrawlif using cloud service.
Your mcp.json file will look like this:
{
"mcpServers": {
"one-search-mcp": {
"command": "npx",
"args": ["-y", "one-search-mcp"],
"env": {
"SEARCH_PROVIDER": "searxng",
"SEARCH_API_URL": "http://127.0.0.1:8080",
"SEARCH_API_KEY": "YOUR_API_KEY",
"FIRECRAWL_API_URL": "http://127.0.0.1:3002",
"FIRECRAWL_API_KEY": "YOUR_API_KEY"
}
}
}
}Add this to your ./codeium/windsurf/model_config.json file:
{
"mcpServers": {
"one-search-mcp": {
"command": "npx",
"args": ["-y", "one-search-mcp"],
"env": {
"SEARCH_PROVIDER": "searxng",
"SEARCH_API_URL": "http://127.0.0.1:8080",
"SEARCH_API_KEY": "YOUR_API_KEY",
"FIRECRAWL_API_URL": "http://127.0.0.1:3002",
"FIRECRAWL_API_KEY": "YOUR_API_KEY"
}
}
}
}Local deployment of SearXNG and Firecrawl, please refer to Deploy
- [ReferenceError]: __name is not defined: This is because Puppeteer has problems with
tsx, esbuild#1031
MIT License - see LICENSE file for details.