使用说明
项目简介
Model Context Protocol TypeScript SDK (typescript-sdk) 是一个用于构建 Model Context Protocol (MCP) 应用的软件开发工具包。它旨在帮助开发者使用 TypeScript 语言快速构建 MCP 客户端和服务器,简化 LLM 应用的上下文管理和功能扩展。该 SDK 实现了完整的 MCP 协议规范,并提供了易于使用的 API 和工具,方便开发者专注于业务逻辑的实现。
主要功能点
- MCP 服务器构建: 提供 'McpServer' 类,简化 MCP 服务器的创建和配置,支持资源 (Resources)、工具 (Tools) 和 Prompt 模板 (Prompts) 的注册和管理。
- 多种传输协议支持: 内置 'StdioServerTransport' 和 'SSEServerTransport',分别支持通过标准输入输出 (stdio) 和 HTTP Server-Sent Events (SSE) 协议与 MCP 客户端通信。
- 资源 (Resources) 管理: 允许服务器托管和管理各种类型的数据资源,并提供标准化的数据访问接口,方便 LLM 获取上下文信息。
- 工具 (Tools) 注册与执行: 支持在 MCP 服务器上注册和管理外部工具,允许 LLM 客户端通过 MCP 协议调用这些工具,扩展 LLM 的功能。
- Prompt 模板 (Prompts) 定义: 支持定义和管理 Prompt 模板,实现可定制的 LLM 交互模式,提高 LLM 应用的灵活性和可复用性。
- 客户端 SDK: 提供 'Client' 类和多种客户端传输实现,方便开发者构建 MCP 客户端应用,与任何 MCP 服务器进行交互。
- 完整的 MCP 协议实现: SDK 实现了完整的 MCP 协议规范,包括消息处理、会话管理、能力声明等,确保应用符合 MCP 标准。
安装步骤
-
确保已安装 Node.js 和 npm。
-
在项目目录下,运行以下命令安装 SDK:
npm install @modelcontextprotocol/sdk
服务器配置
MCP 客户端需要配置 MCP 服务器的启动命令和参数才能建立连接。以下是一个示例 JSON 配置,用于连接通过 stdio 传输协议启动的 MCP 服务器。
{ "serverName": "my-mcp-server", "serverCommand": "node", // MCP 服务器启动命令,例如 node "serverArgs": ["server.js"] // 启动命令参数,例如服务器脚本 server.js }
配置说明:
- 'serverName': MCP 服务器的名称,用于标识服务器 (可选)。
- 'serverCommand': 启动 MCP 服务器的可执行命令。通常为 'node' 或其他可执行文件的路径。
- 'serverArgs': 传递给启动命令的参数数组,例如服务器脚本的文件名或启动参数。
注意: 实际配置可能需要根据您的 MCP 服务器实现和部署方式进行调整。上述配置仅为示例,用于说明 MCP 客户端如何配置连接信息。 MCP 客户端通常需要根据实际使用的传输协议 (例如 stdio, SSE, WebSocket) 进行相应的配置,但核心配置信息通常包括服务器的启动方式 (command 和 args)。
基本使用方法
以下代码示例展示了如何使用 SDK 创建一个简单的 MCP 服务器,并注册一个工具和一个资源:
import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { z } from "zod"; // 创建 MCP 服务器实例 const server = new McpServer({ name: "Demo", version: "1.0.0" }); // 注册一个加法工具 server.tool("add", { a: z.number(), b: z.number() }, async ({ a, b }) => ({ content: [{ type: "text", text: String(a + b) }] }) ); // 注册一个动态 greeting 资源 server.resource( "greeting", new ResourceTemplate("greeting://{name}", { list: undefined }), async (uri, { name }) => ({ contents: [{ uri: uri.href, text: 'Hello, ${name}!' }] }) ); // 使用 Stdio 传输协议连接服务器 const transport = new StdioServerTransport(); await server.connect(transport);
这段代码创建了一个名为 "Demo" 的 MCP 服务器,并注册了一个名为 "add" 的工具和一个名为 "greeting" 的资源。服务器通过 'StdioServerTransport' 监听标准输入输出流,等待客户端连接和请求。
更多详细用法和高级功能,请参考仓库 README.md 文件和示例代码。
信息
分类
开发者工具