MCP服务器TypeScript模板

一个干净、可重用的TypeScript模板,用于构建模型上下文协议(MCP)服务器。

  • by LarouTech
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 laroutech/mcp-server-boilerplate

使用说明

MCP服务器TypeScript锅炉板

一个干净、可重用的TypeScript样板,用于构建模型上下文协议(MCP)服务器。

特性

  • 清洁建筑:模块化设计,明确分离关注点
  • 类型安全:完全支持TypeScript,具有严格的类型检查
  • 易于配置:工具和资源的简单配置对象
  • 内置示例:开始使用的示例工具和资源
  • 错误处理:通过有意义的消息进行全面的错误处理
  • 优雅地关闭:在流程终止时进行适当的清理
  • 开发就绪:热重新加载和调试支持

快速开始

安装

npm install

发展

npm run dev

构建

npm run build
npm start

用法

添加自定义工具

工具是MCP客户端可以调用的函数。将它们添加到 tools 服务器配置中的数组:

const customTool: ToolHandler = {
  name: "my_custom_tool",
  description: "Description of what this tool does",
  inputSchema: {
    type: "object",
    properties: {
      param1: {
        type: "string",
        description: "Parameter description",
      },
    },
    required: ["param1"],
  },
  handler: async (args: { param1: string }) => {
    // Your tool logic here
    return `Processed: ${args.param1}`;
  },
};

添加自定义资源

资源是MCP客户端可以读取的静态或动态内容:

const customResource: ResourceHandler = {
  uri: "custom://my-resource",
  name: "My Custom Resource",
  description: "Description of this resource",
  mimeType: "application/json",
  handler: async () => {
    // Your resource logic here
    return JSON.stringify({ data: "example" });
  },
};

配置

修改 serverConfig object自定义服务器:

const serverConfig: ServerConfig = {
  name: "my-mcp-server",
  version: "1.0.0",
  description: "My custom MCP server",
  tools: [customTool, ...exampleTools],
  resources: [customResource, ...exampleResources],
};

项目结构

├── src/
│   └── index.ts          # Main server implementation
├── dist/                 # Compiled JavaScript (generated)
├── package.json          # Dependencies and scripts
├── tsconfig.json         # TypeScript configuration
└── README.md            # This file

示例工具

样板包括几个示例工具:

  • 回声:回显输入消息
  • add_numbers:将两个数字相加
  • 当前时间:以各种格式获取当前时间

示例资源

  • info://server/status:服务器状态和运行时信息
  • info://server/config:服务器配置详细信息

发展

脚本

  • npm run dev -使用热重新加载启动开发服务器
  • npm run build -为生产而建
  • npm start -启动生产服务器
  • npm run clean -清理构建工件
  • npm run lint -运行ESLint
  • npm run lint:fix -修复ESLint问题

测试您的服务器

您可以使用任何MCP客户端测试您的MCP服务器。服务器通过stdio进行通信,因此您也可以直接对其进行测试:

echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}' | node dist/index.js

部署

作为独立应用程序

npm run build
node dist/index.js

作为图书馆

您还可以将其用作其他项目中的库:

import { MCPServer, ToolHandler, ResourceHandler } from './src/index.js';

const myTools: ToolHandler[] = [
  // Your custom tools
];

const server = new MCPServer({
  name: "my-server",
  version: "1.0.0",
  tools: myTools,
  resources: [],
});

await server.start();

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

许可证

MIT许可证-有关详细信息,请参阅许可证文件

支持

对于问题和疑问:

  • 在GitHub上创建问题
  • 检查MCP文档
  • 查看示例实现

更新日志

1.0.0

  • 初始版本
  • 基本工具和资源支持
  • TypeScript样板
  • 示例实现