LiteMCP 是一个 TypeScript 框架,可用于优雅地构建 MCP(模型上下文协议)服务器,为开发者提供便捷高效的开发体验。
⚠️ 重要提示
由于官方 SDK 已经提供了与本项目类似的高级别 API,因此该项目将不再维护。
如果你喜欢此项目中的 CLI 命令,请独立使用它们:https://github.com/wong2/mcp-cli
npm install litemcp zod
import { LiteMCP } from "litemcp";
import { z } from "zod";
const server = new LiteMCP("demo", "1.0.0");
server.addTool({
name: "add",
description: "添加两个数字",
parameters: z.object({
a: z.number(),
b: z.number(),
}),
execute: async (args) => {
return args.a + args.b;
},
});
server.addResource({
name: "resource-example",
description: "这是一个示例资源",
content: "Hello, World!",
});
server.start();
运行以下命令以测试服务器:
node server.js
工具是定义可以执行操作的函数。例如,一个简单的计算器工具。
server.addTool({
name: "calculator",
description: "A simple calculator",
parameters: z.object({
a: z.number(),
b: z.number(),
}),
async execute(args) {
return {
add: args.a + args.b,
subtract: args.a - args.b
};
},
});
资源表示可以访问的静态内容或动态生成的内容。
server.addResource({
name: "static-resource",
description: "A static resource example",
content: "This is a static resource.",
});
server.addDynamicResource(async () => {
return {
name: "dynamic-resource",
description: "A dynamic resource example",
content: await fetch('https://api.example.com/data'),
};
});
提示用于定义交互式对话流程。
server.addPrompt({
name: "greeting-prompt",
description: "A simple greeting prompt",
async execute() {
const name = await server.prompt("请输入你的名字:");
return `你好,${name}!`;
},
});
LiteMCP 提供了内置的日志记录功能。
server.log("信息日志");
server.debug("调试日志");
server.error("错误日志");
默认情况下,服务器使用 stdio 传输:
server.start();
你也可以指定自定义端口和其他选项:
server.start({
port: 3000,
hostname: 'localhost',
});
你可以通过以下命令进行调试:
node server.js --inspect
同时,LiteMCP 提供了内置的调试功能:
server.debug("调试信息");
服务器默认运行 stdio 传输。你也可以使用 SSE 模式:
server.start({
transportType: "sse",
sse: {
endpoint: "/sse",
port: 8080,
},
});
这将启动服务器并在 http://localhost:8080/sse 监听 SSE 连接。
如果你使用 LiteMCP 开发了服务器,请通过提交 PR 的方式展示在这里!