one-search-mcp — Claude Code MCP server: what it does, how to install
Searches the web via external providers or local Chromium, scrapes pages, and discovers site links without mandatory API keys.
claude mcp add --env SEARCH_PROVIDER=<SEARCH_PROVIDER> --env SEARCH_API_URL=<SEARCH_API_URL> --env SEARCH_API_KEY=<SEARCH_API_KEY> --env YDC_API_KEY=<YDC_API_KEY> --env ALLOW_PRIVATE_NETWORK=<ALLOW_PRIVATE_NETWORK> --transport stdio one-search-mcp -- npx -y one-search-mcpWhat one-search-mcp does
The server provides four utilities: one_search for queries, one_scrape for page dumps and screenshots, one_map for link discovery, and one_extract for multi-page text blocks. By default, it operates with SEARCH_PROVIDER=local using agent-browser. You do not need paid external credentials for local operations, though services like SearXNG, Tavily, Google, Bing, and Exa remain supported.
Under the hood, browser-driven tools depend entirely on an installed Chromium instance, such as Google Chrome or Microsoft Edge. Without a compatible browser binary, scraping tasks will fail immediately. Pre-scrape routines in one_scrape support sequential scrolling, clicking, and waiting. Internal loopback targets stay blocked unless ALLOW_PRIVATE_NETWORK is set to true.
What it helps with
- run web searches using local Chromium or external providers
- capture full-page screenshots and markdown snapshots of target pages
- discover page links without sitemap crawlers
- extract cleaned text blocks across multiple target URLs
Example prompts for the agent
- Search the web for recent Python 3.13 features using one_search.
- Scrape the page at http://127.0.0.1:8080 into markdown after scrolling down.
- Map outgoing links from the current root address using one_map with limit 15.
How to install one-search-mcp
Platform CLI
claude mcp add --env SEARCH_PROVIDER=<SEARCH_PROVIDER> --env SEARCH_API_URL=<SEARCH_API_URL> --env SEARCH_API_KEY=<SEARCH_API_KEY> --env YDC_API_KEY=<YDC_API_KEY> --env ALLOW_PRIVATE_NETWORK=<ALLOW_PRIVATE_NETWORK> --transport stdio one-search-mcp -- npx -y one-search-mcpReplace <…> with your own values
Platform CLI
codex mcp add one-search-mcp --env SEARCH_PROVIDER=<SEARCH_PROVIDER> --env SEARCH_API_URL=<SEARCH_API_URL> --env SEARCH_API_KEY=<SEARCH_API_KEY> --env YDC_API_KEY=<YDC_API_KEY> --env ALLOW_PRIVATE_NETWORK=<ALLOW_PRIVATE_NETWORK> -- npx -y one-search-mcpReplace <…> with your own values
Config file
{
"mcpServers": {
"one-search-mcp": {
"command": "npx",
"args": [
"-y",
"one-search-mcp"
],
"env": {
"SEARCH_PROVIDER": "<SEARCH_PROVIDER>",
"SEARCH_API_URL": "<SEARCH_API_URL>",
"SEARCH_API_KEY": "<SEARCH_API_KEY>",
"YDC_API_KEY": "<YDC_API_KEY>",
"ALLOW_PRIVATE_NETWORK": "<ALLOW_PRIVATE_NETWORK>"
}
}
}
}Replace <…> with your own values
Config file
{
"servers": {
"one-search-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"one-search-mcp"
],
"env": {
"SEARCH_PROVIDER": "<SEARCH_PROVIDER>",
"SEARCH_API_URL": "<SEARCH_API_URL>",
"SEARCH_API_KEY": "<SEARCH_API_KEY>",
"YDC_API_KEY": "<YDC_API_KEY>",
"ALLOW_PRIVATE_NETWORK": "<ALLOW_PRIVATE_NETWORK>"
}
}
}
}Replace <…> with your own values
Platform CLI
gemini mcp add -e SEARCH_PROVIDER=<SEARCH_PROVIDER> -e SEARCH_API_URL=<SEARCH_API_URL> -e SEARCH_API_KEY=<SEARCH_API_KEY> -e YDC_API_KEY=<YDC_API_KEY> -e ALLOW_PRIVATE_NETWORK=<ALLOW_PRIVATE_NETWORK> one-search-mcp npx -y one-search-mcpReplace <…> with your own values
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about one-search-mcp
How to install one-search-mcp in Claude Code?
Run claude mcp add one-search-mcp -e SEARCH_API_KEY=<SEARCH_API_KEY> -e YDC_API_KEY=<YDC_API_KEY> -- npx -y one-search-mcp. This connects the MCP server using npx.
What is required to run searches locally without API keys?
You need a Chromium-based browser present on the machine, such as Google Chrome or Microsoft Edge. The server relies on agent-browser to detect your local browser setup automatically.
What actions does one_scrape support before capturing content?
It handles sequential steps including wait, click, write, press, scroll, and optional executeJavascript. These actions run sequentially and stop on the first encountered error.