mcpField
🚀
🚀 OneSearch MCP Server: Web Search & Crawl & Scraper & Extract

🚀 OneSearch MCP Server: Web Search & Crawl & Scraper & Extract

本地服务
github.com/yokingma搜索与检索14713 周前更新

关于 🚀 OneSearch MCP Server: Web Search & Crawl & Scraper & Extract

OneSearch MCP Server 是一个 MCP 服务,整合多个搜索服务商,提供网页搜索、URL 发现、抓取和内容预处理功能。它面向需要让 AI 获取网页信息的用户,并可通过本地浏览器执行搜索与抓取,无需 API 密钥即可使用基础功能。

主要功能

  1. 01多搜索服务商支持,包括 SearXNG、Tavily、DuckDuckGo、Bing 等
  2. 02本地浏览器搜索,基于 agent-browser 实现
  3. 03one_map 从起始 URL 发现页面链接
  4. 04one_scrape 按指定格式抓取单个页面内容
  5. 05one_extract 批量预处理多个 URL 的文本内容

适用场景

  1. 01让 LLM 通过搜索获取最新网页信息
  2. 02抓取页面内容并转换为 Markdown 供后续分析
  3. 03从站点入口页批量发现链接并整理内容

MCP 相关

该服务以 MCP 服务形式暴露 one_search、one_map、one_scrape 和 one_extract 四个工具,供 MCP 客户端调用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"one-search": {
"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>"
}
}
}
}
启动命令npx -y one-search-mcp
需要配置的环境变量
SEARCH_PROVIDERSearch provider to use (searxng, duckduckgo, bing, tavily, google, zhipu, exa, bocha, ydc, local)
SEARCH_API_URLAPI URL for SearXNG (required if using searxng provider), or Google Custom Search Engine ID for google
SEARCH_API_KEY密钥API key for search provider (required for tavily, bing, google, zhipu, exa, bocha)
YDC_API_KEY密钥You.com API key for ydc provider
ALLOW_PRIVATE_NETWORKAllow browser-backed tools to access private, loopback, and link-local network targets when set to true

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmone-search-mcp1.2.4

工具

4

收录的工具列表 · 更新于 3 周前

参数类型必填说明
querystring是搜索查询字符串
limitnumber否要返回的最大结果数(默认值:10)
languagestring否搜索结果的语言代码(默认:auto)
categoriesenum否要搜索的类别(默认:general)general | news | images | videos | it | science | map | music | files | social_media
timeRangeenum否搜索结果的时间范围(默认:all)all | day | week | month | year

详细介绍

🚀 OneSearch MCP 服务:网页搜索、URL 发现、网页抓取与内容准备

一种 Model Context Protocol (MCP) 服务实现,可集成多个搜索提供商,提供网页搜索、本地浏览器搜索、URL 发现和通过 agent-browser 进行网页抓取的功能。

功能

  • 搜索网页、抓取网页、发现 URL,并对网站内容进行预处理。
  • 支持多个搜索引擎和网页抓取工具:SearXNG、Tavily、DuckDuckGo、Bing、Google、Zhipu (智谱)、Exa、Bocha (博查)、You.com 等。
  • 本地网页搜索(浏览器搜索),支持多个搜索引擎:Bing、Google、Baidu、Sogou 等。
    • 使用 agent-browser 进行浏览器自动化。
    • 免费,无需 API 密钥。
  • 已启用的工具:one_search、one_scrape、one_map、one_extract

当前工具接口

  • one_search
    • 返回所配置提供商的搜索结果。
  • one_map
    • 在浏览器中加载页面并从其 HTML 中提取链接,从起始 URL 发现链接。
    • 支持的输入字段:url、search、includeSubdomains、limit。
    • 这不是站点地图爬虫;已移除的字段(例如 ignoreSitemap 和 sitemapOnly)会在 schema 边界处被拒绝。
  • one_scrape
    • 抓取单个页面,并根据 formats 选择返回的内容。
    • 支持的输入字段:url、formats、waitFor、timeout、skipTlsVerification、allowExecuteJavascript、actions。
    • 支持的格式:markdown、html、rawHtml、links、screenshot、screenshot@fullPage。
    • 支持的有限抓取前操作:wait、click、write、press、scroll。
    • 高级抓取前操作:executeJavascript。如果 actions 中包含 executeJavascript,必须设置 allowExecuteJavascript: true。
    • actions 会在内容捕获前按顺序运行,遇到第一个操作错误时立即失败。
    • 已移除的字段(例如 onlyMainContent、extract 和 location)会在 schema 边界处被拒绝。
  • one_extract
    • 仅接受 urls,并返回供下游工具或模型使用的预处理文本块。

从 v1.1.0 及更早版本迁移

v1.1.0 中的重大变更:

  • 移除 Firecrawl:已移除 Firecrawl 集成,改用 agent-browser。它能提供类似功能,且无需外部 API 服务。
  • 新增浏览器要求:必须安装 Chromium 浏览器(请参阅“先决条件”部分)。
  • 环境变量:不再使用 FIRECRAWL_API_URL 和 FIRECRAWL_API_KEY。

变更内容:

  • one_scrape 和 one_map 现在使用 agent-browser,而非 Firecrawl
  • one_extract 现在会预处理多个 URL 的页面内容,供下游分析使用,而不再执行内置的大模型提取
  • 所有基于浏览器的操作现在都在本地处理,隐私保护更佳,且无需支付 API 费用

迁移步骤:

  1. 安装 Chromium 浏览器(请参阅“先决条件”)
  2. 从环境变量中移除 FIRECRAWL_API_URL 和 FIRECRAWL_API_KEY
  3. 更新到最新版本:npm install -g one-search-mcp@latest

先决条件

浏览器要求:此服务使用 agent-browser 进行网页抓取和本地搜索,因此需要基于 Chromium 的浏览器。

好消息:服务会自动检测并使用系统上已安装的浏览器:

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

如果未安装上述任何浏览器,你可以:

# 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/

安装

使用 Claude Code CLI(推荐)
# 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
使用 MCP Inspector 在本地调试

在本地开发期间,使用官方 MCP Inspector 与此服务交互,测试工具、资源和提示词。

# Inspect the TypeScript source entrypoint
npm run inspector

# Inspect the built server entrypoint
npm run inspector:build

# Example with explicit environment variables
ALLOW_PRIVATE_NETWORK=true SEARCH_PROVIDER=local npm run inspector
使用 Docker

Docker 镜像已预装所有依赖项(Chromium 浏览器),无需额外设置。

拉取镜像:

# From GitHub Container Registry
docker pull ghcr.io/yokingma/one-search-mcp:latest

# Or from Docker Hub
docker pull zacma/one-search-mcp:latest

配置 Claude Desktop:

{
  "mcpServers": {
    "one-search-mcp": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "ghcr.io/yokingma/one-search-mcp:latest"],
      "env": {
        "SEARCH_PROVIDER": "local"
      }
    }
  }
}

使用自定义搜索提供商:

{
  "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_PROVIDER(可选):要使用的搜索提供商,支持 searxng、duckduckgo、bing、tavily、google、zhipu、exa、bocha、ydc、local,默认为 local。
  • SEARCH_API_URL(可选):SearxNG API 的 URL,或 google 的 Google Custom Search Engine ID。
  • SEARCH_API_KEY(可选):搜索提供商的 API 密钥;tavily、bing、google、zhipu、exa、bocha 必填。
  • YDC_API_KEY(可选):SEARCH_PROVIDER=ydc 时使用的 You.com API 密钥。
// supported search providers
export type SearchProvider = 'searxng' | 'duckduckgo' | 'bing' | 'tavily' | 'google' | 'zhipu' | 'exa' | 'bocha' | 'ydc' | 'local';
浏览器网络安全
  • ALLOW_PRIVATE_NETWORK(可选):设置为 true 后,允许基于浏览器的工具(one_scrape、one_map、one_extract)访问专用网络、环回网络和链路本地网络目标。默认值为 false。

仅在可信部署中使用 ALLOW_PRIVATE_NETWORK=true。启用后,提示词注入或不可信的工具输入可能会导致 MCP 进程获取默认情况下会被阻止的内部服务。

搜索提供商配置
提供商是否需要 API 密钥是否需要 API URL备注
local否否免费,使用浏览器自动化
duckduckgo否否免费,无需 API 密钥
searxng可选是可自托管的元搜索引擎
bing是否Bing 搜索 API
tavily是否Tavily API
google是是(Search Engine ID)Google Custom Search
zhipu是否智谱 AI
exa是否Exa AI
bocha是否博查 AI
ydc是否You.com 搜索

其他 MCP 客户端的配置

Claude Desktop

将以下内容添加到 Claude Desktop 配置文件中:

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"
      }
    }
  }
}
Cursor

将以下内容添加到 mcp.json 文件中:

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

将以下内容添加到 ./codeium/windsurf/model_config.json 文件中:

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

自托管 SearXNG(可选)

如果想使用 SearXNG 作为搜索提供商,可以使用 Docker 在本地部署:

前提条件:

  • 已安装并运行 Docker(版本 20.10.0 或更高)
  • 至少有 4GB 可用内存

快速开始:

# Clone SearXNG Docker repository
git clone https://github.com/searxng/searxng-docker.git
cd searxng-docker

# Start SearXNG
docker compose up -d

部署后,SearXNG 默认可通过 http://127.0.0.1:8080 访问。

配置 OneSearch 使用 SearXNG:

# Set environment variables
export SEARCH_PROVIDER=searxng
export SEARCH_API_URL=http://127.0.0.1:8080

更多详情请参阅 SearXNG 官方 Docker 文档。

故障排除

找不到浏览器错误

如果看到类似“Browser not found”的错误,说明服务未能检测到已安装的 Chromium 内核浏览器。请安装以下浏览器之一:

或者通过 agent-browser 安装:

npx agent-browser install

许可证

MIT 许可证——详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。