Skip to main content
Glama
jilio

Telebugs MCP Server

by jilio

Telebugs MCP 服务器

一个 MCP (Model Context Protocol) 服务器,允许 AI 代理从 Telebugs(一个自托管的 Sentry 替代方案)中检索错误报告。

架构

┌─────────────────┐                           ┌─────────────────────────────────────┐
│  Local Machine  │                           │              Remote VPS             │
│                 │         HTTPS             │                                     │
│  Claude Desktop │ ◄───────────────────────► │  Bun MCP Server   ───►  Telebugs    │
│                 │      (SSE transport)      │     :3100              SQLite DB    │
└─────────────────┘                           └─────────────────────────────────────┘

Related MCP server: otel-mcp

功能

  • 直接数据库访问 - 读取和写入 Telebugs SQLite 数据库

  • MCP OAuth 身份验证 - 基于 Telebugs 用户的浏览器 OAuth 流程

  • API 密钥身份验证 - 仍然接受现有的 Telebugs 用户 API 密钥作为承载令牌 (bearer tokens)

  • 访问控制 - 用户只能看到他们所属的项目

  • SSE 传输 - 允许远程 Claude Desktop 连接

  • 令牌高效 - 紧凑的 JSON,默认仅显示打开的错误

  • 单一二进制文件 - 交叉编译到 Linux,无运行时依赖

可用工具

工具

描述

list_projects

列出所有可访问的项目

list_error_groups

列出已去重的错误组并进行过滤

get_error_group

获取特定错误组的详细信息

list_reports

列出单个错误发生情况

get_report

获取包含回溯、面包屑、上下文的完整报告

get_statistics

获取汇总的错误统计信息

search_errors

对错误进行全文搜索

list_releases

列出项目的所有版本及工件计数

list_release_artifacts

列出版本的已上传工件

get_sourcemap_status

检查调试 ID 是否有可用的 sourcemaps

resolve_error_group

解决错误组(标记为已修复)

unresolve_error_group

重新打开已解决的错误组

mute_error_group

静音错误组(可选过期时间)

unmute_error_group

取消静音错误组

add_note

向错误组添加备注

delete_note

从错误组删除备注(仅限作者)

create_project

创建新项目(仅限管理员)

update_project

更新项目名称或时区(仅限管理员)

delete_project

软删除项目(仅限管理员)

get_project_token

获取项目令牌/DSN 以进行 SDK 配置

regenerate_project_token

重新生成项目令牌(仅限管理员)

add_project_member

将用户添加到项目(仅限管理员)

remove_project_member

从项目中移除用户(仅限管理员)

list_project_members

列出具有角色的项目成员

list_platforms

列出可用于项目创建的平台名称

list_error_groups

参数

类型

默认值

描述

project_id

number

-

按项目 ID 过滤

status

string

"open"

"open", "resolved", "muted", 或 "all"

error_type

string

-

按精确错误类型过滤

error_message

string

-

按错误消息过滤(子字符串匹配)

from

string

-

开始日期 (ISO 8601)

to

string

-

结束日期 (ISO 8601)

limit

number

20

最大结果数 (1-100)

offset

number

0

跳过 N 个结果以进行分页

返回 total_count 以进行分页。

list_reports

参数

类型

默认值

描述

group_id

number

-

按错误组 ID 过滤

project_id

number

-

按项目 ID 过滤

from

string

-

开始日期 (ISO 8601)

to

string

-

结束日期 (ISO 8601)

limit

number

20

最大结果数 (1-100)

offset

number

0

跳过 N 个结果以进行分页

返回 total_count 以进行分页。

参数

类型

默认值

描述

query

string

required

全文搜索查询

project_id

number

-

按项目 ID 过滤

limit

number

20

最大结果数 (1-100)

resolve_error_group / unresolve_error_group / unmute_error_group

这些工具仅需要 group_id (number)。

mute_error_group

参数

类型

默认值

描述

group_id

number

required

错误组 ID

muted_until

string

-

可选的 ISO 8601 日期,在此日期前静音

add_note

参数

类型

默认值

描述

group_id

number

required

错误组 ID

content

string

required

备注内容

delete_note

参数

类型

默认值

描述

group_id

number

required

错误组 ID

note_id

number

required

要删除的备注 ID

create_project (仅限管理员)

参数

类型

默认值

描述

name

string

required

项目名称(唯一)

platform

string

required

平台名称 — 使用 list_platforms 查看选项

timezone

string

"UTC"

项目时区(例如 "America/New_York"

update_project (仅限管理员)

参数

类型

默认值

描述

project_id

number

required

要更新的项目 ID

name

string

-

新项目名称

timezone

string

-

新时区

delete_project / regenerate_project_token (仅限管理员)

这些工具仅需要 project_id (number)。

add_project_member / remove_project_member (仅限管理员)

参数

类型

默认值

描述

project_id

number

required

项目 ID

user_id

number

required

要添加/移除的用户 ID

get_project_token / list_project_members

这些工具仅需要 project_id (number)。

list_platforms

无参数。返回所有可用的平台名称。

安装

cd telebugs-mcp
bun install

构建

# Build for current platform
bun run build

# Build for Linux (for VPS deployment)
bun run build:linux

配置

变量

描述

默认值

TELEBUGS_DB_PATH

Telebugs SQLite 数据库路径

/var/lib/docker/volumes/telebugs-data/_data/db/production.sqlite3

PORT

监听的 HTTP 端口

3100

MCP_BASE_URL

用于 OAuth 元数据和重定向的公共基础 URL

从请求中推断

OAUTH_ACCESS_TOKEN_TTL_SECONDS

MCP OAuth 访问令牌的有效期

43200

TELEBUGS_SECRET_KEY_BASE

Telebugs Rails secret_key_base,接受 Telebugs 登录链接所需

未设置

本地运行

TELEBUGS_DB_PATH=/path/to/telebugs/storage/db/development.sqlite3 bun run dev

部署

单一二进制文件

# Copy to server
scp telebugs-mcp-linux root@your-server:~/telebugs-mcp-linux

# On server
chmod +x ~/telebugs-mcp-linux
./telebugs-mcp-linux

systemd 服务

telebugs-mcp.service 复制到 /etc/systemd/system/

cp telebugs-mcp.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable telebugs-mcp
systemctl start telebugs-mcp

检查状态:

systemctl status telebugs-mcp

Nginx 反向代理 (可选)

location /mcp {
    proxy_pass http://127.0.0.1:3100;
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    # SSE support
    proxy_set_header Connection '';
    proxy_buffering off;
    proxy_cache off;
    chunked_transfer_encoding off;
}

Claude Desktop 配置

对于支持 OAuth 的 MCP 客户端,仅配置服务器 URL。客户端将发现 OAuth 元数据,打开浏览器登录页面,并使用颁发的承载令牌重试:

{
  "mcpServers": {
    "telebugs": {
      "url": "https://your-server/mcp"
    }
  }
}

当 MCP 服务器运行在反向代理之后时,将 MCP_BASE_URL 设置为公共 HTTPS 源:

MCP_BASE_URL=https://your-server bun run start

OAuth 登录页面由 React 渲染,CSS 由 Bun 的 Tailwind 插件生成。它与 Telebugs 登录页面匹配,显示请求客户端和重定向源,并在颁发授权码之前需要明确批准。它接受您的 Telebugs 电子邮件/密码,并根据 Telebugs 使用的相同 bcrypt users.password_digest 进行验证。当设置了 TELEBUGS_SECRET_KEY_BASE 时,它还可以接受来自 /session/transfers/... 的 Telebugs 登录链接,以便 MCP 服务器可以推导 Rails 的 active_record/signed_id 验证器密钥并验证签名的 id 有效负载。

如果 Telebugs 配置为使用 RAILS_MASTER_KEY 而不是 SECRET_KEY_BASE,请使用 bin/rails runner 'puts Rails.application.secret_key_base' 从 Telebugs 应用中读取该值,并将其作为 TELEBUGS_SECRET_KEY_BASE 传递给此服务器。

对于尚不支持 MCP OAuth 的客户端,静态承载令牌仍然有效。添加到 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "telebugs": {
      "url": "http://your-server:3100/mcp",
      "headers": {
        "Authorization": "Bearer your_telebugs_api_key"
      }
    }
  }
}

获取您的 API 密钥

  1. 登录您的 Telebugs 实例

  2. 转到 用户 → 账户设置 → 安全

  3. 复制您的 API 密钥

安全性

  • 项目管理(创建、更新、删除、令牌重新生成、成员资格)强制执行仅限管理员操作

  • 写入操作仅限于错误状态更改、备注和项目管理

  • 所有变更操作仅限于用户的项目成员资格

  • API 密钥仅针对活跃用户进行验证

  • OAuth 访问令牌是短期的,并由 MCP 服务器保存在内存中

  • 所有查询均按用户的项目成员资格进行过滤

  • 参数化查询(无 SQL 注入)

健康检查

curl http://localhost:3100/health
# {"status":"ok"}

许可证

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    MCP server that gives AI agents access to your application's OpenTelemetry traces for querying, analysis, and debugging.
    5
    7 npm
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for integrating self-hosted Sentry with AI assistants, enabling project and issue listing, issue details with stack traces, and event retrieval.
    7
    7 npm
    1
    MIT