# one-search-mcp

Searches the web via external providers or local Chromium, scrapes pages, and discovers site links without mandatory API keys.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 147
- Author: yokingma
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/yokingma/one-search-mcp
- Updated: 2026-07-31
- HTML: https://affpapa.org/en/nevibecode/mcp/one-search-mcp

## What it 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.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `SEARCH_PROVIDER`, `SEARCH_API_URL`, `SEARCH_API_KEY`, `YDC_API_KEY`, `ALLOW_PRIVATE_NETWORK` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
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-mcp
```
Replace <…> with your own values

### Codex

**Platform CLI**
```bash
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-mcp
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "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

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "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

### Gemini CLI

**Platform CLI**
```bash
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-mcp
```
Replace <…> with your own values

## When to use it
- 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
- 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.

## Similar
- [Scrapling MCP Server](https://affpapa.org/en/nevibecode/mcp/scrapling-mcp-server.md) — MCP server · ★ 89433
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [AIHawk](https://affpapa.org/en/nevibecode/mcp/aihawk.md) — MCP server · ★ 32221
- [Skyvern](https://affpapa.org/en/nevibecode/mcp/skyvern.md) — MCP server · ★ 23263
- [SeleniumBase MCP](https://affpapa.org/en/nevibecode/mcp/seleniumbase-mcp.md) — MCP server · ★ 13169
- [apify-mcp-server](https://affpapa.org/en/nevibecode/mcp/apify-mcp-server.md) — MCP server · ★ 12927

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
