mcpField
S
Sentry MCP Server

Sentry MCP Server

本地服务
github.com/srcgrp开发工具281 周前更新

关于 Sentry MCP Server

Sentry MCP Server 让开发团队在支持 MCP 的环境中查看 Sentry 发布健康数据和问题详情,兼容 Sentry.io 与自托管 Sentry 实例。

主要功能

  1. 01列出项目的近期版本发布
  2. 02查看版本的无崩溃率和会话数
  3. 03按 ID 获取问题详情
  4. 04列出某个版本关联的问题
  5. 05检查服务配置和连接

适用场景

  1. 01查看某次发布引入的问题
  2. 02检查版本的无崩溃健康状况
  3. 03在开发期间调查 Sentry 问题
  4. 04验证 Sentry 服务配置

MCP 相关

向 MCP 客户端提供 Sentry 版本、健康状况和问题查询工具,通过配置的 API 端点与令牌连接 Sentry。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Sentry MCP 服务

通过此 Model Context Protocol(MCP)服务,将 Sentry 错误跟踪直接集成到开发工作流中。

无需离开已启用 MCP 的环境(例如使用 Cline 扩展的 VS Code),即可访问 Sentry 发布健康数据和问题详情,深入了解应用的稳定性。

主要功能

  • 发布监控: 列出近期发布,并查看相关的新问题数量。
  • 发布健康: 获取特定发布的详细统计数据,包括无崩溃率和会话数量。
  • 问题调查: 根据问题 ID 获取特定 Sentry 问题的详细信息。
  • 定向列出问题: 获取与特定发布版本相关的所有问题。
  • 灵活连接: 同时支持 Sentry.io(云端)和自托管的 Sentry 实例。
  • 服务检查: 提供用于验证配置和服务状态的工具。

设置

  1. 克隆仓库: 将此仓库克隆到本地计算机:

    git clone https://github.com/srcgrp/sentry-mcp-server.git
    cd sentry-mcp-server
    
  2. 安装依赖并构建: 安装所需依赖并构建服务:

    npm install
    npm run build 
    

    这将在 build/ 目录中创建可执行服务脚本。

  3. 配置 MCP 客户端: 将此服务添加到 MCP 客户端的配置文件中(例如,Cline 的 cline_mcp_settings.json)。请务必使用已构建的 index.js 文件的绝对路径:

    {
      "mcpServers": {
        "sentry-local": { // You can choose any name here
          "command": "node", 
          "args": [
            "/path/to/your/cloned/sentry-mcp-server/build/index.js" // <-- IMPORTANT: Use absolute path here
          ],
          "env": {
            // Environment variables can be set here OR loaded from a .env file (see next step)
          },
          "disabled": false, // Ensure it's enabled
          "autoApprove": [] 
        }
        // ... other servers
      }
    }
    

    修改设置后,请重启 MCP 客户端(例如,重新加载 VS Code)。

  4. 创建 .env 文件: 在克隆的 sentry-mcp-server 项目根目录中,创建包含以下必需变量的 .env 文件:

    # Required Sentry Credentials & Configuration
    SENTRY_AUTH_TOKEN="YOUR_SENTRY_AUTH_TOKEN"  # Generate from Sentry > User Settings > API Keys
    SENTRY_BASE_URL="YOUR_SENTRY_API_ENDPOINT" # e.g., https://sentry.io/api/0/ or https://your-sentry-instance.com/api/0/
    SENTRY_ORG_SLUG="your-organization-slug"   # Your Sentry organization slug
    

    将占位值替换为实际的 Sentry 信息。

配置详情

此服务依赖以下环境变量(通常设置在 .env 文件中):

  • SENTRY_AUTH_TOKEN(必需): Sentry API 身份验证令牌。授予服务访问 Sentry 数据的权限。
  • SENTRY_BASE_URL(必需): Sentry API 的基础 URL。对于 Sentry.io 云端用户,通常为 https://sentry.io/api/0/。对于自托管实例,请使用该实例的 API 端点。
  • SENTRY_ORG_SLUG(必需): Sentry 中组织的唯一标识符(slug)。除非在特定工具参数中另行指定,否则 API 调用将默认使用此组织。

可用工具

以下是此服务提供的工具及其用法示例:

1. inspect_sentry
  • **描述:**检查服务的当前配置,验证与 Sentry 的连接(使用提供的令牌和 URL),列出可用功能,并显示基本环境信息。适用于调试设置问题。
  • **输入架构:**无(无需参数)。
  • 使用示例(MCP 客户端):
    {
      "tool_name": "inspect_sentry",
      "arguments": {}
    }
    
  • 输出示例:
    {
      "configuration": {
        "baseUrl": "https://sentry.io/api/0/",
        "authTokenConfigured": true,
        "defaultOrg": "your-organization-slug"
      },
      "capabilities": [
        "list_recent_releases",
        "get_releases",
        "get_release_health",
        "get_issue",
        "get_release_issues"
        // inspect_sentry is excluded from this list
      ],
      "environment": {
        "nodeVersion": "v18.12.0",
        "platform": "linux",
        "memoryUsage": { /* ... */ }
      }
    }
    
2. list_recent_releases
  • **描述:**获取指定项目的最新发布版本列表,并按日期排序(从新到旧)。包含每个发布版本引入的新问题数量。
  • 输入架构:
    • project_slug(字符串,必需):Sentry 项目的 slug。
    • org_slug(字符串,可选):组织 slug。默认使用 .env 中的 SENTRY_ORG_SLUG。
    • count(数字,可选):要返回的发布版本的最大数量。默认为 5。
  • 使用示例(MCP 客户端):
    {
      "tool_name": "list_recent_releases",
      "arguments": {
        "project_slug": "your-frontend-project",
        "count": 3 
      }
    }
    
  • 输出示例:
    [
      {
        "version": "[email protected]",
        "date": "2023-10-27T10:30:00Z",
        "new_issues": 2,
        "type": "desktop" 
      },
      {
        "version": "[email protected]",
        "date": "2023-10-26T15:00:00Z",
        "new_issues": 0,
        "type": "desktop"
      },
      {
        "version": "[email protected]",
        "date": "2023-10-25T09:00:00Z",
        "new_issues": 5,
        "type": "mobile" 
      }
    ]
    
3. get_releases
  • **描述:**获取项目的所有发布版本,并按日期排序(从新到旧)。
  • 输入架构:
    • project_slug(字符串,必需):Sentry 项目的 slug。
    • org_slug(字符串,可选):组织 slug。默认使用 SENTRY_ORG_SLUG。
  • 使用示例(MCP 客户端):
    {
      "tool_name": "get_releases",
      "arguments": {
        "project_slug": "your-backend-service"
      }
    }
    
  • 输出示例:(结构与 list_recent_releases 类似,但条目可能多得多)
4. get_release_health
  • **描述:**提供特定发布版本(如果未指定版本,则为最新发布版本)的健康统计数据。包括无崩溃率、会话数和新问题数量。
  • 输入架构:
    • project_slug(字符串,必需):Sentry 项目的 slug。
    • org_slug(字符串,可选):组织 slug。默认使用 SENTRY_ORG_SLUG。
    • release_version(字符串,可选):指定的发布版本字符串。如果省略,则获取最新发布版本的数据。
  • 使用示例(MCP 客户端):
    {
      "tool_name": "get_release_health",
      "arguments": {
        "project_slug": "your-frontend-project",
        "release_version": "[email protected]"
      }
    }
    
  • 输出示例:
    {
      "version": "[email protected]",
      "new_issues": 2,
      "crash_free_rate": 99.5, // Example value
      "sessions": 15000,      // Example value
      "stats": { /* Detailed Sentry stats object */ } 
    }
    
5. get_issue
  • 描述: 使用 Sentry 问题的 ID 获取其基本详情(ID、标题、永久链接)。
  • 输入架构:
    • issue_id(字符串,必填):Sentry 问题的数字 ID。
    • org_slug(字符串,必填):问题所在组织的 slug。
    • project_slug(字符串,必填):问题所在项目的 slug。
  • 示例用法(MCP 客户端):
    {
      "tool_name": "get_issue",
      "arguments": {
        "issue_id": "123456789",
        "org_slug": "your-organization-slug",
        "project_slug": "your-frontend-project"
      }
    }
    
  • 输出示例:
    {
      "id": "123456789",
      "title": "TypeError: Cannot read properties of undefined (reading 'map')",
      "permalink": "https://your-organization-slug.sentry.io/issues/123456789/"
    }
    
6. get_release_issues
  • 描述: 获取与特定发布版本相关的所有问题列表(如果未指定版本,则获取最新发布版本的问题)。
  • 输入架构:
    • project_slug(字符串,必填):Sentry 项目的 slug。
    • org_slug(字符串,可选):组织的 slug。默认值为 SENTRY_ORG_SLUG。
    • release_version(字符串,可选):特定发布版本字符串。如果省略,则获取最新发布版本的问题。
  • 示例用法(MCP 客户端):
    {
      "tool_name": "get_release_issues",
      "arguments": {
        "project_slug": "your-backend-service",
        "release_version": "[email protected]"
      }
    }
    
  • 输出示例:(问题对象列表,结构类似于 get_issue 的输出)
    [
      { "id": "987654321", "title": "Database connection timeout", "permalink": "..." },
      { "id": "987654322", "title": "NullPointerException in UserServic", "permalink": "..." }
      // ... more issues
    ]
    

许可证

本项目采用 MIT License 许可协议,详情请参阅 LICENSE 文件(假设你会添加 MIT 许可证文件)。

支持与贡献

如有问题、疑问或功能请求,请在 GitHub 仓库中提交 issue。

欢迎贡献!请遵循标准的 fork 和 pull request 工作流程。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。