项目简介
本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在为大型语言模型 (LLM) 应用提供与 Sentry (错误追踪平台) 和 Monday.com (工作管理平台) 集成的能力。通过此 MCP 服务器,LLM 客户端可以调用 Sentry 和 Monday.com 的工具来获取上下文信息或执行操作,并使用预定义的 Prompt 模板与用户进行交互。
主要功能点
- 工具 (Tools) 注册与执行:
- 集成了 Sentry 和 Monday.com 的多个工具,例如:
- Sentry: 获取组织、项目、Issue 和事件哈希等信息。
- Monday.com: 获取看板、分组、列信息,以及创建 Item 等功能。
- 允许 LLM 客户端通过 'CallToolRequest' 调用这些工具,扩展 LLM 的功能边界。
- 集成了 Sentry 和 Monday.com 的多个工具,例如:
- Prompt 模板 (Prompts) 管理:
- 提供了预定义的 Prompt 模板,例如 'task-description',用于生成任务描述。
- 支持 LLM 客户端通过 'GetPromptRequest' 获取 Prompt 模板,实现可定制的 LLM 交互模式。
- 资源 (Resources) 管理:
- 虽然代码中声明了 'resources' 能力,但当前版本未实现具体资源的管理功能。
- 标准 MCP 协议:
- 基于 '@modelcontextprotocol/sdk' 开发,遵循 MCP 协议规范,确保与 MCP 客户端的兼容性。
- 多种传输协议支持:
- 默认支持 Stdio 传输协议,方便本地开发和部署。
- 代码中包含了 SSE 传输协议的示例,可扩展支持 WebSocket 等其他协议。
安装步骤
-
克隆仓库
git clone https://github.com/jowjow22/MCP-server-study.git cd MCP-server-study -
安装依赖 确保已安装 Node.js 和 npm,然后运行:
npm install -
配置环境变量 需要配置 Sentry 和 Monday.com 的 API 密钥。
- 创建 '.env' 文件或直接在运行环境中设置以下环境变量:
SENTRY_USER_API_KEY=<您的 Sentry User API Key> MONDAY_API_KEY=<您的 Monday.com API Key> - 获取 API Key 的方法请参考 Sentry 和 Monday.com 的官方文档。
- 创建 '.env' 文件或直接在运行环境中设置以下环境变量:
服务器配置
以下为 MCP 客户端连接此服务器所需的配置信息(JSON 格式):
{ "serverName": "sentry-monday-integration", // MCP 服务器名称,与代码中定义一致 "command": "npm", // 启动服务器的命令,这里使用 npm "args": ["start"] // 启动命令的参数,使用 "start" 运行 npm start 脚本 }
配置参数说明:
- 'serverName': 服务器名称,必须与 'src/index.ts' 中 'Server' 构造函数中定义的 'name' 属性值 '"sentry-monday-integration"' 一致。
- 'command': 启动服务器的命令。通常设置为 'npm' 或 'node'。 如果 'package.json' 中配置了 'start' 脚本,则使用 'npm start' 更方便。
- 'args': 'command' 命令的参数。 如果使用 'npm start',则参数为 '["start"]'。 如果直接运行 'node src/index.ts', 则参数可以设置为 '["src/index.ts"]'。
注意: 请确保 MCP 客户端能够正确执行 'npm start' 命令来启动 MCP 服务器。
基本使用方法
-
启动 MCP 服务器: 在仓库根目录下运行命令:
npm start服务器默认使用 Stdio 传输协议。
-
配置 MCP 客户端: 根据您的 MCP 客户端软件的使用说明,配置服务器连接信息,将上述提供的 JSON 配置信息填入客户端的服务器配置中。
-
使用 LLM 客户端与服务器交互:
- 通过 MCP 客户端向服务器发送请求,例如:
- 列出所有可用的工具 ('ListToolsRequest')
- 调用 Sentry 或 Monday.com 的工具 ('CallToolRequest')
- 列出所有 Prompt 模板 ('ListPromptsRequest')
- 获取指定的 Prompt 模板 ('GetPromptRequest')
- 具体请求格式和操作方式请参考 MCP 协议文档和您使用的 MCP 客户端的文档。
- 通过 MCP 客户端向服务器发送请求,例如:
注意事项
- 本项目仅为学习和演示目的,可能不包含完整的错误处理和安全性考虑,生产环境使用请谨慎评估。
- 实际使用前,请务必详细阅读代码,并根据您的需求进行必要的修改和完善。
- 确保 Sentry 和 Monday.com 的 API Key 配置正确,并具有相应的访问权限。
信息
分类
开发者工具