bugsink-mcp
bugsink-mcp
Ein vollwertiger Lese-/Schreib-MCP-Server für Bugsink (selbst gehostetes, mit dem Sentry-Protokoll kompatibles Fehler-Tracking), direkt gegen das /api/canonical/0/-OpenAPI-Schema von Bugsink gebaut.
Er existiert, weil das bisherige npm-Paket bugsink-mcp nur die Lese-Seite der API abdeckt (list/get). Dieses hier deckt die vollständige kanonische API-Oberfläche ab: Issues auflösen, stummschalten, wiedereröffnen und löschen, Kommentieren sowie Teams, Projekte und Releases anlegen/aktualisieren – plus ein paar Korrektur-Fixes gegenüber dem Original (siehe Korrekturen gegenüber dem Original).
Einrichtung
Voraussetzung: Node.js 18.17+.
In Bugsink unter Account Settings → Auth Tokens ein Token erstellen.
Den Server zum MCP-Client hinzufügen.
Claude Code
Einzeiler mit der claude mcp CLI:
claude mcp add bugsink \
-e BUGSINK_URL=https://bugs.example.com \
-e BUGSINK_TOKEN=<your token> \
-- npx -y github:fers4t/bugsink-mcpDas schreibt sinngemäß Folgendes in ~/.claude.json (oder --scope project übergeben, um eine gemeinsame .mcp.json anstelle der benutzerlokalen Konfiguration zu schreiben):
{
"mcpServers": {
"bugsink": {
"type": "stdio",
"command": "npx",
"args": ["-y", "github:fers4t/bugsink-mcp"],
"env": {
"BUGSINK_URL": "https://bugs.example.com",
"BUGSINK_TOKEN": "<your token>"
}
}
}
}Starten Sie Claude Code danach neu (oder beginnen Sie eine neue Sitzung) – die MCP-Tool-Listen werden beim Sitzungsstart geladen und übernehmen eine Konfigurationsänderung mitten in einer laufenden Unterhaltung nicht.
Andere MCP-Clients
Jeder Client, der eine mcpServers-Map liest (Cursor, Windsurf usw.), kann dieselbe oben gezeigte JSON-Struktur verwenden – mit command: npx, args: ["-y", "github:fers4t/bugsink-mcp"] und den beiden Pflicht-Umgebungsvariablen.
npx installiert direkt aus GitHub (ohne npm-Publish) und führt beim ersten Aufruf das Skript prepare aus, um TypeScript zu kompilieren; bei späteren Starts wird der lokale Cache wiederverwendet.
Umgebungsvariablen
Variable | Erforderlich | Beschreibung |
| ja | Basis-URL Ihrer Bugsink-Instanz, z. B. |
| ja | Persönliches API-Token (Bearer-Authentifizierung) |
| nein | Timeout pro Anfrage in ms (Standard |
Siehe .env.example. Committen Sie niemals ein echtes Token – der Server liest es ausschließlich aus der Umgebung.
Related MCP server: Sierra Navigator Cloud
Werkzeuge
Konnektivität
Werkzeug | Beschreibung |
| Prüft, ob URL und Token funktionieren, und meldet, wie viele Teams sichtbar sind |
Teams
Werkzeug | Beschreibung |
| Alle Teams auflisten |
| Ein Team per UUID abrufen |
| Ein Team erstellen |
| Ein Team umbenennen oder dessen Sichtbarkeit ändern |
Projekte
Werkzeug | Beschreibung |
| Projekte auflisten, optional nach Team gefiltert |
| Ein Projekt (inkl. DSN) abrufen, optional inklusive Team |
| Ein Projekt unter einem Team erstellen |
| Name, Sichtbarkeit, Alert-Flags, Aufbewahrungsdauer oder Team aktualisieren |
Issues
Werkzeug | Beschreibung |
| Issues für ein Projekt auflisten (sortiert nach |
| Ein Issue per UUID oder sprechender ID abrufen (z. B. |
| Ein Issue und seine Events unwiderruflich löschen |
| Sofort auflösen |
| Auflösen; falls ein späteres Release es erneut meldet, wieder als aktiv markieren (Regression) |
| Auflösen mit Stand des aktuell neuesten Releases |
| Ein aufgelöstes Issue wieder öffnen |
| Auf unbestimmte Zeit stummschalten |
| Für N Zeiträume stummschalten (z. B. 3 Tage) |
| Stummschalten, bis in einem Zeitraum eine Event-Anzahl-Schwelle überschritten ist |
| Stummschaltung aufheben |
| Kommentar zu einem Issue hinzufügen |
Events
Werkzeug | Beschreibung |
| Events (Vorkommnisse) für ein Issue auflisten |
| Vollständige Event-Details abrufen, inklusive Tags, Kontexten und Roh-Payload |
| Für ein Event einen als Markdown gerenderten Stacktrace ausgeben |
Releases
Werkzeug | Beschreibung |
| Releases für ein Projekt auflisten |
| Ein Release per UUID abrufen |
| Ein Release erstellen (notwendig, damit |
Korrekturen gegenüber dem Original
get_stacktracefunktioniert tatsächlich. Bugsinks Stacktrace-Endpoint lieferttext/markdown, kein JSON. Das ursprüngliche Paket rief bedingungslosres.json()auf und warf bei jedem AufrufUnexpected token '#', "# TypeError"... is not valid JSON. Dieser Server behandelt den Endpunkt als Text.Schreibunterstützung: Issues auflösen/stummschalten/wiederöffnen/löschen und kommentieren sowie Teams, Projekte und Releases anlegen und aktualisieren – nichts davon hat das reine Lesepaket gezeigt.
Begrenzte Timeouts (
AbortSignal.timeout, Standard 15 s) bei jeder Anfrage, damit ein hängender Upstream nicht den MCP-Prozess endlos blockieren kann.Sichere Wiederholungen: Idempotente
GET-Anfragen erhalten bei502/503/504oder einem Netzwerkfehler einen begrenzten Wiederholungsversuch mit exponentiellem Backoff und Jitter. Mutierende Anfragen (POST/PATCH/DELETE) werden nie automatisch wiederholt, da ein wiederholter Schreibausgang, dessen Antwort nur verloren ging, doppelte Seiteneffekte erzeugen kann (z. B. einen zweiten identischen Kommentar).Eingabevalidierung per Zod bei jedem Tool-Argument (numerische IDs, UUIDs, Enums), sodass fehlerhafte Eingaben lokal mit einer klaren Meldung abgewiesen werden, bevor sie die API erreichen.
Keine Geheimnisse in der Ausgabe. Fehler melden HTTP-Status und einen gekürzten Antworttext; der Wert des
Authorization-Headers ist in keinem Log oder geworfenen Fehler enthalten.
Sicherheitshinweise
Dies ist ein lokaler stdio-Prozess – er öffnet keinen Netzwerk-Listener. Die Zugriffskontrolle besteht aus dem, was Ihr MCP-Client bereits bietet, plus dem Besitz von
BUGSINK_TOKEN.Alle Diagnoseausgaben gehen an
stderr;stdoutist für den JSON-RPC-Protokoll datenfische Stream reserviert.BUGSINK_URLmuss mithttp:oderhttps:beginnen; einfaches HTTP zu einem nicht-lokalen Host gibt eine Warnung aus (Ihr Token würde unverschlüsselt übertragen), wird aber nicht blockiert, um interne Netzwerke zu unterstützen.Behandeln Sie
BUGSINK_TOKENwie jede andere Anmeldeinformation: halte es aus der Versionskontrolle, rotieren Sie ihn in Bugsink, falls er jemals ausgelesen wird, und grenzen Sie ihn auf den Benutzer mit den geringsten Rechten ein, den Ihr Workflow erlaubt.
Entwicklung
npm install # installs deps and runs the TypeScript build (prepare script)
npm run typecheck
npm run build # compile src/ -> dist/
npm run dev # watch modeLizenz
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-