本 SDK 使用 TypeScript 实现了 Model Context Protocol (MCP),具备完整的客户端和服务端功能,可轻松集成到大语言模型(LLM)的交互界面中,为应用与 LLM 的交互提供标准化解决方案。
Model Context Protocol 能够让应用程序以标准化方式为 LLM 提供上下文信息,将上下文提供和实际的 LLM 交互解耦。此 TypeScript SDK 完整实现了 MCP 标准规范,方便开发者进行以下操作:
npm install @modelcontextprotocol/sdk
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
const transport = new StdioClientTransport({
command: "path/to/server",
});
const client = new Client({
name: "example-client",
version: "1.0.0",
}, {
capabilities: {}
});
await client.connect(transport);
// 列出可用资源
const resources = await client.request(
{ method: "resources/list" },
ListResourcesResultSchema
);
// 读取特定资源
const resourceContent = await client.request(
{
method: "resources/read",
params: {
uri: "file:///example.txt"
}
},
ReadResourceResultSchema
);
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: {
resources: {}
}
});
server.setRequestHandler(ListResourcesRequestSchema, async () => {
return {
resources: [
{
uri: "file:///example.txt",
name: "Example Resource",
},
],
};
});
server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
if (request.params.uri === "file:///example.txt") {
return {
contents: [
{
uri: "file:///example.txt",
mimeType: "text/plain",
text: "This is the content of the example resource.",
},
],
};
} else {
throw new Error("Resource not found");
}
});
const transport = new StdioServerTransport();
await server.connect(transport);
欢迎在 GitHub 提交问题和拉取请求:https://github.com/modelcontextprotocol/typescript-sdk
此项目以 MIT License 授权,详细信息见 LICENSE 文件。