模型上下文协议 (MCP) 正在迅速成为 AI 模型与外部工具和数据源交互的标准方式。由 Anthropic 开发的 MCP TypeScript SDK,为开发者提供了在 TypeScript 中构建 MCP 服务器和客户端所需的所有工具。
该 SDK 处理核心协议细节——JSON-RPC 通信、传输管理、工具定义、资源暴露和认证——让你专注于构建有用的工具。它支持 Stdio 和 SSE 传输、流式响应、能力协商以及完整的类型安全接口。
核心组件
| 组件 | 描述 |
|---|---|
| Server | 创建和配置 MCP 服务器 |
| Client | 连接到 MCP 服务器并调用工具 |
| Transport | Stdio、SSE 和自定义传输实现 |
| Types | 完整的 MCP 协议类型定义 |
| StreamableHTTP | 支持 SSE 的 HTTP 传输 |
服务器架构
flowchart LR
A[MCP 服务器] --> B[Server 实例]
B --> C[工具处理函数]
B --> D[资源处理函数]
B --> E[提示处理函数]
C --> F[工具定义]
D --> G[资源 URI]
E --> H[提示模板]
B --> I[传输层]
I --> J[Stdio 传输]
I --> K[SSE 传输]
I --> L[StreamableHTTP]服务器架构围绕 Server 实例组织,你向其注册工具、资源和提示处理函数。传输层处理与客户端的底层通信,Server 类处理协议协商和消息路由。
快速示例
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new Server({
name: "example-server",
version: "1.0.0",
}, {
capabilities: { tools: {} },
});
server.setRequestHandler(ListToolsRequestSchema, async () => ({
tools: [{ name: "hello", description: "Say hello", inputSchema: { type: "object", properties: {} } }],
}));
const transport = new StdioServerTransport();
await server.connect(transport);
SDK 版本对比
| 功能 | v0.5 | v1.0 | v1.2 |
|---|---|---|---|
| 工具定义 | 基本 | 完整模式 | 类型化模式 |
| 资源模板 | 无 | 静态 | 动态 URI 模板 |
| 流式 | 无 | SSE | SSE + StreamableHTTP |
| 根目录 | 无 | 无 | 目录列表 |
| 进度 | 无 | 无 | 操作进度 |
| 日志 | 无 | 无 | 结构化日志 |
如需更多信息,请访问 MCP TypeScript SDK GitHub 仓库 和 MCP 规范文档。
常见问题
Q:我需要什么版本的 Node.js? A:该 SDK 需要 Node.js 18 或更高版本。
Q:我可以在浏览器中使用 SDK 吗? A:核心协议类型可以用于浏览器,但服务器和客户端传输是 Node.js 原生的。
Q:SDK 如何与认证配合使用? A:SDK 支持 OAuth 2.0 认证流程和 API 密钥,具体取决于传输方式。
Q:SDK 支持流式响应吗? A:是的,通过 SSE 和 StreamableHTTP 传输实现实时响应。
Q:SDK 与 Express.js 或 Fastify 能配合使用吗? A:可以,你可以将 MCP 传输层集成到现有的 Node.js HTTP 框架中。
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!