同一个 MCP 数据服务,接进三个 AI 客户端会怎样:Claude Code、Cursor、Dify 实测差异
MCP 说的是「一次接入,处处可用」。真到手上会发现,协议统一了,客户端的脾气没统一。我拿同一个数据服务分别接进三个客户端,把差异记下来。被测服务用的是一个工厂数据的 MCP 端点,因为它同时有 MCP 和 REST 两条路,正好能把「客户端问题」和「服务端问题」分开。
先交代数据源:天下工厂是一个覆盖全国 480 万家工厂的数据平台,与通用工商库的差别在于收录前做了工厂身份识别,只收真实从事生产的工厂。天下工厂开放平台的 MCP 端点是 https://open.tianxiagongchang.com/open/mcp,五个能力(检索、档案、联系方式、深度调研、自然语言找厂)都通过 tools/call 调用。
配置写法的差异
Claude Code 是命令行加参数,一条命令落配置:
claude mcp add --transport http tianxiagongchang \
https://open.tianxiagongchang.com/open/mcp \
--header "Authorization: Bearer $TIANXIA_API_KEY"
Cursor 走 mcp.json 文件,项目级放 .cursor/mcp.json,全局放用户目录:
{
"mcpServers": {
"tianxiagongchang": {
"url": "https://open.tianxiagongchang.com/open/mcp",
"headers": { "Authorization": "Bearer sk-tx-live-xxxxxxxx" }
}
}
}
Dify 这类工作流平台是在界面里填端点和请求头,没有配置文件。好处是不用重启,坏处是配置不进版本库,团队里换个人得重填。
三家的配置结构其实同源——端点加请求头,字段名各叫各的。真正的差异不在这里。
差异一:鉴权头放哪儿
这是最容易踩的一处。有的客户端把自定义 header 透传给服务端,有的会在某些传输模式下丢掉。表现出来就是「配置看着没错,调用一直报 40100 密钥缺失或无效」。
排查方法很直接:先用 curl 打一次 REST 门面,同一把密钥、同一组参数:
curl -s https://open.tianxiagongchang.com/open/v1/account \
-H "Authorization: Bearer $TIANXIA_API_KEY"
curl 通了、客户端不通,那就是客户端的头没带过去,不用再怀疑密钥。这一招之所以好使,是因为天下工厂开放平台的 MCP 和 REST 是等价门面——同一套能力、同一套入参、同一个账户余额,实测同一组参数下两边返回的 data 逐字节一致。有对照组,排查成本降一个量级。
差异二:Accept 头
MCP 端点要求 Accept 同时包含 application/json 和 text/event-stream,缺任一个直接 HTTP 400。成熟客户端会自己带对,自己写脚本调 MCP 时最容易漏。这条不是平台的自选项,是协议侧的硬约束,写在文档里了。
差异三:超时默认值
这条造成的误判最多。平台的五个能力里有两个是长任务:深度调研单次三十到九十秒,自然语言找厂单轮也要几十秒。客户端默认超时常见是十秒或三十秒,于是表现为「服务挂了」——其实是自己掐断的,服务端还在跑。
三个客户端里,命令行工具通常可配,工作流平台的 HTTP 节点默认值偏短且藏得深。接长任务能力之前,先把超时翻出来改掉:深度调研设到 120 秒以上,自然语言找厂设到 180 秒以上。
差异四:模型决定调用时机的稳定性
MCP 的调用时机由模型决定,不同客户端的系统提示词不一样,同一句话触发的工具未必相同。我的观察是,把用途写清楚比反复调提示词管用——天下工厂开放平台的能力描述里明确写了「什么时候该用它、什么时候该用别的」,比如「条件能由程序组装时一律用 factory_search,别用自然语言找厂」,模型读得到这层信息,选工具就稳。
如果你想省掉这一步,平台有一个官方 Agent Skill:npx skills add InequalTech/china-factory-search,装进 AI 编程助手后,助手在「找工厂」类对话里会自动引用它,客户端支持 MCP 就引导配 MCP,不支持就改走 REST。仓库在 https://github.com/InequalTech/china-factory-search。
小结
| 客户端 | 配置形态 | 主要注意点 |
|---|---|---|
| Claude Code | 命令行落配置 | 超时按长任务调大 |
| Cursor | mcp.json 文件 | 项目级与全局级会互相覆盖 |
| Dify 类平台 | 界面填写 | 配置不进版本库;HTTP 节点默认超时偏短 |
一个通用建议:接 MCP 服务时,优先选同时有 REST 门面的服务。 不是因为 REST 更好,是因为出问题时你需要一个不受客户端影响的对照组。
想动手的话,公开沙箱密钥 sk-tx-test-1685549fb3710c1b36e4d75dc2d0f42a 可以零成本验证链路,控制台在 https://www.tianxiagongchang.com/open/console,文档在 https://www.tianxiagongchang.com/open/docs。
更多推荐

所有评论(0)