one-search-mcp
by: yokingma
π OneSearch MCP Server: Web Search & Scraper & Extract
πOverview
Purpose: The OneSearch MCP Server aims to provide an integrated solution for web search, scraping, and content extraction, utilizing various tools and search engines.
Overview: OneSearch MCP Server is a Model Context Protocol server implementation that connects with multiple web search and scraping tools like Searxng, Firecrawl, and Tavily. It allows users to perform comprehensive web searches, scrape content, and extract relevant data from websites efficiently.
Key Features:
-
Web Search and Scraping: Enables users to search, scrape, crawl, and extract content from various websites effectively.
-
Multi-Engine Support: Compatible with several search engines and scrapers, including SearXNG and Firecrawl, accommodating diverse user needs.
-
Self-Hosting Capability: Users can deploy SearXNG and Firecrawl locally, offering flexibility in setup and usage according to their requirements.
π OneSearch MCP Server: Web Search, Crawl, Scraper & Extract
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.
Features
- Web search, scrape, crawl, and extract content from websites.
- Supports multiple search engines and web scrapers: SearXNG, Firecrawl, Tavily, DuckDuckGo, Bing, etc.
- Local web search (browser search) supporting multiple search engines: Bing, Google, Baidu, Sogou, etc.
- Uses
puppeteer-core
to scrape website content. - Requires a local browser installation, such as
Chromium
,Google Chrome
, orGoogle Chrome Canary
. - Free to use, no API keys required.
- Uses
- Enabled tools:
one_search
,one_scrape
,one_map
- Supports self-hosted instances of SearXNG, Firecrawl, etc.
Installation
Installing via Smithery
To install OneSearch for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @yokingma/one-search --client claude
Manual Installation
# 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-mcp
Environment Variables
Search Engine
- SEARCH_PROVIDER (Optional): Search provider to use, supports
searxng
,duckduckgo
,bing
,tavily
,local
. Default islocal
. - SEARCH_API_URL (Optional): URL of the SearxNG API. Required for
searxng
. - SEARCH_API_KEY (Optional): 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): URL of the Firecrawl API. Required for
firecrawl
. - FIRECRAWL_API_KEY (Optional): API key for Firecrawl API. Required if using cloud service.
Running on Cursor
Example mcp.json
configuration:
{
"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"
}
}
}
}
Running on Windsurf
Add the following 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"
}
}
}
}
Self-hosting
To deploy SearXNG and Firecrawl locally, please refer to Deploy documentation.
Troubleshooting
ReferenceError: __name is not defined
: This issue is caused by Puppeteer having problems withtsx
. See esbuild#1031.
License
MIT License - see LICENSE file for details.