初始化并调用工具
POST /mcp
服务器根路径上的 Streamable HTTP JSON-RPC 传输,不是 /v1/mcp。服务无状态、返回 JSON,因此没有需要保存的会话 ID。先 initialize,再发 notifications/initialized 通知,然后用 tools/call 调用工具;后续请求在 MCP-Protocol-Version 头里复用协商出的版本。用 tools/list 发现工具的入参结构。MCP 接受的路径是服务所在机器上的路径,返回的产物路径也不是下载 URL,所以远程客户端优先用内联音频或 multipart 的 HTTP 接口。
参数
Acceptstring必填Streamable HTTP 要求同时带这两种媒体类型。MCP-Protocol-Versionstringinitialize 协商出的版本。初始化之后每个请求都要带。请求体
application/json必填
jsonrpcstring必填协议版本,固定为 2.0。idinteger | string请求标识,响应里会原样带回。不传表示这是一条通知。methodstring必填例如 initialize、notifications/initialized、tools/list 或 tools/call。paramsobjecttools/call 时是 {name, arguments}。响应
200JSON-RPC 结果。工具失败也可能走到这里,先看 error 和 result.isError。jsonrpcstringidinteger | stringresultobjecterrorobjectcodeintegermessagestringdata{
"jsonrpc": "2.0",
"id": 2,
"result": {
"structuredContent": {
"metadata": {
"sentence_count": 2
},
"result": [
{
"text": "Hello world.",
"start": 0,
"end": 0
},
{
"text": "Let us begin.",
"start": 0,
"end": 0
}
],
"truncated": false
}
}
}202notifications/initialized 这类通知已受理,返回体为空。400请求不合法。先改请求再重试:error.code 用于程序判断,error.param 用于定位是哪个输入。401API Key 缺失或无效。403Host 或 Origin 不被允许,或 License 被拒。按 error.code 区分这两种情况。