关于 OpenSERP
@openserp/mcp 是供 AI Agent 使用的 MCP 服务,支持网页与图片搜索以及页面内容提取。它搜索六种引擎并保留结果来源和排名,可连接自托管的 OpenSERP 服务或 OpenSERP Cloud。
主要功能
- 01搜索六种引擎
- 02保留来源引擎与排名
- 03搜索单个或多个引擎的图片
- 04将页面提取为 Markdown
- 05批量提取最多 20 个 URL
- 06查询 Cloud 用量与额度
适用场景
- 01比较多个引擎的搜索结果
- 02从搜索引擎查找图片
- 03读取多个来源页面以回答问题
- 04检查 Cloud 剩余额度
MCP 相关
向 MCP 客户端提供搜索、图片搜索、内容提取、引擎状态和用量工具。可使用自托管的 OpenSERP 服务或 OpenSERP Cloud。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @openserp/mcpOPENSERP_API_KEY密钥OpenSERP Cloud API key. Leave unset to use a self-hosted OpenSERP server (http://localhost:7000 by default).OPENSERP_BASE_URLOpenSERP API base URL, for a self-hosted server on another host or port.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
10收录的工具列表 · 更新于 今天
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| date | string | 否 | 发布日期范围 YYYYMMDD..YYYYMMDD。Cloud 网页搜索支持 Google 和 Ecosia;不支持的筛选条件会返回 400,且不收费。 |
| file | string | 否 | 文件扩展名筛选条件,例如 PDF。 |
| lang | string | 否 | 语言代码,例如 EN 或 de。 |
| site | string | 否 | 域名筛选条件,例如 example.com。 |
| text | string | 否 | 搜索查询文本。text、site 或 file 中至少应提供一个。 |
| limit | integer | 否 | 最大结果数,1–100。使用 start 翻页时保持为 10。 |
| start | integer | 否 | 结果偏移量。在 Cloud 上,Google/Bing/Yandex 使用 10 的倍数,Baidu 支持靠前的页面,Ecosia 支持任意偏移量,DuckDuckGo 不支持。Balanced mega 要求为 0;不支持的偏移量会返回 400。 |
| engine | enum | 是 | 要查询的引擎:google、bing、yandex、baidu、duckduckgo(或 duck)、ecosia。google | bing | yandex | baidu | duck | duckduckgo | ecosia |
| filter | boolean | 否 | 允许引擎合并近似重复的结果(默认 true,主要影响 Google)。 |
| format | enum | 否 | json(默认)用于结构化结果;markdown、text 或 ndjson 用于精简的纯文本。json | markdown | text | ndjson |
| region | string | 否 | 市场或位置提示,例如 US、DE、en-GB、Berlin 或 Yandex lr id。 |
| extract | any | 否 | 使用清理后的页面内容丰富排名靠前的网页结果。布尔值或整数深度:false/0 表示关闭,true/1 表示第 1 条结果,N 表示前 N 条(1–5)。 |
| features | boolean | 否 | 当引擎提供相关内容时,添加 serp_features(AI 摘要、答案框、“People Also Ask”、相关搜索)。 |
| minRunes | integer | 否 | 自动模式切换为浏览器渲染前所需的最小文本长度(以 runes 计)。0 使用内置下限。 |
| extractMode | enum | 否 | auto(默认):快速 HTTP 获取;如果页面返回为空,则使用浏览器渲染。fast:仅 HTTP。rendered:始终使用浏览器,适用于 JavaScript 内容较多的页面。auto | fast | rendered |
详细介绍
@openserp/mcp
在六种搜索引擎(Google、Bing、Yandex、Baidu、DuckDuckGo、Ecosia)上进行实时搜索、图片搜索,并提取单个或批量页面内容,供 AI Agent 使用。结果会保留来源搜索引擎和排名。可连接可自托管的 OpenSERP 服务或 OpenSERP Cloud。
未设置 OPENSERP_API_KEY 时,服务会在 http://localhost:7000 使用 OSS 模式,并写入:
[openserp-mcp] No OPENSERP_API_KEY set - using OSS mode at http://localhost:7000.
[openserp-mcp] Get an API key: https://openserp.org/dashboard/keys
[openserp-mcp] Docs: https://openserp.org/docs | Issues: https://github.com/openserpapi/mcp/issues
设置 OPENSERP_API_KEY 以使用 OpenSERP Cloud。可在 https://openserp.org/dashboard/keys 获取 API 密钥。设置 OPENSERP_BASE_URL 可指定其他兼容的 OpenSERP API 基础 URL。
安装
npm install -g @openserp/mcp
也可以直接运行,无需安装:
npx -y @openserp/mcp --stdio
工具
| 工具 | 适用场景 |
|---|---|
search | 搜索引擎很重要时(例如,俄语用 Yandex,中文用 Baidu),或需要使用 start 翻页时 |
any_search | 想按指定顺序使用首选搜索引擎及备用引擎时 |
fast_search | 任意搜索引擎都可以时;会选择运行状况最佳、速度最快的引擎 |
mega_search | 需要比较搜索引擎或扩大覆盖范围时;结果会保留搜索引擎和排名 |
image_search | 从一个搜索引擎搜索图片 |
mega_image | 合并多个搜索引擎的图片结果 |
extract | 将单个页面读取为 Markdown |
batch_extract | 在一次调用中读取多个页面(最多 20 个);某个 URL 失败不会导致整个批次失败 |
list_engines | 搜索持续失败且需要找到运行状况良好的搜索引擎时 |
get_usage | 查看 Cloud 额度余额或上次调用的费用时 |
extract 和 batch_extract 会截短长页面以适配 Agent 的上下文:每页 20,000 个字符,或整个批次共享 40,000 个字符(每个 URL 至少 2,000 个字符)。截短内容末尾会附上 [truncated: ...],并通过 truncated / metadata.truncated 标记。传入 maxChars 可读取更多内容。
快速示例
让 MCP 客户端执行以下操作:
- 搜索 Google 上的最新文档并返回排名前 5 的 URL。
- 比较 Google 和 Bing 对某个 SEO 关键词的搜索结果。
- 将 URL 中的内容提取为干净的 Markdown,再传给大模型。
- 使用
batch_extract一次性从多个来源获取依据,最多可在一次往返中处理 20 个 URL;失效链接会返回错误条目,而不会导致整个批次失败。 - 传入
region: "DE",以本地访客身份读取受地理位置限制的页面。 - 使用
get_usage查看剩余的 Cloud 额度。
Cloud 搜索参数
Cloud 请求使用 Authorization: Bearer 和 OPENSERP_API_KEY。翻页时使用 start,并保持 limit: 10;当 has_more 为 true 时,传入上次响应中的 pagination.next_start。Google、Bing 和 Yandex 的 start 必须是 10 的倍数;Baidu 支持较早的页面,Ecosia 支持任意偏移量,而 DuckDuckGo 仅支持第一页。mega_search 使用 mode: "balanced" 时不接受 start > 0;要获取后续页面,请使用 search、any_search 或 fast_search。
Cloud 网页搜索支持在 Google 和 Ecosia 上使用 date: "20250101..20251231"。不支持的偏移量或日期筛选条件会返回 400 invalid_request,且不收费;请调整请求后重试。
list_engines 会返回 Cloud 功能以及运行状态 status。省略 engines 可使用默认值。Any 会按指定顺序启动搜索引擎,并行尝试耗时较长的请求;Fast 会优先考虑近期运行状况和延迟。查看 meta.engine_used 获取胜出的搜索引擎;engines_tried 和 engines_skipped 可能不存在。
工具错误会包含公开的 HTTP 状态码、错误代码、请求 ID,以及可用时的重试延迟。对于 429 和 503,请遵守 retry_after;503 engine_unavailable 会附带 60 秒的延迟。服务不会自动重试。
Claude Desktop
本地 OSS 模式:
{
"mcpServers": {
"openserp": {
"command": "npx",
"args": ["-y", "@openserp/mcp"]
}
}
}
Cloud 模式:
{
"mcpServers": {
"openserp": {
"command": "npx",
"args": ["-y", "@openserp/mcp"],
"env": {
"OPENSERP_API_KEY": "osk_live_..."
}
}
}
}
Cursor
对于 stdio 用法,添加 MCP 服务条目:
{
"mcpServers": {
"openserp": {
"command": "npx",
"args": ["-y", "@openserp/mcp"],
"env": {
"OPENSERP_API_KEY": "osk_live_..."
}
}
}
}
对于远程风格的 HTTP 用法,运行:
npx -y @openserp/mcp --http --host 127.0.0.1 --port 3333
然后将支持流式 HTTP 的 MCP 客户端指向:
http://127.0.0.1:3333/mcp
仍使用旧版 SSE 传输的客户端可以连接到:
http://127.0.0.1:3333/sse
环境
OPENSERP_API_KEY:来自 https://openserp.org/dashboard/keys 的 Cloud API 密钥。OPENSERP_BASE_URL:API 基础 URL 覆盖值。OPENSERP_BACKEND:可选的后端提示,oss或cloud。OPENSERP_TIMEOUT_MS:SDK 请求超时,单位为毫秒。HOST:HTTP 主机,默认为127.0.0.1。PORT:HTTP 端口,默认为3333。
资源
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。