此服务器实现了用于全球使用的模型上下文协议(MCP)模板。它提供了一种标准化的方法,通过模型上下文协议将AI模型连接到不同的数据源和工具。
当前服务器包括以下示例工具:
计算器:执行基本算术运算(加、减、乘、除)有关如何添加自己的自定义工具的信息,请参阅扩展模板部分。
服务器配置集中在src/config.ts中。这使得调整设置变得容易,而无需修改多个文件。
// 基本配置选项
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: {
// 保持活动消息的发送频率(以毫秒为单位)
keepaliveInterval: 30000,
// 是否在评论之外发送ping事件
usePingEvents: true,
// 初始连接消息
sendConnectedEvent: true,
},
tools: {
// 失败工具执行的最大重试次数
maxRetries: 3,
// 重试之间的延迟(以毫秒为单位)
retryDelay: 1000,
// 是否发送关于工具执行状态的通知
sendNotifications: true,
},
logging: {
// 默认日志级别
defaultLevel: "debug",
// 发送日志消息的频率(以毫秒为单位)
logMessageInterval: 10000,
},
};
如果您遇到“Body超时错误”与您的MCP连接:
keepaliveInterval以发送更频繁的保持活动消息(例如,15000毫秒)usePingEvents以增加连接稳定性npm install
.env文件:PORT=4005
API_KEY=your_api_key
npm run build
npm run start:sse
# 在开发模式下启动并支持热重载
npm run start
# 使用PM2启动生产环境
npm run start:pm2
# 使用nodemon的开发模式
npm run dev
/health:健康检查端点,返回服务器状态和版本/sse:建立MCP连接的SSE端点(需要API密钥)/messages:客户端服务器通信的消息处理端点要从不同客户端连接到此MCP服务器,请使用以下适当的配置:
{
"mcpServers": {
"mcp-server": {
"url": "http://localhost:4005/sse?API_KEY={{your_api_key_here}}"
}
}
}
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:4005/sse?API_KEY={{your_api_key_here}}"
]
}
}
}
按照以下步骤向MCP服务器添加新工具:
创建您的工具处理器:
src/tools.ts文件中添加新的工具处理器或在src/tools目录中创建一个新的文件ToolHandler接口配置您的工具:
src/tools.ts中的toolConfigs数组导出并注册您的工具:
src/tools.ts中导入它toolConfigs数组中示例:
// 在src/tools.ts中(直接添加到toolConfigs数组)
{
name: "myTool",
description: "我的工具描述",
inputSchema: {
type: "object" as const,
properties: {},
required: [],
},
handler: async () => {
return createSuccessResult({ result: "工具结果" });
},
}
服务器实现了全面的错误处理:
此模板支持核心MCP特性:
服务器通过以下方式管理客户端会话: