使用说明
哨兵MCP服务器
使用此模型上下文协议(MCP)服务器将Sentry错误跟踪直接集成到您的开发工作流程中。
通过访问Sentry发布健康数据和问题详细信息,无需离开启用MCP的环境(如带有Cline扩展的VS Code),即可深入了解应用程序的稳定性。
主要特点
- 释放监控: 列出最新版本并查看其相关的新问题计数。
- 释放健康: 获取特定版本的详细统计数据,包括无崩溃率和会话计数。
- 问题调查: 通过ID获取有关特定哨兵问题的详细信息。
- 目标问题列表: 检索与特定发布版本相关的所有问题。
- 柔性连接: 适用于Sentry.io(云)和自托管Sentry实例。
- 服务器检查: 包括一个用于验证配置和服务器状态的工具。
设置
-
克隆存储库: 将此存储库克隆到本地计算机:
git clone https://github.com/srcgrp/sentry-mcp-server.git cd sentry-mcp-server -
安装依赖项并构建: 安装必要的依赖项并构建服务器:
npm install npm run build这将在中创建可执行服务器脚本
build/目录。 -
配置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代码)。
-
创建
.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请求工作流。
