The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the One Search MCP listing page.
A Model Context Protocol (MCP) server implementation that integrates with multiple search providers for web search, local browser search, URL discovery, and scraping capabilities with agent-browser.
agent-browser for browser automation.one_search, one_scrape, one_map, one_extractone_search
one_map
url, search, includeSubdomains, limit.ignoreSitemap and sitemapOnly are rejected at the schema boundary.one_scrape
formats.url, formats, waitFor, timeout, skipTlsVerification, allowExecuteJavascript, actions.markdown, html, rawHtml, links, screenshot, screenshot@fullPage.wait, click, write, press, scroll.executeJavascript. If actions contains executeJavascript, you must set allowExecuteJavascript: true.actions run serially before content capture and fail fast on the first action error.onlyMainContent, extract, and location are rejected at the schema boundary.one_extract
urls and returns preprocessed text blocks for downstream tools or models.Breaking Changes in v1.1.0:
agent-browser, which provides similar functionality without requiring external API services.FIRECRAWL_API_URL and FIRECRAWL_API_KEY are no longer used.What Changed:
one_scrape and one_map now use agent-browser instead of Firecrawlone_extract now preprocesses multi-URL page content for downstream analysis instead of performing built-in LLM extractionMigration Steps:
FIRECRAWL_API_URL and FIRECRAWL_API_KEY from your environment variablesnpm install -g one-search-mcp@latestBrowser Requirement: This server uses agent-browser for web scraping and local search, which requires a Chromium-based browser.
Good News: The server will automatically detect and use browsers already installed on your system:
If you don't have any of these browsers installed, you can:
Use the official MCP Inspector to interactively test tools, resources, and prompts against this server during local development.
Docker image includes all dependencies (Chromium browser) pre-installed, no additional setup required.
Pull the image:
Configure with Claude Desktop:
With custom search provider:
searxng, duckduckgo, bing, tavily, google, zhipu, exa, bocha, ydc, local, default is local.google.tavily, bing, google, zhipu, exa, bocha.SEARCH_PROVIDER=ydc.true to allow browser-backed tools (one_scrape, one_map, one_extract) to access private, loopback, and link-local network targets. Defaults to false.Use ALLOW_PRIVATE_NETWORK=true only in trusted deployments. When enabled, prompt injection or untrusted tool inputs can make the MCP process fetch internal services that are otherwise blocked by default.
| Provider | API Key Required | API URL Required | Notes |
|---|---|---|---|
local | No | No | Free, uses browser automation |
duckduckgo | No | No | Free, no API key needed |
searxng | Optional | Yes | Self-hosted meta search engine |
bing | Yes | No | Bing Search API |
tavily | Yes | No | Tavily API |
google | Yes | Yes (Search Engine ID) | Google Custom Search |
zhipu | Yes | No | 智谱 AI |
exa | Yes | No | Exa AI |
bocha | Yes | No | 博查 AI |
ydc | Yes | No | You.com Search |
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Add to your mcp.json file:
Add to your ./codeium/windsurf/model_config.json file:
If you want to use SearXNG as your search provider, you can deploy it locally using Docker:
Prerequisites:
Quick Start:
After deployment, SearXNG will be available at http://127.0.0.1:8080 by default.
Configure OneSearch to use SearXNG:
For more details, see the official SearXNG Docker documentation.
If you see an error like "Browser not found", the server couldn't detect any installed Chromium-based browser. Please install one of the following:
Or install via agent-browser:
MIT License - see LICENSE file for details.