初始化并调用工具

POST /mcp

服务器根路径上的 Streamable HTTP JSON-RPC 传输,不是 /v1/mcp。服务无状态、返回 JSON,因此没有需要保存的会话 ID。先 initialize,再发 notifications/initialized 通知,然后用 tools/call 调用工具;后续请求在 MCP-Protocol-Version 头里复用协商出的版本。用 tools/list 发现工具的入参结构。MCP 接受的路径是服务所在机器上的路径,返回的产物路径也不是下载 URL,所以远程客户端优先用内联音频或 multipart 的 HTTP 接口。

指南与示例MCP 设置全部接口

参数

Acceptstring必填Streamable HTTP 要求同时带这两种媒体类型。默认 "application/json, text/event-stream"
MCP-Protocol-Versionstringinitialize 协商出的版本。初始化之后每个请求都要带。

请求体

application/json必填

jsonrpcstring必填协议版本,固定为 2.0。2.0
idinteger | string请求标识,响应里会原样带回。不传表示这是一条通知。
methodstring必填例如 initialize、notifications/initialized、tools/list 或 tools/call。
paramsobjecttools/call 时是 {name, arguments}。

响应

200JSON-RPC 结果。工具失败也可能走到这里,先看 error 和 result.isError。
jsonrpcstring2.0
idinteger | string
resultobject
errorobject
codeinteger
messagestring
data
JSON
{
  "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 区分这两种情况。