mcpField
O
OpenSERP

OpenSERP

本地服务
openserp.org搜索与检索31 天前更新

关于 OpenSERP

@openserp/mcp 是供 AI Agent 使用的 MCP 服务,支持网页与图片搜索以及页面内容提取。它搜索六种引擎并保留结果来源和排名,可连接自托管的 OpenSERP 服务或 OpenSERP Cloud。

主要功能

  1. 01搜索六种引擎
  2. 02保留来源引擎与排名
  3. 03搜索单个或多个引擎的图片
  4. 04将页面提取为 Markdown
  5. 05批量提取最多 20 个 URL
  6. 06查询 Cloud 用量与额度

适用场景

  1. 01比较多个引擎的搜索结果
  2. 02从搜索引擎查找图片
  3. 03读取多个来源页面以回答问题
  4. 04检查 Cloud 剩余额度

MCP 相关

向 MCP 客户端提供搜索、图片搜索、内容提取、引擎状态和用量工具。可使用自托管的 OpenSERP 服务或 OpenSERP Cloud。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"org-openserp": {
"command": "npx",
"args": [
"-y",
"@openserp/mcp"
],
"env": {
"OPENSERP_API_KEY": "<OPENSERP_API_KEY>",
"OPENSERP_BASE_URL": "<OPENSERP_BASE_URL>"
}
}
}
}
启动命令npx -y @openserp/mcp
需要配置的环境变量
OPENSERP_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@openserp/mcp0.1.12

工具

10

收录的工具列表 · 更新于 今天

参数类型必填说明
datestring否发布日期范围 YYYYMMDD..YYYYMMDD。Cloud 网页搜索支持 Google 和 Ecosia;不支持的筛选条件会返回 400,且不收费。
filestring否文件扩展名筛选条件,例如 PDF。
langstring否语言代码,例如 EN 或 de。
sitestring否域名筛选条件,例如 example.com。
textstring否搜索查询文本。text、site 或 file 中至少应提供一个。
limitinteger否最大结果数,1–100。使用 start 翻页时保持为 10。
startinteger否结果偏移量。在 Cloud 上,Google/Bing/Yandex 使用 10 的倍数,Baidu 支持靠前的页面,Ecosia 支持任意偏移量,DuckDuckGo 不支持。Balanced mega 要求为 0;不支持的偏移量会返回 400。
engineenum是要查询的引擎:google、bing、yandex、baidu、duckduckgo(或 duck)、ecosia。google | bing | yandex | baidu | duck | duckduckgo | ecosia
filterboolean否允许引擎合并近似重复的结果(默认 true,主要影响 Google)。
formatenum否json(默认)用于结构化结果;markdown、text 或 ndjson 用于精简的纯文本。json | markdown | text | ndjson
regionstring否市场或位置提示,例如 US、DE、en-GB、Berlin 或 Yandex lr id。
extractany否使用清理后的页面内容丰富排名靠前的网页结果。布尔值或整数深度:false/0 表示关闭,true/1 表示第 1 条结果,N 表示前 N 条(1–5)。
featuresboolean否当引擎提供相关内容时,添加 serp_features(AI 摘要、答案框、“People Also Ask”、相关搜索)。
minRunesinteger否自动模式切换为浏览器渲染前所需的最小文本长度(以 runes 计)。0 使用内置下限。
extractModeenum否auto(默认):快速 HTTP 获取;如果页面返回为空,则使用浏览器渲染。fast:仅 HTTP。rendered:始终使用浏览器,适用于 JavaScript 内容较多的页面。auto | fast | rendered

详细介绍

@openserp/mcp

npm version license

在六种搜索引擎(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。

资源

评论

支持 Markdown

第一次接触 MCP?

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

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