Skip to main content
Glama

MCP 样板:模型上下文协议服务器

该服务器实现了模型上下文协议 (MCP),可供全球使用,并作为样板。它提供了一种标准化的方法,可以使用模型上下文协议将 AI 模型连接到不同的数据源和工具。

特征

  • 实现 MCP 服务器发送事件 (SSE) 传输

  • 为构建自定义 MCP 服务器提供强大的结构

  • 包括具有适当类型定义的示例工具

  • 使用 API 密钥进行安全身份验证

  • 具有不同严重程度的日志记录功能

  • 多客户端连接的会话管理

  • SIGINT 和 SIGTERM 信号的正常关闭处理

Related MCP server: SourceSync.ai MCP Server

工具

该服务器当前包含以下示例工具:

  • calculator :执行基本算术运算(加、减、乘、除)

有关如何添加您自己的自定义工具的信息,请查看扩展样板部分

配置

服务器配置集中在src/config.ts中。这使得调整设置变得容易,而无需修改多个文件。

// Essential configuration options export const config = { server: { name: "mcp-boilerplate", version: "1.0.0", port: parseInt(process.env.PORT || "4005"), host: process.env.HOST || "localhost", apiKey: process.env.API_KEY || "dev_key", }, sse: { // How often to send keepalive messages (in milliseconds) keepaliveInterval: 30000, // Whether to send ping events in addition to comments usePingEvents: true, // Initial connection message sendConnectedEvent: true, }, tools: { // Number of retries for failed tool executions maxRetries: 3, // Delay between retries (in milliseconds) retryDelay: 1000, // Whether to send notifications about tool execution status sendNotifications: true, }, logging: { // Default log level defaultLevel: "debug", // How often to send log messages (in milliseconds) logMessageInterval: 10000, }, };

排除 SSE 超时故障

如果您的 MCP 连接出现“主体超时错误”:

  1. 减少keepaliveInterval以更频繁地发送 keepalive 消息(例如 15000ms)

  2. 确保启用usePingEvents以获得额外的连接稳定性

  3. 如果您使用代理服务器,请检查是否存在代理超时

设置

  1. 安装依赖项:

npm install
  1. 使用以下变量创建.env文件:

PORT=4005 API_KEY=your_api_key
  1. 构建项目:

npm run build
  1. 启动服务器:

npm run start:sse

发展

# Start in development mode with hot reloading npm run start # Start with PM2 for production npm run start:pm2 # Development mode with nodemon npm run dev

API 端点

  • /health :返回服务器状态和版本的健康检查端点

  • /sse :用于建立 MCP 连接的 SSE 端点(需要 API 密钥)

  • /messages :客户端-服务器通信的消息处理端点

MCP 配置

要将 MCP 连接到此服务器,请添加以下配置:

{ "mcpServers": { "mcp-server": { "url": "http://localhost:4005/sse?API_KEY={{your_api_key_here}}" } } }

扩展样板

添加自定义工具

按照以下步骤向 MCP 服务器添加新工具:

  1. 创建您的工具处理程序

    • src/tools.ts文件中添加新的工具处理程序,或在src/tools目录中创建一个新文件

    • 该工具应该遵循ToolHandler接口

  2. 配置您的工具

    • 将您的工具配置添加到src/tools.ts中的toolConfigs数组中

    • 定义工具的名称、描述、输入模式和处理程序

  3. 导出并注册您的工具

    • 如果您创建了单独的文件,请导出处理程序并将其导入src/tools.ts

    • 确保您的工具已在toolConfigs数组中正确注册

例子:

// In src/tools.ts (adding directly to the toolConfigs array) { name: "myTool", description: "My tool description", inputSchema: { type: "object" as const, properties: {}, required: [], }, handler: async () => { return createSuccessResult({ result: "Tool result" }); }, }

错误处理

服务器实现了全面的错误处理:

  • 所有操作都包裹在try/catch块中

  • 对参数和输入进行适当的验证

  • 适当的错误消息以便更好地调试

  • 用于创建标准化错误和成功响应的辅助函数

安全注意事项

  • 所有连接的 API 密钥认证

  • 所有参数的类型验证

  • 没有硬编码的敏感信息

  • 适当的错误处理以防止信息泄露

  • 基于会话的传输管理

MCP 协议功能

该样板支持核心 MCP 功能:

  • 工具:列出并调用具有适当参数验证的工具

  • 日志记录:各种严重级别(调试、信息、通知、警告、错误、严重、警报、紧急)

  • 服务器配置:名称、版本和功能

会话管理

服务器通过以下方式管理客户端会话:

  • 每个客户端连接的唯一会话 ID

  • 通过会话 ID 跟踪活动传输

  • 自动清理断开的会话

  • 连接状态跟踪

其他资源

执照

该项目根据MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/iamsrikanthnani/mcp-boilerplate'

If you have feedback or need assistance with the MCP directory API, please join our Discord server