项目简介

本项目是一个基于 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 的功能边界。
  • Prompt 模板 (Prompts) 管理:
    • 提供了预定义的 Prompt 模板,例如 'task-description',用于生成任务描述。
    • 支持 LLM 客户端通过 'GetPromptRequest' 获取 Prompt 模板,实现可定制的 LLM 交互模式。
  • 资源 (Resources) 管理:
    • 虽然代码中声明了 'resources' 能力,但当前版本未实现具体资源的管理功能。
  • 标准 MCP 协议:
    • 基于 '@modelcontextprotocol/sdk' 开发,遵循 MCP 协议规范,确保与 MCP 客户端的兼容性。
  • 多种传输协议支持:
    • 默认支持 Stdio 传输协议,方便本地开发和部署。
    • 代码中包含了 SSE 传输协议的示例,可扩展支持 WebSocket 等其他协议。

安装步骤

  1. 克隆仓库

    git clone https://github.com/jowjow22/MCP-server-study.git
    cd MCP-server-study
  2. 安装依赖 确保已安装 Node.js 和 npm,然后运行:

    npm install
  3. 配置环境变量 需要配置 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 的官方文档。

服务器配置

以下为 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 服务器。

基本使用方法

  1. 启动 MCP 服务器: 在仓库根目录下运行命令:

    npm start

    服务器默认使用 Stdio 传输协议。

  2. 配置 MCP 客户端: 根据您的 MCP 客户端软件的使用说明,配置服务器连接信息,将上述提供的 JSON 配置信息填入客户端的服务器配置中。

  3. 使用 LLM 客户端与服务器交互:

    • 通过 MCP 客户端向服务器发送请求,例如:
      • 列出所有可用的工具 ('ListToolsRequest')
      • 调用 Sentry 或 Monday.com 的工具 ('CallToolRequest')
      • 列出所有 Prompt 模板 ('ListPromptsRequest')
      • 获取指定的 Prompt 模板 ('GetPromptRequest')
    • 具体请求格式和操作方式请参考 MCP 协议文档和您使用的 MCP 客户端的文档。

注意事项

  • 本项目仅为学习和演示目的,可能不包含完整的错误处理和安全性考虑,生产环境使用请谨慎评估。
  • 实际使用前,请务必详细阅读代码,并根据您的需求进行必要的修改和完善。
  • 确保 Sentry 和 Monday.com 的 API Key 配置正确,并具有相应的访问权限。

信息

分类

开发者工具