Web search, URL discovery, scraping & extraction with agent-browser and search providers
A Model Context Protocol (MCP) server implementation that integrates with multiple search providers for web search, local browser search, and scraping capabilities with agent-browser.
agent-browser for browser automation.one_search, one_scrape, one_map, one_extractBreaking 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 tool is now fully implemented for structured data extraction from multiple URLsMigration 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:
# Option 1: Install Google Chrome (Recommended)
# Download from: https://www.google.com/chrome/
# Option 2: Install Microsoft Edge
# Download from: https://www.microsoft.com/edge
# Option 3: Install Chromium via agent-browser
npx agent-browser install
# Option 4: Install Chromium directly
# Download from: https://www.chromium.org/getting-involved/download-chromium/
# Add to Claude Code with default settings (local search)
claude mcp add one-search-mcp -- npx -y one-search-mcp
# Add with custom search provider (e.g., SearXNG)
claude mcp add one-search-mcp -e SEARCH_PROVIDER=searxng -e SEARCH_API_URL=http://127.0.0.1:8080 -- npx -y one-search-mcp
# Add with Tavily API
claude mcp add one-search-mcp -e SEARCH_PROVIDER=tavily -e SEARCH_API_KEY=your_api_key -- npx -y one-search-mcp
# Install globally (Optional)
npm install -g one-search-mcp
# Or run directly with npx
npx -y one-search-mcp
Docker image includes all dependencies (Chromium browser) pre-installed, no additional setup required.
Pull the image:
# From GitHub Container Registry
docker pull ghcr.io/yokingma/one-search-mcp:latest
# Or from Docker Hub
docker pull zacma/one-search-mcp:latest
Configure with Claude Desktop:
{
"mcpServers": {
"one-search-mcp": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/yokingma/one-search-mcp:latest"],
"env": {
"SEARCH_PROVIDER": "local"
}
}
}
}
With custom search provider:
{
"mcpServers": {
"one-search-mcp": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "SEARCH_PROVIDER=tavily",
"-e", "SEARCH_API_KEY=your_api_key",
"ghcr.io/yokingma/one-search-mcp:latest"
]
}
}
}
Search Engine:
searxng, duckduckgo, bing, tavily, google, zhipu, exa, bocha, local, default is local.google.tavily, bing, google, zhipu, exa, bocha.// supported search providers
export type SearchProvider = 'searxng' | 'duckduckgo' | 'bing' | 'tavily' | 'google' | 'zhipu' | 'exa' | 'bocha' | 'local';
| 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 |
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"one-search-mcp": {
"command": "npx",
"args": ["-y", "one-search-mcp"],
"env": {
"SEARCH_PROVIDER": "local"
}
}
}
}
Add to your mcp.json file:
{
"mcpServers": {
"one-search-mcp": {
"command": "npx",
"args": ["-y", "one-search-mcp"],
"env": {
"SEARCH_PROVIDER": "local"
}
}
}
}
Add to your ./codeium/windsurf/model_config.json file:
{
"mcpServers": {
"one-search-mcp": {
"command": "npx",
"args": ["-y", "one-search-mcp"],
"env": {
"SEARCH_PROVIDER": "local"
}
}
}
}
If you want to use SearXNG as your search provider, you can deploy it locally using Docker:
Prerequisites:
Quick Start:
# Clone SearXNG Docker repository
git clone https://github.com/searxng/searxng-docker.git
cd searxng-docker
# Start SearXNG
docker compose up -d
After deployment, SearXNG will be available at http://127.0.0.1:8080 by default.
Configure OneSearch to use SearXNG:
# Set environment variables
export SEARCH_PROVIDER=searxng
export SEARCH_API_URL=http://127.0.0.1:8080
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:
npx agent-browser install
MIT License - see LICENSE file for details.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y one-search-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-yokingma-one-search-mcp": {
"command": "npx",
"args": [
"-y",
"one-search-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceone-search-mcpnpmio.github.yokingma/one-search-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.