Skip to main content
Glama
fers4t

bugsink-mcp

by fers4t

bugsink-mcp

Bugsink(자체 호스팅, Sentry 프로토콜 호환 오류 추적)용 완전한 읽기/쓰기 MCP 서버입니다. Bugsink의 /api/canonical/0/ OpenAPI 스키마에 직접 맞춰 구현되었습니다.

이 서버가 존재하는 이유는 npm의 기존 bugsink-mcp 패키지가 API의 읽기 쪽(list/get)만 다루기 때문입니다. 이 패키지는 canonical API 전체를 다룹니다: 이슈 해결, 음소거, 재열기, 삭제, 댓글 작성, 그리고 팀 ·프로젝트·릴리스의 생성/수정까지 포함하며, 원본 대비 몇 가지 정확성 수정 사항도 담겨 있습니다(원본 대비 수정 사항 참고).

설정

Node.js 18.17 이상이 필요합니다.

  1. Bugsink에서 Account Settings → Auth Tokens로 이동해 토큰을 생성합니다.

  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: npx, args: ["-y","github:fers4t/bugsink-mcp"]를 지정하고 다음과 같이 필수 환경 변수 두 개를 설정하면 됩니다.

npx는 GitHub에서 바로 설치하며(npm을 통한 publishing 없음), 첫 실행 시 prepare 스크립트가 TypeScript로 변경되면 컴파일하고 이후 실행에서는 로컬 캐시를 다시 사용합니다.

환경 변수

변수

필수 여부

설명

BUGSINK_URL

Bugsink 인스턴스의 기본 URL(예: https://bugs.example.com)

BUGSINK_TOKEN

개인 API 토큰(Bearer 인증)

BUGSINK_TIMEOUT_MS

아니요

요청당 타임아웃(ms). 기본값 15000, 1000–120000 범위로 제한됨

.env.example 파일을 참고하세요. 실제 토큰을 커밋하지 마세요. 서버는 토큰을 환경(environment)에서만 읽습니다.

Related MCP server: Sierra Navigator Cloud

도구

연결

도구

설명

test_connection

URL/토큰이 정상적인지 확인하고 표시할 수 있는 팀 개수를 반환합니다

도구

설명

list_teams

모든 팀 목록 조회

get_team

UUID로 팀 조회

create_team

팀 생성

update_team

팀 이름 변경 또는 공개 여부 변경

프로젝트

도구

설명

list_projects

선택적으로 팀으로 필터링해 프로젝트 목록 조회

get_project

팀 정보를 확장할 수 있는 프로젝트 조회(DSN 포함)

create_project

팀 아래 프로젝트 생성

update_project

이름/공개 여부/알림 플래그/보존 기간/팀 갱신

이슈

도구

설명

list_issues

프로젝트의 이슈 목록 조회(digest_order, digested_event_count, last_seen으로 정렬 가능)

get_issue

UUID 또는 직관적인 ID(예:PROJ-123)로 이슈 조회

delete_issue

이슈와 해당 이벤트를 되돌릴 수 없게 삭제

resolve_issue

지금 해결 처리

resolve_issue_in_next_release

이후 릴리스에서 다시 보고되면 회귀(regression) 처리하면서 해결

resolve_issue_in_latest_release

현재 최신 릴리스 시점으로 해결 처리

reopen_issue

해결된 이슈 다시 열기

mute_issue

무기한 음소거

mute_issue_for

N 기간(예: 3일) 동안 음소거

mute_issue_until

특정 기간 내 이벤트 수 임계치를 초과할 때까지 음소거

unmute_issue

음소거 해제

add_issue_comment

이슈에 댓글 추가

이벤트

도구

설명

list_events

이슈의 이벤트(발생 건) 목록 조회

get_event

태그/컨텍스트/원시 페이로드를 포함한 전체 이벤트 상세 조회

get_stacktrace

이벤트에 대한 렌처된 Markdown 스택트레이스를 반환

릴리스

도구

설명

list_releases

프로젝트의 릴리스 목록 조회

get_release

UUID로 릴리스 조회

create_release

릴리스 생성(resolve_issue_in_next_release가 올바르게 회귀하려면 필요)

원본 대비 수정 사항

  • 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

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