bugsink-mcp
bugsink-mcp
Bugsink(자체 호스팅, Sentry 프로토콜 호환 오류 추적)용 완전한 읽기/쓰기 MCP 서버입니다. Bugsink의 /api/canonical/0/ OpenAPI 스키마에 직접 맞춰 구현되었습니다.
이 서버가 존재하는 이유는 npm의 기존 bugsink-mcp 패키지가 API의 읽기 쪽(list/get)만 다루기 때문입니다. 이 패키지는 canonical API 전체를 다룹니다: 이슈 해결, 음소거, 재열기, 삭제, 댓글 작성, 그리고 팀 ·프로젝트·릴리스의 생성/수정까지 포함하며, 원본 대비 몇 가지 정확성 수정 사항도 담겨 있습니다(원본 대비 수정 사항 참고).
설정
Node.js 18.17 이상이 필요합니다.
Bugsink에서 Account Settings → Auth Tokens로 이동해 토큰을 생성합니다.
서버를 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: npx, args: ["-y","github:fers4t/bugsink-mcp"]를 지정하고 다음과 같이 필수 환경 변수 두 개를 설정하면 됩니다.
npx는 GitHub에서 바로 설치하며(npm을 통한 publishing 없음), 첫 실행 시 prepare 스크립트가 TypeScript로 변경되면 컴파일하고 이후 실행에서는 로컬 캐시를 다시 사용합니다.
환경 변수
변수 | 필수 여부 | 설명 |
| 예 | Bugsink 인스턴스의 기본 URL(예: |
| 예 | 개인 API 토큰(Bearer 인증) |
| 아니요 | 요청당 타임아웃(ms). 기본값 |
.env.example 파일을 참고하세요. 실제 토큰을 커밋하지 마세요. 서버는 토큰을 환경(environment)에서만 읽습니다.
Related MCP server: Sierra Navigator Cloud
도구
연결
도구 | 설명 |
| URL/토큰이 정상적인지 확인하고 표시할 수 있는 팀 개수를 반환합니다 |
팀
도구 | 설명 |
| 모든 팀 목록 조회 |
| UUID로 팀 조회 |
| 팀 생성 |
| 팀 이름 변경 또는 공개 여부 변경 |
프로젝트
도구 | 설명 |
| 선택적으로 팀으로 필터링해 프로젝트 목록 조회 |
| 팀 정보를 확장할 수 있는 프로젝트 조회(DSN 포함) |
| 팀 아래 프로젝트 생성 |
| 이름/공개 여부/알림 플래그/보존 기간/팀 갱신 |
이슈
도구 | 설명 |
| 프로젝트의 이슈 목록 조회( |
| UUID 또는 직관적인 ID(예: |
| 이슈와 해당 이벤트를 되돌릴 수 없게 삭제 |
| 지금 해결 처리 |
| 이후 릴리스에서 다시 보고되면 회귀(regression) 처리하면서 해결 |
| 현재 최신 릴리스 시점으로 해결 처리 |
| 해결된 이슈 다시 열기 |
| 무기한 음소거 |
| N 기간(예: 3일) 동안 음소거 |
| 특정 기간 내 이벤트 수 임계치를 초과할 때까지 음소거 |
| 음소거 해제 |
| 이슈에 댓글 추가 |
이벤트
도구 | 설명 |
| 이슈의 이벤트(발생 건) 목록 조회 |
| 태그/컨텍스트/원시 페이로드를 포함한 전체 이벤트 상세 조회 |
| 이벤트에 대한 렌처된 Markdown 스택트레이스를 반환 |
릴리스
도구 | 설명 |
| 프로젝트의 릴리스 목록 조회 |
| UUID로 릴리스 조회 |
| 릴리스 생성( |
원본 대비 수정 사항
get_stacktrace가 실제로 동작합니다. Bugsink의 스택트레이스 엔드포인트는 JSON이 아닌text/markdown을 반환합니다. 원래 패키지는 무조건res.json()을 호출해 호출할 때마다 항상Unexpected token '#', "# TypeError"... is not valid JSON오류가 발생했습니다. 이 서버는 해당 엔드포인트를 텍스트로 읽습니다.쓰기 지원: 이슈에 대한 resolve/mute/reopen/delete/comment와 팀·프로젝트·릴리스 생성/업데이트 — 모두 읽기 전용이었던 원본에는 없던 기능입니다.
제한된 타임아웃: 모든 요청에
AbortSignal.timeout(기본 15초)을 적용해 응답이 없는 업스트림이 MCP 처리를 무한정 지연시키지 못하게 합니다.안전한 재시도: 멱등성(id pom)인
GET요청은502/503/504또는 네트워크 실패 시 제한된 지수 백오프(backoff + jitter) 재시도를 수행합니다. 변경을 만드는 요청(POST/PATCH/DELETE)은 자동 재시도하지 않습니다. 응답이 유실된 쓰기를 다시 수행하면 부수 효과가 중복될 수 있기 때문입니다(예: 같은 댓글 두 번 생성).입력 검증: 모든 요청 프로미스에 Zod 검증(숫자 ID, UUID, enum)을 적용합니다. , 잘못된 입력은 API까지 가지 않고 명확한 메시지와 함께 로컬에서 거부됩니다.
출력에 비밀정보 없음: 오류는 HTTP 상태와 줄임(truncated)된 응답 본문을 보고하며, 로그나 예외에
Authorization헤더 값은 절대 포함되지 않습니다.
보안 고려 사항
이 서버는 로컬 stdio 프로세스입니다 — 네트워크 리스너를 열지 않습니다. 접근 제어는 MCP 클라이언트가 이미 제공하는 범위에
BUGSINK_TOKEN소지 여부로 이어 처리합니다.진단 출력은 모두
stderr로 전송하며stdout은 JSON-RPC 프로토콜 스트림 전용으로 남겨 둡니다.BUGSINK_URL은 반드시http:또는https:여야 합니다. 로컬 호스트가 아닌 대상에 일반 HTTP를 사용하는 경우 경고를 출력하며(토큰이 암호화 없이 전송될 수 있음을 알림) 내부 네트워크 지원을 위한 것은 차단하지 않습니다.다른 자격 증명과 동일하게
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
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for InsForge BaaS — database, storage, edge functions, and deployments
MCP server for Riveter's enrichment, scraping, and monitoring API
MCP server for Autumn — read customers, plans, balances & invoices; track usage and attach plans.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceMCP server providing full coverage of the Huly SDK — issues, projects, workspaces, members, and account management.351 npm1MIT
- FlicenseNot gradedqualityCmaintenanceHosted, 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.-
- AlicenseNot gradedqualityDmaintenanceHosted 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.181 npmMIT
- FlicenseAqualityCmaintenanceA 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.61-