MCP Server 请求方式(即支持的 JSON-RPC 方法),以及它们的基本用途:
在 MCP Server(如 plugins/golang-filter/mcp-session/common/server.go)中, 包括:
1. tools/list
- 用途:获取当前 MCP Server 支持的所有工具(API)列表。
- 请求格式:json
{ "jsonrpc": "2.0", "method": "tools/list", "params": {}, "id": 1 }
2. tools/call
- 用途:调用某个具体工具(API),执行实际业务操作。
- 请求格式:json
{ "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "工具名称", "args": { ... } }, "id": 2 }
3. resources/list
- 用途:获取 MCP Server 支持的所有资源列表。
- 请求格式:json
{ "jsonrpc": "2.0", "method": "resources/list", "params": {}, "id": 3 }
4. resources/read
- 用途:读取某个具体资源的详细信息。
- 请求格式:json
{ "jsonrpc": "2.0", "method": "resources/read", "params": { "name": "资源名称" }, "id": 4 }
5. prompts/list
- 用途:获取所有 prompt(提示词/模板)列表。
- 请求格式:json
{ "jsonrpc": "2.0", "method": "prompts/list", "params": {}, "id": 5 }
6. prompts/get
- 用途:获取某个 prompt 的详细内容。
- 请求格式:json
{ "jsonrpc": "2.0", "method": "prompts/get", "params": { "name": "prompt名称" }, "id": 6 }
其他说明
- 这些方法均采用 JSON-RPC 2.0 协议,通常通过 HTTP POST、WebSocket 或 SSE 发送。
- 每个方法的 params 字段根据实际业务需求填写,id 字段用于请求响应对应。
- MCP Server 还可能支持自定义扩展方法,具体以实际实现为准。
总结表格:
| 方法名 | 作用 | 典型请求格式片段 |
|---|---|---|
| tools/list | 获取工具列表 | |
| tools/call | 调用具体工具 | |
| resources/list | 获取资源列表 | |
| resources/read | 读取资源详情 | |
| prompts/list | 获取 prompt 列表 | |
| prompts/get | 获取 prompt 详情 |
| 方法名 | 作用/用途 | 调用示例(JSON-RPC 请求体) |
|---|---|---|
| initialize | 初始化连接/会话 | json<br>{ "jsonrpc": "2.0", "method": "initialize", "params": {}, "id": 1 }<br> |
| ping | 心跳检测 | json<br>{ "jsonrpc": "2.0", "method": "ping", "params": {}, "id": 2 }<br> |
| resources/list | 获取资源列表 | json<br>{ "jsonrpc": "2.0", "method": "resources/list", "params": {}, "id": 3 }<br> |
| resources/templates/list | 获取资源模板列表 | json<br>{ "jsonrpc": "2.0", "method": "resources/templates/list", "params": {}, "id": 4 }<br> |
| resources/read | 读取资源详情 | json<br>{ "jsonrpc": "2.0", "method": "resources/read", "params": { "name": "资源名" }, "id": 5 }<br> |
| prompts/list | 获取 prompt(提示词)列表 | json<br>{ "jsonrpc": "2.0", "method": "prompts/list", "params": {}, "id": 6 }<br> |
| prompts/get | 获取指定 prompt 详情 | json<br>{ "jsonrpc": "2.0", "method": "prompts/get", "params": { "name": "prompt名" }, "id": 7 }<br> |
| tools/list | 获取工具(API)列表 | json<br>{ "jsonrpc": "2.0", "method": "tools/list", "params": {}, "id": 8 }<br> |
| tools/call | 调用具体工具(API) | json<br>{ "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "工具名", "args": { ... } }, "id": 9 }<br> |
| ""(空字符串) | 处理响应消息(一般不用主动调用) | 无需主动调用,服务端内部处理响应 |
| 其他未定义方法 | 返回 Method not found 错误 | 无效方法会返回错误响应 |
说明:
- 所有请求均需通过 JSON-RPC 2.0 协议发送,通常用 HTTP POST、WebSocket 或 SSE。
- id 字段可自定义,用于请求和响应的对应。
- params 字段根据方法不同填写,部分方法如 tools/call、resources/read、prompts/get 需传递参数。