typescript-sdk:构建LLM应用的新框架
在当今人工智能技术飞速发展的时代,语言模型的应用变得越来越广泛。为了更好地管理和提供模型运行所需的上下文信息,Model Context Protocol(MCP)应运而生。typescript-sdk 是一款遵循 MCP 规范的开源 TypeScript SDK,它让开发者能够轻松地构建符合标准的数据和功能暴露服务。
项目介绍
typescript-sdk 是一个实现完整 MCP 规范的 TypeScript SDK,旨在帮助开发者构建可以连接到任意 MCP 服务器的客户端,同时也能创建暴露资源、提示和工具的服务器。它支持标准的传输方式,如 stdio 和 SSE,并能够处理所有 MCP 协议消息和生命周期事件。
项目技术分析
typescript-sdk 的核心是 McpServer 类,它负责连接管理、协议遵守和消息路由。通过这个类,开发者可以定义资源(Resources)、工具(Tools)和提示(Prompts),这些是 MCP 协议中的核心概念。
- 资源(Resources):类似于 REST API 中的 GET 端点,资源用于向 LLM 提供数据,但不应该进行复杂的计算或产生副作用。
- 工具(Tools):工具则像是 POST 端点,允许 LLM 通过服务器执行代码或产生其他副作用。
- 提示(Prompts):提示是可重用的模板,帮助 LLM 更有效地与服务器交互。
项目技术应用场景
typescript-sdk 的应用场景非常广泛,它可以用于构建各种类型的人工智能服务,包括但不限于:
- 数据库查询接口,为 LLM 提供快速的数据检索能力。
- 功能性工具,例如计算器、天气查询等,允许 LLM 执行特定操作。
- 复杂交互流程,如代码审查、数据分析等,通过提示引导 LLM 完成任务。
项目特点
typescript-sdk 具有以下显著特点:
- 标准化:遵循 MCP 规范,确保与不同 LLM 应用和服务的兼容性。
- 灵活性:支持多种传输方式,包括 stdio 和 HTTP with SSE,适用于不同部署环境。
- 易用性:丰富的文档和示例代码,帮助开发者快速上手。
- 扩展性:通过工具和提示的概念,可以轻松扩展服务器的功能。
以下是typescript-sdk 的核心功能简要介绍:
核心功能
- 构建 MCP 客户端和服务端。
- 暴露资源和工具,为 LLM 提供数据和功能。
- 使用 stdio 和 SSE 等标准传输方式。
- 处理 MCP 协议消息和生命周期事件。
现在,让我们通过几个示例来详细了解如何使用 typescript-sdk。
示例:创建简单的 MCP 服务器
以下是一个创建包含计算器工具和问候语资源的简单 MCP 服务器的示例:
import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
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) }]
}));
// 添加动态问候语资源
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);
通过以上代码,我们定义了一个简单的 MCP 服务器,它可以通过 stdio 接收和发送消息。开发者可以根据需要添加更多资源和工具,以扩展服务器的功能。
总结来说,typescript-sdk 是一个强大且灵活的工具,它简化了 MCP 服务器的构建过程,为语言模型应用的开发提供了有力的支持。无论你是在开发一个简单的个人项目,还是一个复杂的企业级应用,typescript-sdk 都能帮助你快速实现需求,提高开发效率。