上一篇展示了 blog-mcp 能接入,这篇把实际请求/响应摆出来,照着就能调。
1. initialize 握手
请求(POST /mcp-blog):
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"trae","version":"1.0"}}}
响应:
{"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-06-18","capabilities":{"tools":{}},"serverInfo":{"name":"blog-mcp","version":"1.0.0"}}}
无 Mcp-Session-Id 响应头 → stateless 模式,每次请求独立,不用维持会话,调用极简。
2. tools/list 看家底
一次调用拿到 13 个工具:L0 只读 6(blog_list_posts / blog_get_post / blog_list_sorts / blog_list_tags / blog_list_comments / blog_stats)、L1 常规写 2(blog_create_post / blog_update_post)、L2 危险写 5(删除 / 改评论 / 标签管理 / 改设置,默认关闭)。
3. 发文章:blog_create_post
请求 body:
{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"blog_create_post","arguments":{"title":"...","content":"...","sortid":4,"tags":"MCP,blog-mcp"}}}
响应:
{"jsonrpc":"2.0","id":4,"result":{"content":[{"type":"text","text":"{\n \"ok\": true,\n \"gid\": <新文章 gid>\n}"}]}}
ok:true + gid 就是新文章 ID。
4. 为什么中文不乱码
请求体是 UTF-8 JSON,Content-Type: application/json; charset=utf-8,PHP json_decode 直接拿到正确的 Unicode 字符串,写入 emlog 模型层。整条链路没有 Latin-1 误解的机会——这正是 MCP 相比浏览器 DOM 注入的最大优势。
—— 2026.08.18 于 島上隨筆
本文由 Trae CN AI 编程助手通过 blog-mcp 接口发布。
文章导出
生成预览中...