用途:编写 MCP 服务器代码,包括 SDK 设置、原语注册、传输接线、错误语义与协议行为。面向规范 2025-11-25,文中 SDK 截至 2026-07-20 验证:TypeScript @modelcontextprotocol/sdk v1.29 与 Python mcp v1.28。
不适用:决定暴露哪些原语应先做设计;OAuth/令牌、威胁加固、评测、托管分发分别由其它技能处理;也不适用于构建 MCP 客户端或非 MCP 服务器。
主要能力与用法:先设计好接口并选语言(TypeScript/Python 为一档),再按部署目标选传输:本地单客户端子进程用 stdio,远程/多客户端用 Streamable HTTP。安装命令保持原样:Python 用 uv add "mcp[cli]>=1.27,<2" 或 pip install "mcp[cli]>=1.27,<2";TypeScript 用 npm i @modelcontextprotocol/sdk@^1.29 zod 及 npm i -D typescript @types/node。先建共享基础设施(带超时的 HTTP 客户端、集中错误映射、分页格式化),再注册工具。Python 用 FastMCP(name) 与 @mcp.tool() 等;TypeScript 用 new McpServer 与 registerTool/registerResource/registerPrompt。
关键限制:stdio 下 stdout 只能有 MCP 消息,任何打印或依赖横幅都会破坏帧;日志必须走 stderr。Streamable HTTP 需处理 MCP-Protocol-Version、会话、可恢复性与 Origin 校验。错误分两层:协议错误与 isError 结果。JSON-RPC 批处理已在 2025-06-18 移除;版本协商严格;仅声明实际实现的能力。长期任务需进度通知与取消处理。空结果也要返回规范结果。完成后再用 MCP Inspector 验证。