One Search Mcp

io.github.yokingma由 GitHub 账号 yokingma 发布v1.2.4更新于 Oct 24, 2026

Web search, URL discovery, scraping & extraction with agent-browser and search providers

概览

AI 生成的概览

一个本地 MCP 服务器,通过搜索服务商和本地浏览器,让助手进行网页搜索、URL 发现、页面抓取与内容提取。

可以做什么
通过所选服务商搜索网页(本地浏览器、DuckDuckGo、SearXNG、Tavily、Bing、Google、智谱、Exa、博查或 You.com)。从起始 URL 加载页面并提取链接,发现站点链接。抓取单个页面,返回 markdown、HTML、原始 HTML、链接或截图,并可在抓取前执行等待、点击、输入、按键和滚动等操作。从多个 URL 提取并预处理文本,供后续分析使用。
适用场景
适合助手需要最新网页结果、页面内容或链接清单,且希望抓取与本地搜索在自己的机器上完成、不依赖付费抓取 API 的场景。适用于资料调研、内容收集以及把网页文本交给后续分析。
运行要求
通过 npx 或 Docker 在本地运行。npm 包需要 Node.js;浏览器相关工具需要 Chromium 系浏览器(Chrome、Edge、Chromium 或 Chrome Canary),Docker 镜像已内置 Chromium。SEARCH_PROVIDER 选择服务商(默认 local)。tavily、bing、google、zhipu、exa、bocha 需要 SEARCH_API_KEY;searxng 需要 SEARCH_API_URL,google 还需搜索引擎 ID;ydc 需要 YDC_API_KEY。
安装前请注意
SEARCH_API_KEY 与 YDC_API_KEY 是通过环境变量传入的密钥。浏览器工具会访问任意 URL,页面内容可能包含提示注入。ALLOW_PRIVATE_NETWORK 默认为 false;开启后工具输入可访问内网、回环和链路本地服务,仅应在可信部署中使用。executeJavascript 预抓取操作需显式允许,会执行页面脚本。

安装

在 SourceWeft 中

  1. 打开 控制台中的 One Search Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

🚀 OneSearch MCP Server: Web Search, URL Discovery, Scraper & Content Prep

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.

Features

  • Web search, scrape, discover URLs, and preprocess content from websites.
  • Support multiple search engines and web scrapers: SearXNG, Tavily, DuckDuckGo, Bing, Google, Zhipu (智谱), Exa, Bocha (博查), You.com, etc.
  • Local web search (browser search), support multiple search engines: Bing, Google, Baidu, Sogou, etc.
    • Use agent-browser for browser automation.
    • Free, no API keys required.
  • Enabled tools: one_search, one_scrape, one_map, one_extract

Current Tool Surface

  • one_search
    • Returns search results from the configured provider.
  • one_map
    • Discovers links from a starting URL by loading the page in the browser and extracting links from its HTML.
    • Supported input fields: url, search, includeSubdomains, limit.
    • This is not a sitemap crawler; removed fields such as ignoreSitemap and sitemapOnly are rejected at the schema boundary.
  • one_scrape
    • Scrapes one page and returns content selected by formats.
    • Supported input fields: url, formats, waitFor, timeout, skipTlsVerification, allowExecuteJavascript, actions.
    • Supported formats: markdown, html, rawHtml, links, screenshot, screenshot@fullPage.
    • Supported bounded pre-scrape actions: wait, click, write, press, scroll.
    • Advanced pre-scrape action: executeJavascript. If actions contains executeJavascript, you must set allowExecuteJavascript: true.
    • actions run serially before content capture and fail fast on the first action error.
    • Removed fields such as onlyMainContent, extract, and location are rejected at the schema boundary.
  • one_extract
    • Accepts only urls and returns preprocessed text blocks for downstream tools or models.

Migration from v1.1.0 and Earlier

Breaking Changes in v1.1.0:

  • Firecrawl Removed: The Firecrawl integration has been removed in favor of agent-browser, which provides similar functionality without requiring external API services.
  • New Browser Requirement: You must install Chromium browser (see Prerequisites section).
  • Environment Variables: FIRECRAWL_API_URL and FIRECRAWL_API_KEY are no longer used.

What Changed:

  • one_scrape and one_map now use agent-browser instead of Firecrawl
  • one_extract now preprocesses multi-URL page content for downstream analysis instead of performing built-in LLM extraction
  • All browser-based operations are now handled locally, providing better privacy and no API costs

Migration Steps:

  1. Install Chromium browser (see Prerequisites)
  2. Remove FIRECRAWL_API_URL and FIRECRAWL_API_KEY from your environment variables
  3. Update to the latest version: npm install -g one-search-mcp@latest

Prerequisites

Browser 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:

  • ✅ Google Chrome
  • ✅ Microsoft Edge
  • ✅ Chromium
  • ✅ Google Chrome Canary

If you don't have any of these browsers installed, you can:

bash
# 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-browsernpx agent-browser install
# Option 4: Install Chromium directly# Download from: https://www.chromium.org/getting-involved/download-chromium/

Installation

Using Claude Code CLI (Recommended)

bash
# 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 APIclaude mcp add one-search-mcp -e SEARCH_PROVIDER=tavily -e SEARCH_API_KEY=your_api_key -- npx -y one-search-mcp

Manual Installation

bash
# Install globally (Optional)npm install -g one-search-mcp
# Or run directly with npxnpx -y one-search-mcp

Local Debugging with MCP Inspector

Use the official MCP Inspector to interactively test tools, resources, and prompts against this server during local development.

bash
# Inspect the TypeScript source entrypointnpm run inspector
# Inspect the built server entrypointnpm run inspector:build
# Example with explicit environment variablesALLOW_PRIVATE_NETWORK=true SEARCH_PROVIDER=local npm run inspector

Using Docker

Docker image includes all dependencies (Chromium browser) pre-installed, no additional setup required.

Pull the image:

bash
# From GitHub Container Registrydocker pull ghcr.io/yokingma/one-search-mcp:latest
# Or from Docker Hubdocker pull zacma/one-search-mcp:latest

Configure with Claude Desktop:

json
{  "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:

json
{  "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"      ]    }  }}

Environment Variables

Search Provider

  • SEARCH_PROVIDER (Optional): The search provider to use, supports searxng, duckduckgo, bing, tavily, google, zhipu, exa, bocha, ydc, local, default is local.
  • SEARCH_API_URL (Optional): The URL of the SearxNG API, or Google Custom Search Engine ID for google.
  • SEARCH_API_KEY (Optional): The API key for the search provider, required for tavily, bing, google, zhipu, exa, bocha.
  • YDC_API_KEY (Optional): You.com API key for SEARCH_PROVIDER=ydc.
ts
// supported search providersexport type SearchProvider = 'searxng' | 'duckduckgo' | 'bing' | 'tavily' | 'google' | 'zhipu' | 'exa' | 'bocha' | 'ydc' | 'local';

Browser Network Security

  • ALLOW_PRIVATE_NETWORK (Optional): Set to 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.

Search Provider Configuration

ProviderAPI Key RequiredAPI URL RequiredNotes
localNoNoFree, uses browser automation
duckduckgoNoNoFree, no API key needed
searxngOptionalYesSelf-hosted meta search engine
bingYesNoBing Search API
tavilyYesNoTavily API
googleYesYes (Search Engine ID)Google Custom Search
zhipuYesNo智谱 AI
exaYesNoExa AI
bochaYesNo博查 AI
ydcYesNoYou.com Search

Configuration for Other MCP Clients

Claude Desktop

Add to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

json
{  "mcpServers": {    "one-search-mcp": {      "command": "npx",      "args": ["-y", "one-search-mcp"],      "env": {        "SEARCH_PROVIDER": "local"      }    }  }}

Cursor

Add to your mcp.json file:

json
{  "mcpServers": {    "one-search-mcp": {      "command": "npx",      "args": ["-y", "one-search-mcp"],      "env": {        "SEARCH_PROVIDER": "local"      }    }  }}

Windsurf

Add to your ./codeium/windsurf/model_config.json file:

json
{  "mcpServers": {    "one-search-mcp": {      "command": "npx",      "args": ["-y", "one-search-mcp"],      "env": {        "SEARCH_PROVIDER": "local"      }    }  }}

Self-hosting SearXNG (Optional)

If you want to use SearXNG as your search provider, you can deploy it locally using Docker:

Prerequisites:

  • Docker installed and running (version 20.10.0 or higher)
  • At least 4GB of RAM available

Quick Start:

bash
# Clone SearXNG Docker repositorygit clone https://github.com/searxng/searxng-docker.gitcd searxng-docker
# Start SearXNGdocker compose up -d

After deployment, SearXNG will be available at http://127.0.0.1:8080 by default.

Configure OneSearch to use SearXNG:

bash
# Set environment variablesexport SEARCH_PROVIDER=searxngexport SEARCH_API_URL=http://127.0.0.1:8080

For more details, see the official SearXNG Docker documentation.

Troubleshooting

Browser not found error

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:

bash
npx agent-browser install

License

MIT License - see LICENSE file for details.

来源:README.md,提交 16eb424

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v1.2.4最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分