BugPilot MCP Server
BugPilot
KI-gestützter Engineering-Bug-Intelligence-Agent
Kernarchitektur: BugPilot läuft auf einer sauberen, durchgängig entkoppelten Pipeline: React / Vite → FastAPI Backend → ReAct Orchestrator → Spezialisten-Agents → MCP Client → MCP Server → 10 schreibgeschützte Tools → SQLite-Datenbank (synthetische Jira-Daten).
1. Systemarchitektur
┌─────────────────────────────────────────────────────────────────────────────┐
│ React / Vite Frontend (TypeScript) │
└──────────────────────────────────────┬──────────────────────────────────────┘
│ HTTP REST API (JWT + RBAC + Tenant Isolation)
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ FastAPI Backend (Port 8000) │
└──────────────────────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ ReAct Orchestrator Agent │
│ Dynamic reasoning loop: Goal → LLM Decision → Tool Call → │
│ Observation → Next Decision → FINISH │
│ [Groq Primary API + Local Ollama Fallback] │
└───────────┬──────────────────────────┼──────────────────────────┬───────────┘
│ │ │
▼ ▼ ▼
┌──────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐
│ Bug Analyst Agent │ │ Trend Analyst Agent │ │ Risk Analyst Agent │
└───────────┬──────────┘ └──────────┬───────────┘ └──────────┬───────────┘
│ │ │
└──────────────────────────┼──────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ MCP Client │
│ Dynamic tool discovery, timeout & sandboxing │
└──────────────────────────────────────┬──────────────────────────────────────┘
│ stdio JSON-RPC Transport
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ MCP Server (mcp_server) │
│ Exposes 10 Strict READ-ONLY Tools │
└──────────────────────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ AnalyticsService │
│ Deterministic metric calculation & statistical trends │
└──────────────────────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ DataProvider Interface (SQLDataProvider / SQLite) │
│ Multi-tenant tenant isolation (`organization_id`) │
└──────────────────────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ SQLite Database (`sqlite:///./bugpilot.db`) │
│ Realistic Jira-style Defect Catalog, Sprints, Users & Audit Trails │
└─────────────────────────────────────────────────────────────────────────────┘Strenger Datenzugriffsvertrag
✅ Agent → MCP Client → MCP Server → AnalyticsService → DataProvider → SQLite Data
❌ Agent → Direct Database Access (FORBIDDEN)
❌ Agent → Direct Data File Reading (FORBIDDEN)
❌ External Vector Database / RAG dependencies (FORBIDDEN)Agents interagieren ausschließlich über dynamisch entdeckte MCP-Tools, was Sandboxing und vollständige Testbarkeit gewährleistet.
Related MCP server: sqlite-analyst
2. Referenz der 10 MCP-Tools
Alle 10 Tools sind streng schreibgeschützt, auf Mandantenebene begrenzt (org_id) und werden dynamisch über das MCP-Protokoll entdeckt:
# | Tool-Name | Erforderliche/Optionale Parameter | Beschreibung & zurückgegebene Nachweise |
1 |
|
| Suche nach Fehlern mittels Schlüsselwort in Issue-Schlüssel, Titel, Zusammenfassung oder Beschreibung. |
2 |
|
| Vollständige Details zu einem einzelnen Fehler abrufen (Schweregrad, Priorität, Ursache, geschäftliche Auswirkung, Umgebung, Reproduktionsschritte, Fix-Version). |
3 |
|
| Aggregierte Fehleranzahlen, Verteilungen offener vs. gelöster Fehler und Aufschlüsselung nach Schweregrad. |
4 |
|
| Monatliche Trends bei Erstellung vs. Lösung und historische Sprint-Abschlussgeschwindigkeit. |
5 |
|
| Offene Fehler, absteigend sortiert nach Alter in Tagen, um SLA-Risiken hervorzuheben. |
6 |
|
| Fehler, die von „Gelöst/Geschlossen" zurück zu „Offen/In Bearbeitung" gewechselt sind ( |
7 |
|
| Risikobewertungen auf Komponentenebene (0–100), Anzahl aktiver offener Issues und Indikatoren für den Schadensradius. |
8 |
|
| Bewertung der Release-Bereitschaft, Gesamtrisikobewertung und Bereitstellungsentscheidung. |
9 |
|
| Chronologischer Verlauf der Statusübergänge, Zeitstempel der Wiedereröffnung und Kommentare der Entwicklerdiskussion. |
10 |
|
| Verwandte Fehler, die denselben Komponentenkontext, dieselbe technische Ursache oder explizit verknüpfte Issue-IDs teilen. |
3. Dynamische ReAct-Orchestrierung & vergleichende Analyse
Der Orchestrator-Agent arbeitet mit einer echten Reasoning + Action (ReAct)-Schleife:
Absichts- & Bereichsfremd-Schutz — Frühe Prüfungen filtern nicht-technische Anfragen, ohne LLM-/Tool-Aufrufe zu verschwenden.
Dynamische Tool-Auswahl — Das LLM entscheidet über jede Aktion (
CALL_TOOL,DELEGATEoderFINISH) basierend auf der Anfrage, dynamisch entdeckten Tools und gesammelten Beobachtungen.Iterative Mehrfachkandidaten-Prüfung — Bei vergleichenden und bewertenden Anfragen („Analysiere Authentifizierungsfehler und identifiziere das Issue mit dem höchsten Risiko") entdeckt
search_bugsKandidaten, und der Orchestrator ruft iterativget_bugfür jeden Kandidatenfehler auf, bevorFINISHerlaubt wird, um sicherzustellen, dass vollständige technische Nachweise (Ursache, Schadensradius, Reproduktionsschritte) gesammelt werden.Differenzierte, nachweisgestützte Risikobewertung — Bewertet Schweregrad, Priorität, Status, Produktionsumgebung, Sicherheitsauswirkungen (z. B. SOC2/Session-Hijacking) und technische Ursachen (z. B. Race Condition, Absturz). Erzeugt nicht-sättigende Bewertungen (0.0–99.5), um künstliche 100/100-Gleichstände zu vermeiden.
Qualitätsbewertung durch Reflexions-Agent — Validiert generierte Berichte anhand der Ground-Truth-MCP-Daten, um Halluzinationen zu verhindern und eine korrekte Berichterstattung zu bestätigen.
4. Multi-Tenancy & RBAC-Sicherheit
Mandantenisolierung — Jeder Datenbankeintrag (
issues,sprints,users,audit_logs) ist streng durchorganization_id(z. B.org-acme) begrenzt. Datenzugriff über Organisationsgrenzen hinweg wird auf Repository- und MCP-Ebene blockiert.Rollenbasierte Zugriffskontrolle (RBAC):
Admin — Vollzugriff, Benutzerverwaltung und Issue-Administration.
Ingenieur / Entwickler — Erstellen, Aktualisieren, Überführen und Analysieren von Issues.
Betrachter — Schreibgeschützter Zugriff auf Issues, Analysen und Berichte.
Geheimnisverwaltung — Keine geheimen Schlüssel oder Anmeldeinformationen sind fest codiert. JWT-Geheimnisse, API-Schlüssel und Umgebungsvariablen werden strikt aus
.envgeladen und von der Versionskontrolle ausgeschlossen.
5. Technologie-Stack
Ebene | Komponente | Technologie |
Frontend | Interaktive UI | React 18 + TypeScript + Vite |
Backend-API | REST-API-Server | FastAPI + Uvicorn + Pydantic v2 |
Orchestrierung | Agenten-Schleife | ReAct Agent Framework + Spezialisten-Delegation |
LLM-Gateway | Inferenz-Engine | Groq API ( |
Tool-Protokoll | Tooling-Ebene | Offizielles Python MCP SDK ( |
Datenebene | Persistente Datenbank | SQLAlchemy 2.0 ORM + SQLite ( |
Sicherheit | Authentifizierung & RBAC | PyJWT (HS256) + Passlib (bcrypt) + Header-basierte Mandantenbegrenzung |
Qualität | Reflexion & Test | Reflexions-Agent Grounding + Pytest (329 Tests, 100% bestanden) |
6. Einrichtungs- & Ausführungsanleitung
Voraussetzungen
Python 3.12+
Node.js 18+ (für das Frontend)
Ein Groq-API-Schlüssel (optional — die App läuft auch ohne, mit Fallback auf lokales Ollama oder deterministischen Modus)
1. Backend-Einrichtung
# Clone and enter project
git clone <repo-url> bugpilot
cd bugpilot
# Create and activate virtual environment
python -m venv .venv
# Windows: .\.venv\Scripts\activate | macOS/Linux: source .venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Configure environment (defaults to SQLite with zero setup)
cp .env.example .env
# Optional: add your GROQ_API_KEY to .env for live LLM responses2. Eigenständigen MCP-Server ausführen
# Windows
.\.venv\Scripts\python -m mcp_server.server
# macOS / Linux
.venv/bin/python -m mcp_server.server3. FastAPI-Backend ausführen
uvicorn backend.main:app --host 127.0.0.1 --port 8000 --reloadDie Datenbank wird beim ersten Start automatisch erstellt und befüllt — kein Migrationsschritt erforderlich. Überprüfen Sie die Funktionsfähigkeit unter http://127.0.0.1:8000/api/v1/health und http://127.0.0.1:8000/docs.
4. Frontend erstellen & ausführen
cd frontend
npm install
npm run devDer Vite-Entwicklungsserver leitet /api-Anfragen an das FastAPI-Backend auf Port 8000 weiter (siehe vite.config.ts), daher müssen beide Dienste gleichzeitig laufen.
5. Testsuite ausführen
# Run all unit and integration tests (329 tests)
pytest tests/unit tests/integration -qLLM-Aufrufe werden während der Tests simuliert (siehe tests/conftest.py), sodass die Suite deterministisch ohne Groq-/Ollama-Verbindung läuft. Da mehrere Tests einen neuen MCP-Server-Subprozess starten, dauert die gesamte Suite einige Minuten — dies ist erwartet und kein Hängenbleiben.
7. Evaluierung & Qualitätsergebnisse
BugPilot wird mit einem automatisierten Evaluierungs-Framework (evaluation/) ausgeliefert, das den Agenten anhand eines goldenen Datensatzes mit 23 Abfragen in 11 Dimensionen bewertet — Absichtsgenauigkeit, Tool-Auswahl, Grounding, Halluzinationsrate, Trajektorien-Gültigkeit, Befolgungsgenauigkeit, Sicherheit und Latenz — ohne manuelle Bewertung. Führen Sie es selbst aus mit:
python -m evaluation.run_evalLetzte festgeschriebene Ergebnisse (evaluation_report.json):
Metrik | Ergebnis |
Aufgaben-Erfolgsrate | 21 / 23 (91,3%) |
Halluzinationsrate | 0,0% |
Tool-Aufruf-Erfolgsrate | 100% |
Agenten-Routing-Genauigkeit | 95,7% |
Mittlere Latenz | 2,3s (P95: 4,6s) |
Die beiden nicht bestandenen Abfragen waren Grenzfälle der Absichtsweiterleitung (z. B. eine als COMPONENT_ANALYSIS statt METRIC klassifizierte Abfrage), keine Halluzinationen oder Fehler — der Agent hat in keinem der 23 Testfälle Informationen erfunden.
Ein Parallelitäts-/Lasttest (1–50 gleichzeitige Benutzer) ist ebenfalls über evaluation/load_tester.py enthalten. Bei bis zu 25 gleichzeitigen Benutzern hält das System eine Fehlerrate von 0%; bei 50 gleichzeitigen Benutzern steigt die Fehlerrate auf ~66%, was darauf hindeutet, dass die aktuelle Einzelinstanz-Einrichtung noch nicht für hohen Produktionsdatenverkehr optimiert ist. Siehe Bekannte Einschränkungen unten.
Hinweis zu Kosten/Token-Zahlen: Die Werte
estimated_total_cost_usdundaverage_tokens_per_queryinevaluation_report.jsonsind wortzählbasierte Schätzungen, keine tatsächlichen Groq-API-Nutzungsdaten. Behandeln Sie sie als grobe Indikatoren, nicht als Abrechnungszahlen.
8. Bekannte Einschränkungen
Im Interesse der Transparenz für Prüfer:
Parallelitätsobergrenze — Lasttests zeigen einen starken Anstieg der Fehlerrate bei 50 gleichzeitigen Benutzern (siehe oben). Für Demo-/Kleinteam-Nutzung geeignet; für größeren Produktionsdatenverkehr wären Connection-Pooling/Async-Optimierungen erforderlich.
Geschätztes (nicht gemessenes) Token-/Kosten-Tracking — Die Kostenangaben im Evaluierungsbericht sind heuristische Schätzungen basierend auf Wortzahlen, keine tatsächliche API-Nutzungsabrechnung.
Kleiner goldener Evaluierungsdatensatz — Die automatisierte Evaluierung deckt 23 repräsentative Abfragen ab; eine breitere Abdeckung (mehr adversarial-/Prompt-Injection-Fälle, mehr Grenzfälle) würde das Vertrauen weiter stärken.
generate_pdf.pyist ein eigenständiges Dokumentationsexport-Dienstprogramm mit einem Windows-spezifischen Standardausgabepfad; übergeben Sie unter macOS/Linux ein explizites Dateinamenargument.
---.
This server cannot be deployed
Maintenance
Related MCP Connectors
Sandbox workspace tools: search, file read, DB queries, integrations. Returns synthetic data.
- mcpOAuthcom.vibgrate
Query your team's drift, vulnerability, and upgrade data from any AI assistant. OAuth 2.1, 51 tools.
- dataOAuthco.thinair
PostgreSQL, MySQL, and SQL Server in one session. 26 read-only MCP tools for AI agents.
Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceExposes a SQLite database to AI assistants with structured, read-safe access. Includes five tools for schema exploration, querying, and sampling data.-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to explore and query SQLite databases through read-only tools, with defense-in-depth sandboxing preventing any data modifications.MIT
- AlicenseCqualityAmaintenanceEnables querying a repository's resolved bug history through six read-only tools, allowing agents to check patches against past failures, retrieve regression tests, and replay behavior cases to prevent regressions.6Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to safely query and explore SQLite databases through read-only, guard-protected tools that block writes, sensitive table access, and runaway queries.1MIT