Skip to main content
Glama
fers4t

bugsink-mcp

by fers4t

bugsink-mcp

一个完整读写的 MCP 服务器,用于 Bugsink(自托管、兼容 Sentry 协议的错误跟踪平台),直接基于 Bugsink 的 /api/canonical/0/ OpenAPI schema 构建。

它存在的意义在于:npm 上现有的 bugsink-mcp 包只封装了 API 的只读部分(list/get)。而本项目覆盖了完整的 canonical API 接口面:解决(resolving)、静音(muting)、重新打开(reopening)和删除(deleting issues)、添加评论(commenting),以及创建/更新团队、项目和发布版本——并相对原版做了几处正确性修复(见 相对原版的修复)。

安装

要求 Node.js 18.17+。

  1. 在 Bugsink 中进入 Account Settings → Auth Tokens,创建一个 token。

  2. 把服务器添加到你的 MCP 客户端。

Claude Code

使用 claude mcp CLI 一行搞定:

claude mcp add bugsink \
  -e BUGSINK_URL=https://bugs.example.com \
  -e BUGSINK_TOKEN=<your token> \
  -- npx -y github:fers4t/bugsink-mcp

这会把等价的配置写入 ~/.claude.json(或传入 --scope project,改为写入项目共享的 .mcp.json,而不是用户级配置):

{
  "mcpServers": {
    "bugsink": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "github:fers4t/bugsink-mcp"],
      "env": {
        "BUGSINK_URL": "https://bugs.example.com",
        "BUGSINK_TOKEN": "<your token>"
      }
    }
  }
}

完成后重启 Claude Code(或新开一个会话)——MCP 工具列表在会话启动时加载,对话中途不会读取新的配置变更。

其他 MCP 客户端

任何能读取 mcpServers 映射的客户端(Cursor、Windsurf 等)都可以使用上面展示的同一份 JSON 结构——把 command: npxargs: ["-y", "github:fers4t/bugsink-mcp"] 以及两个必需的环境变量填上即可。

npx 直接从 GitHub 安装(不经过 npm 发布),首次使用时运行 prepare 脚本编译 TypeScript,后续启动直接复用本地缓存。

环境变量

变量

必填

说明

BUGSINK_URL

你的 Bugsink 实例的基础 URL,例如 https://bugs.example.com

BUGSINK_TOKEN

个人 API token(Bearer 认证)

BUGSINK_TIMEOUT_MS

每个请求的超时时间(毫秒),默认 15000,限制在 1000–120000 之间

参见 .env.example。切勿把真实 token 提交到版本库——服务器只从环境中读取它。

Related MCP server: Sierra Navigator Cloud

工具

连通性

工具

说明

test_connection

验证 URL/token 是否可用,并报告能看到多少个团队

团队

工具

说明

list_teams

列出所有团队

get_team

按 UUID 获取团队

create_team

创建团队

update_team

重命名团队,或修改其可见性

项目

工具

说明

list_projects

列出项目,可选按团队筛选

get_project

获取项目(包括其 DSN),可选展开团队信息

create_project

在某个团队下创建项目

update_project

更新名称/可见性/告警标记/保留时长/所属团队

Issues

工具

说明

list_issues

列出某个项目的 issues(可按 digest_orderdigested_event_countlast_seen 排序)

get_issue

按 UUID 或友好 ID(如 PROJ-123)获取 issue

delete_issue

不可逆地删除 issue 及其事件

resolve_issue

立即标记为已解决

resolve_issue_in_next_release

标记为已解决;若后续 release 再次上报,则重新回归(regress)

resolve_issue_in_latest_release

按当前最新 release 标记为已解决

reopen_issue

重新打开已解决的 issue

mute_issue

无限期静音

mute_issue_for

静音 N 个周期(如 3 天)

mute_issue_until

静音,直到某个周期内的事件数量超过阈值

unmute_issue

取消静音

add_issue_comment

为 issue 添加评论

事件

工具

说明

list_events

列出某个 issue 的事件(occurrences)

get_event

获取事件完整详情,包括 tags/contexts/原始 payload

get_stacktrace

获取某个事件渲染后的 Markdown 格式堆栈跟踪

发布版本

工具

说明

list_releases

列出某个项目的发布版本

get_release

按 UUID 获取发布版本

create_release

创建发布版本(resolve_issue_in_next_release 需要它才能正确回归)

相对原版的修复

  • get_stacktrace 现在真的能用了。 Bugsink 的 stacktrace 端点返回的是 text/markdown,不是 JSON。原版包无条件调用 res.json(),每次都会抛出 Unexpected token '#', "# TypeError"... is not valid JSON。本服务器把该端点按文本读取。

  • 写入支持:解决、静音、重新打开、删除 issue 并添加评论,以及创建/更新团队、项目和发布版本——这些都是只读的原版没暴露的。

  • 超时有界:每个请求都带 AbortSignal.timeout(默认 15 秒),即使上游挂住,也不会让 MCP 进程无限期卡死。

  • 安全重试:幂等的 GET 请求在 502/503/504 或网络故障时,会进行有上限的指数退避(exponential-backoff-with-jitter)重试。修改类请求(POST/PATCH/DELETE)绝不自动重试,因为重试一个响应丢失的写入操作可能造成重复副作用(例如产生两条相同的评论)。

  • 输入校验:所有工具参数都通过 Zod 校验(数字 ID、UUID、枚举),格式非法的输入会被本地直接拒绝并给出清晰信息,而不是一路打到 API。

  • 输出中不含机密信息:错误只报告 HTTP 状态码和被截断的响应体;Authorization 头的值绝不会出现在任何日志或抛出的错误中。

安全说明

  • 这是一个本地 stdio 进程——不会开启任何网络监听。访问控制完全依赖你的 MCP 客户端已有的机制,外加对 BUGSINK_TOKEN 的持有。

  • 所有诊断信息都输出到 stderrstdout 保留给 JSON-RPC 协议流。

  • BUGSINK_URL 必须是 http:https:。对非本机主机使用明文 http 会打印警告(token 会被明文发送),但不会阻止,以支持内网场景。

  • 请像对待任何凭据一样对待 BUGSINK_TOKEN:不要提交到版本库;一旦泄露,立即在 Bugsink 中轮换;并让它绑到你的工作流程所允许的最小权限用户。

开发

npm install     # installs deps and runs the TypeScript build (prepare script)
npm run typecheck
npm run build   # compile src/ -> dist/
npm run dev     # watch mode

许可证

MIT

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Hosted, OAuth-secured MCP server that drives the Sierra Interactive real-estate admin backend, enabling reads, guarded writes, and identity-locked deletes over HTTP without a browser.
  • A
    license
    Not graded
    quality
    B
    maintenance
    Hosted MCP server that exposes your self-hosted Bugsink error tracker as tools for LLMs, enabling issue management, release tracking, and stacktrace retrieval via chat prompts.
    877
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    A lightweight MCP server for tracking bugs and tasks across coding sessions, providing persistent SQLite-backed storage and six tools for logging, inspecting, updating, resolving, and deleting bugs.
    6
    1

View all related MCP servers

Related MCP Connectors

  • MCP server for InsForge BaaS — database, storage, edge functions, and deployments

  • A MCP server built for developers enabling Git based project management with project and personal…

  • MCP server for interacting with the Supabase platform

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/fers4t/bugsink-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server