MCP 接入说明

将 ResAPI 接入 Cursor 等 MCP 客户端:远程 /mcp 与本地 stdio 配置、Tool 清单与故障排查

ResAPI MCP 接入说明

将 ResAPI 作为 MCP(Model Context Protocol) 工具接入 CursorClaude DesktopWorkBuddy 等 AI 客户端。接入后,AI 可直接调用中国节假日、区划、高校、手机号段、邮编、非遗等 12 个结构化查询能力。

无需 API Key,按 IP 计数限流;只读 GET,用户查询参数不缓存。


快速选择接入方式

方式 适合谁 需要安装 连接地址
远程 MCP(推荐) 大多数用户、生产环境 https://www.resapi.cn/mcp
本地 stdio 离线开发、自定义 API 地址 是(resapi-mcp 二进制) 本地进程

不确定用哪种?优先用远程 MCP——配置最少,与线上一致。


方式一:远程 MCP(推荐)

ResAPI 主服务已内置 Streamable HTTP MCP 端点,客户端填 URL 即可,无需下载或编译 resapi-mcp

端点

https://www.resapi.cn/mcp

传输协议:streamable-http(MCP 2025-03-26 起推荐的标准 HTTP 传输)。

域名说明:生产环境请使用与 config.yamlsite.base_url 一致的域名(当前为 https://www.resapi.cn)。裸域 https://resapi.cn 会 301 跳转到 www,部分 MCP 客户端在 POST 跳转时可能丢失请求体导致连接失败;API 与 MCP 请统一用 www 或查看 /agent.json 里的 mcp.http.url

Cursor 配置

  1. 打开 Cursor Settings → MCP(或编辑 ~/.cursor/mcp.json / 项目 .cursor/mcp.json
  2. 添加远程服务(字段名因 Cursor 版本略有差异,以下为常见写法):
{
  "mcpServers": {
    "resapi": {
      "url": "https://www.resapi.cn/mcp"
    }
  }
}

(若 site.base_url 为其他地址,以 /agent.jsonmcp.http.url 为准。)

若你的 Cursor 版本仍只支持 command 方式,请改用下方 方式二:本地 stdio

  1. 保存后重启 Cursor,或在 MCP 面板点击刷新
  2. 在对话中尝试:「帮我查 2026 年 10 月 1 日是否放假」——应自动调用 holidays_check

自托管 / 本地调试

本地启动服务后,URL 改为:

http://127.0.0.1:8080/mcp

config.yaml 默认开启 MCP HTTP:

agent:
  mcp_http_enabled: true   # false 可关闭
  mcp_http_path: /mcp

方式二:本地 stdio

适用于 Cursor 旧版、Claude Desktop,或需要指向非 resapi.cn 的 API 地址。

1. 获取二进制

从部署包(已含 resapi-mcp):

chmod +x resapi-mcp

自行编译

go build -o resapi-mcp ./cmd/mcp-server

2. Cursor / Claude Desktop 配置

编辑 MCP 配置文件:

客户端 配置文件路径
Cursor(全局) ~/.cursor/mcp.json
Cursor(项目) .cursor/mcp.json
Claude Desktop ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)

生产环境

{
  "mcpServers": {
    "resapi": {
      "command": "/绝对路径/resapi-mcp",
      "args": ["-api-base", "https://resapi.cn"]
    }
  }
}

本地调试

{
  "mcpServers": {
    "resapi": {
      "command": "/绝对路径/resapi-mcp",
      "args": ["-api-base", "http://127.0.0.1:8080"]
    }
  }
}

-api-base 必须可访问;MCP 进程会通过 HTTP 代理调用 ResAPI,本身不连接数据库。

3. 命令行参数

参数 默认值 说明
-api-base https://resapi.cn ResAPI 根地址,勿带末尾 /

提供的 Tool(12 个)

MCP 暴露的是粗粒度工具(非 60+ 原始端点),便于 AI 准确选型:

Tool ID 用途 必填参数 示例
holidays_check 某日是否放假/调休 date 2026-10-01
holidays_lunar 农历、节气、生肖 date 2026-02-04
regions_search 省市区搜索 q 海淀
regions_ancestors 区划层级路径 code 110108
phone_lookup 手机号/号段归属 number 13213000000
validate_idcard 身份证校验 number 18 位号码
validate_bank_card 银行卡 Luhn 校验 number 卡号
zipcode_lookup 邮编查地名 zip 100020
zipcode_search 地名查邮编 q 朝阳区
ich_search_projects 非遗项目搜索 q 黄梅戏
colleges_search 高校搜索 q 浙江大学
address_parse 自由文本地址解析 text 完整地址

完整定义(含 when_to_use、参数说明):

curl -s https://www.resapi.cn/agent.json

聚合接口(减少 AI 多次调用)

除 MCP Tool 外,HTTP 层提供聚合接口;MCP 内部仍走 /v1/*,你也可以在 Skill / 自定义 Agent 里直接调:

路径 合并能力
GET /v1/agent/day?date= 工作日判断 + 农历
GET /v1/agent/address?text= 地址解析 + 区划层级
GET /v1/agent/phone?number= 号段归属 + 省级区划
GET /v1/agent/zipcode?q= 邮编/地名智能互查
GET /v1/agent/suggest?q= 意图路由,推荐 Tool

所有 /v1/* 成功 JSON 响应会附带 agent_hint,提示更合适的下一步接口。


验证接入是否成功

1. 检查 API 可达

curl -s https://www.resapi.cn/health
curl -s https://www.resapi.cn/agent.json | head -c 200

2. 检查 MCP HTTP 端点(POST)

Streamable HTTP 使用 POST 握手,curl -I(HEAD)可能返回 404,不代表服务不可用。请用下面的 POST initialize 验证:

curl -sS -X POST "https://www.resapi.cn/mcp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2024-11-05",
      "capabilities": {},
      "clientInfo": { "name": "curl-test", "version": "1.0" }
    }
  }'

成功时返回 JSON,且 result.serverInfo.nameresapi(版本如 1.13.0)。

可选:列出 12 个 Tool:

curl -sS -X POST "https://www.resapi.cn/mcp" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'

3. 在 Cursor 中测试

对 AI 说:

  • 「2026 年国庆节放几天假?」
  • 「132 开头的手机号是哪里?」
  • 「解析地址:北京市海淀区中关村大街 1 号」

若 MCP 正常,AI 会调用对应 Tool 并返回 JSON 结果。


服务发现与其他文档

端点 / 文档 说明
GET /agent.json 工具清单、聚合接口、MCP 地址
GET /catalog.json API 目录(含 agent_summary
GET /openapi.json OpenAPI 3.0(含 x-agent-when-to-use
WorkBuddy 接入 腾讯 WorkBuddy Skill 配置
Skill 包 意图路由表,可导入 Agent 中台
升级计划 Agent 能力路线图

使用原则

原则 说明
只读 全部 Tool 对应 GET,无写入与数据托管
不缓存用户输入 手机号、地址、证件等查询不入库、不进 Redis
免 Key 当前无需 API Key;请遵守限流(响应头 X-RateLimit-*
仅供参考 数据用于技术验证;重要决策请以官方口径为准

故障排查

现象 处理
curl -I /mcp 返回 404 正常;MCP 走 POST,请用上方 initialize 命令验证
resapi.cn/mcp 连不上 改用 www.resapi.cn/mcp,避免 301 导致 POST body 丢失
Cursor 看不到 resapi 工具 检查 MCP 配置 JSON 语法;重启 Cursor;stdio 方式确认二进制路径为绝对路径
Tool 调用报 HTTP 4xx/5xx 检查 -api-base 或远程 URL;curl -s https://www.resapi.cn/health
远程 /mcp 连接失败 确认 agent.mcp_http_enabled: true;Nginx 需放行 /mcp 长连接(见下)
stdio 无日志 MCP 日志在 stderr,不要重定向 stdout(会破坏 JSON-RPC)
日期/邮编参数错误 日期 YYYY-MM-DD;邮编 6 位数字
429 限流 降低调用频率;响应头查看 X-RateLimit-Remaining

无需单独启动 resapi-mcp:远程 MCP 只跑主进程 ./resapi 即可;stdio 方式由 Cursor 自动拉起子进程。

Nginx 反代提示

resapi.cn 前有 Nginx,需为 /mcp 关闭缓冲并允许长连接,例如:

location /mcp {
    proxy_pass http://127.0.0.1:8080;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    proxy_buffering off;
    proxy_read_timeout 86400s;
}

相关链接