面向开发者
客户端需要了解的服务器信息,以及如何在不经过助手的情况下直接调用它。
我们实现的协议
-
位于
https://api.publicwww.com/mcp的 Streamable HTTP:每个POST携带一条 JSON-RPC 消息(也接受批量消息),响应为普通的application/json。不使用服务器推送事件(SSE),也没有会话,每个请求都携带自己的令牌。GET返回405。 -
同一 URL 同时支持两代协议:使用
initialize握手的版本(2024-11-05 至 2025-11-25),以及使用server/discover的 2026-07-28 版本。在后者中,协议版本和客户端能力通过每个请求的params._meta传递,且Mcp-Method/Mcp-Name必须与请求体一致。 -
没有令牌或令牌已被删除时,任何请求都会返回
401,并附带指向受保护资源元数据(RFC 9728)的WWW-Authenticate响应头,OAuth 客户端可以据此找到授权服务器。授权流程见面向应用的 OAuth 2.1。 -
工具:
search和account,说明见工具。不提供资源(resources)和提示词(prompts),工具列表在调用之间不会变化。 -
无需令牌即可通过服务器卡片了解服务器信息:名称、地址、协议版本和相关链接。它已列入
https://publicwww.com/.well-known/ai-catalog.json。工具列表不在卡片中,客户端获得令牌后可通过tools/list获取。
用 curl 调用
服务器在调用之间不保存状态,因此无需握手即可直接调用工具:
curl https://api.publicwww.com/mcp \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"search","arguments":{"query":"\"angular.min.js\"","rows":3}}}'
获取工具列表及其输入 schema:
curl https://api.publicwww.com/mcp \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
以上调用及账户检查已整合为一个脚本:mcp-curl.sh。
如果脚本只需要搜索结果,使用 REST API 更简单:搜索和令牌都相同,还支持 CSV、NDJSON 等格式。
下一篇 语言版本