https://github.com/yokingma/one-search-mcp
🚀 OneSearch MCP Server: Web Search & Scraper & Extract, Support Firecrawl, SearXNG, Tavily, DuckDuckGo, Bing, etc.
https://github.com/yokingma/one-search-mcp
bing-mcp duckduckgo-mcp firecrawl-mcp mcp-server modelcontextprotocol searxng-mcp tavily-mcp
Last synced: about 1 month ago
JSON representation
🚀 OneSearch MCP Server: Web Search & Scraper & Extract, Support Firecrawl, SearXNG, Tavily, DuckDuckGo, Bing, etc.
- Host: GitHub
- URL: https://github.com/yokingma/one-search-mcp
- Owner: yokingma
- License: mit
- Created: 2025-03-18T02:06:27.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-04-03T09:19:41.000Z (6 months ago)
- Last Synced: 2025-07-05T16:19:17.521Z (3 months ago)
- Topics: bing-mcp, duckduckgo-mcp, firecrawl-mcp, mcp-server, modelcontextprotocol, searxng-mcp, tavily-mcp
- Language: TypeScript
- Homepage:
- Size: 238 KB
- Stars: 33
- Watchers: 3
- Forks: 6
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- mcp-index - OneSearch - Enables web search, scraping, and content extraction from various websites using multiple search engines and scrapers. It supports local browser searches and integrates with tools like SearXNG, DuckDuckGo, and Bing for enhanced data retrieval. (Data Analytics)
README
# 🚀 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.
- 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-core` to scrape content from websites.
- You should have a local browser installed, such as `Chromium`, `Google Chrome`, `Google Chrome Canary`, etc.
- Free, no keys required.
- **Enabled tools:** `one_search`, `one_scrape`, `one_map`
- Support for self-hosted: SearXNG, Firecrawl, etc. (see [Deploy](./deploy/README.md))## Installation
### Installing via Smithery
To install OneSearch for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@yokingma/one-search):
```bash
npx -y @smithery/cli install @yokingma/one-search --client claude
```### Manual Installation
```shell
# Manually install (Optional)
npm install -g one-search-mcp
``````shell
# 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): The search provider to use, supports `searxng`, `duckduckgo`, `bing`, `tavily`, `local`, default is `local`.
- **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`.```ts
// 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 `firecrawl` if using cloud service.## Running on Cursor
Your `mcp.json` file will look like this:
```json
{
"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 this to your `./codeium/windsurf/model_config.json` file:
```json
{
"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-host
Local deployment of SearXNG and Firecrawl, please refer to [Deploy](./deploy/README.md)
## Troubleshooting
- [ReferenceError]: __name is not defined: This is because Puppeteer has problems with `tsx`, [esbuild#1031](https://github.com/evanw/esbuild/issues/1031)
## License
MIT License - see [LICENSE](./LICENSE) file for details.