简单 MCP
用于创建MCP (模型上下文协议)服务器的简单 TypeScript 库。
特征
- 简单的 API :使用最少的代码创建 MCP 服务器
- 类型安全:完全 TypeScript 集成
- 参数验证:使用 Zod 内置验证
- MCP 兼容:完全实现模型上下文协议
安装
快速入门
import { McpServer } from 'simple-mcp';
import { z } from 'zod';
// Create a server instance
const server = new McpServer({ name: 'my-server' });
// Register the tool with the server
server.tool({
name: 'greet',
parameters: {
name: z.string().describe('Person\'s name')
},
execute: async ({ name }) => {
return {
content: [
{
type: 'text',
text: `Hello, ${name}! Nice to meet you.`
}
]
};
}
});
// Start the server
server.start({ transportType: 'stdio' });
基于类的实现
您还可以使用类来实现 MCP 工具:
import { McpServer, type McpTool } from 'simple-mcp';
import { z, ZodObject } from 'zod';
const parameters = {
name: z.string().describe('The name is required'),
};
class GreetTool implements McpTool<typeof parameters> {
public readonly name = 'greet';
public readonly parameters = parameters;
public async execute({ name }: z.infer<ZodObject<typeof this.parameters>>) {
return {
content: [
{
type: 'text',
text: `Hello, ${name}! Nice to meet you.`,
},
],
};
}
}
// Initialize a new MCP server with the name 'greet-server'
const server = new McpServer({ name: 'greet-server' });
// Create an instance of the GreetTool class
const greetTool = new GreetTool();
// Register the tool with the server
server.tool(greetTool);
// Start the server using stdio as the transport method
server.start({ transportType: 'stdio' });
示例
查看示例目录以获取更完整的示例:
贡献
欢迎贡献代码!欢迎随时提交 issue 或 PR。
执照
麻省理工学院