Sentry错误追踪服务器

Sentry MCP Server是一个集成Sentry错误追踪功能的开发工具,提供发布监控、发布健康统计、问题调查等功能,适用于开发工作流程中的错误追踪和分析。

  • by srcgrp
  • JavaScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 srcgrp/sentry-mcp-server

使用说明

哨兵MCP服务器

使用此模型上下文协议(MCP)服务器将Sentry错误跟踪直接集成到您的开发工作流程中。

通过访问Sentry发布健康数据和问题详细信息,无需离开启用MCP的环境(如带有Cline扩展的VS Code),即可深入了解应用程序的稳定性。

主要特点

  • 释放监控: 列出最新版本并查看其相关的新问题计数。
  • 释放健康: 获取特定版本的详细统计数据,包括无崩溃率和会话计数。
  • 问题调查: 通过ID获取有关特定哨兵问题的详细信息。
  • 目标问题列表: 检索与特定发布版本相关的所有问题。
  • 柔性连接: 适用于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_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代码)。

  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
    

    将占位符值替换为实际的哨兵详细信息。

配置详情

服务器依赖于这些环境变量(通常在 .env 文件):

  • SENTRY_AUTH_TOKEN (必填): 您的Sentry API身份验证令牌。授予服务器访问Sentry数据的权限。
  • SENTRY_BASE_URL (必填): 哨兵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 (string,必填):哨兵项目的蛞蝓。
    • org_slug (string,可选):组织块。默认为 SENTRY_ORG_SLUG 从你的 .env.
    • count (number,可选):要返回的最大版本数。默认为5。
  • 示例用法(MCP客户端):
    {
      "tool_name": "list_recent_releases",
      "arguments": {
        "project_slug": "your-frontend-project",
        "count": 3 
      }
    }
    
  • 输出示例:
    [
      {
        "version": "frontend@2.5.1",
        "date": "2023-10-27T10:30:00Z",
        "new_issues": 2,
        "type": "desktop" 
      },
      {
        "version": "frontend@2.5.0",
        "date": "2023-10-26T15:00:00Z",
        "new_issues": 0,
        "type": "desktop"
      },
      {
        "version": "mobile-app@1.2.0-beta",
        "date": "2023-10-25T09:00:00Z",
        "new_issues": 5,
        "type": "mobile" 
      }
    ]
    

3. get_releases

  • 说明: 获取项目的所有版本,按日期排序(最新版本优先)。
  • 输入架构:
    • project_slug (string,必填):哨兵项目的蛞蝓。
    • org_slug (string,可选):组织块。默认为 SENTRY_ORG_SLUG.
  • 示例用法(MCP客户端):
    {
      "tool_name": "get_releases",
      "arguments": {
        "project_slug": "your-backend-service"
      }
    }
    
  • 输出示例: (结构与 list_recent_releases,但可能有更多条目)

4. get_release_health

  • 说明: 提供特定版本(如果未指定版本,则提供最新版本)的运行状况统计信息。包括无故障率、会话计数和新问题计数。
  • 输入架构:
    • project_slug (string,必填):哨兵项目的蛞蝓。
    • org_slug (string,可选):组织块。默认为 SENTRY_ORG_SLUG.
    • release_version (string,可选):特定版本字符串。如果省略,则获取最新版本的数据。
  • 示例用法(MCP客户端):
    {
      "tool_name": "get_release_health",
      "arguments": {
        "project_slug": "your-frontend-project",
        "release_version": "frontend@2.5.1"
      }
    }
    
  • 输出示例:
    {
      "version": "frontend@2.5.1",
      "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 (string,必填):哨兵问题的数字ID。
    • org_slug (string,必填):问题所在的组织段。
    • project_slug (string,必填):问题所在的项目段。
  • 示例用法(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 (string,必填):哨兵项目的蛞蝓。
    • org_slug (string,可选):组织块。默认为 SENTRY_ORG_SLUG.
    • release_version (string,可选):特定的发布版本字符串。如果省略,则获取最新版本的问题。
  • 示例用法(MCP客户端):
    {
      "tool_name": "get_release_issues",
      "arguments": {
        "project_slug": "your-backend-service",
        "release_version": "backend@v1.1.0"
      }
    }
    
  • 输出示例: (问题对象列表,结构与输出类似 get_issue)
    [
      { "id": "987654321", "title": "Database connection timeout", "permalink": "..." },
      { "id": "987654322", "title": "NullPointerException in UserServic", "permalink": "..." }
      // ... more issues
    ]
    

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息(假设您将添加一个MIT许可证文件)。

支持与贡献

对于问题、疑问或功能请求,请在 GitHub存储库.

欢迎投稿!请遵循标准的fork和pull请求工作流。