MCP Host:运行LLM的应用程序 MCP Client:Host内部的连接器,与Server是一对一通信 MCP Server:轻量级程序,对外提供工具/资源/提示词模板等功能
Resources(资源):让模型能读取数据,包括本地文件,数据库记录等 Tools(工具):让模型能执行操作,例如调用api,写文件等 Prompts(提示模板):预定义的对话模板
POST /mcp HTTP/1.1Host: weather.example.comContent-Type: application/jsonMCP-Protocol-Version: 2026-07-28Mcp-Method: tools/callMcp-Name: get_weather
MCP-Protocol-Version:声明协议版本
Mcp-Method:对应JSON-RPC中的method项,这里有了method之后,网关不需要解析json就可以知道请求的意图。
Mcp-Name:具体资源或工具名。
{"jsonrpc": "2.0","id": 101,"method": "tools/call","params": {"name": "get_weather","arguments": {"location": "北京","unit": "celsius"},"_meta": {"io.modelcontextprotocol/protocolVersion": "2026-07-28","io.modelcontextprotocol/clientInfo": {"name": "MyCoolAgent","version": "2.0.0"},"io.modelcontextprotocol/clientCapabilities": {}}}}
jsonrpc: "2.0" (没变) id: 请求唯一标识 method: "tools/call"(没变) params.name / params.arguments: 工具名和参数(没变) _meta: 这个是新版实现“无状态”的关键数据项。这里携带了协议版本、客户端信息(Client Info)和能力(Capabilities)。
{"jsonrpc": "2.0","id": 101,"result": {"resultType": "complete","content": [{"type": "text","text": "北京当前天气:晴,气温 25°C,湿度 40%。"}],"_meta": {"io.modelcontextprotocol/serverInfo": {"name": "WeatherServer","version": "2.0.0"}}}}
{"jsonrpc": "2.0","id": 101,"result": {"resultType": "input_required","inputRequests": {"confirm_unit": {"method": "elicitation/create","params": {"message": "请确认温度单位:","options": ["celsius", "fahrenheit"]}}},"requestState": "opaque-state-string"}}
{"jsonrpc": "2.0","id": 102, // 注意:ID 变了"method": "tools/call","params": {"name": "get_weather","arguments": { "location": "北京" },"inputResponses": {"confirm_unit": { "action": "accept", "content": { "unit": "celsius" } }},"requestState": "opaque-state-string", // 原样带回"_meta": { ... }}}
夜雨聆风