Skip to main content
Glama
PS-minalprasad

BugPilot MCP Server

BugPilot

Agente de Inteligencia de Errores de Ingeniería Impulsado por IA

Arquitectura Central: BugPilot se ejecuta en un pipeline limpio y desacoplado de extremo a extremo: React / ViteFastAPI BackendReAct OrchestratorSpecialist AgentsMCP ClientMCP Server10 Read-Only ToolsSQLite Database (Synthetic Jira Data).


1. Arquitectura del Sistema

┌─────────────────────────────────────────────────────────────────────────────┐
│                       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    │
└─────────────────────────────────────────────────────────────────────────────┘

Contrato Estricto de Acceso a Datos

✅ 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)

Los agentes interactúan exclusivamente a través de herramientas MCP descubiertas dinámicamente, preservando el aislamiento (sandboxing) y la total capacidad de prueba.


Related MCP server: mcp-sqlite-manager

2. Referencia de las 10 Herramientas MCP

Las 10 herramientas son estrictamente de solo lectura, con alcance por inquilino (org_id), y se descubren dinámicamente mediante el protocolo MCP:

#

Nombre de la Herramienta

Parámetros Requeridos / Opcionales

Descripción y Evidencia Devuelta

1

search_bugs

query: str, limit: int = 20

Buscar errores por palabra clave en la clave del issue, título, resumen o descripción.

2

get_bug

bug_id: str

Recuperar detalles completos de un solo error (gravedad, prioridad, causa raíz, impacto empresarial, entorno, pasos de reproducción, versión de corrección).

3

get_bug_metrics

sprint_id: Optional[str], component: Optional[str], project: Optional[str]

Recuentos agregados de errores, distribuciones abiertos vs. resueltos, y desgloses por gravedad.

4

get_bug_trends

sprint_id: Optional[str], component: Optional[str], project: Optional[str]

Tendencias mensuales de creación vs. resolución y velocidad histórica de finalización de sprints.

5

get_aging_bugs

min_age_days: float = 0.0, limit: int = 50

Defectos abiertos ordenados de forma descendente por antigüedad en días para resaltar el riesgo de SLA.

6

get_reopened_bugs

component: Optional[str], limit: int = 50

Defectos que pasaron de Resuelto/Cerrado a Abierto/En Progreso (reopen_count > 0).

7

get_component_risk

component: Optional[str], project: Optional[str]

Puntuaciones de riesgo a nivel de componente (0–100), recuentos de issues activos abiertos e indicadores de radio de explosión.

8

get_release_risk

release: Optional[str]

Evaluación de preparación de versión de corrección / lanzamiento, puntuación de riesgo general y veredicto de despliegue.

9

get_bug_history

bug_id: str

Historial cronológico de transiciones de estado, marcas de tiempo de reapertura y comentarios de discusión de desarrolladores.

10

get_related_bugs

bug_id: str, limit: int = 10

Defectos relacionados que comparten contexto de componente, causa raíz técnica o IDs de issues vinculados explícitamente.


3. Orquestación ReAct Dinámica y Análisis Comparativo

El Agente Orquestador opera en un bucle genuino de Razonamiento + Acción (ReAct):

  1. Guardrail de Intención y Fuera de Dominio — Las comprobaciones tempranas filtran consultas no técnicas sin desperdiciar invocaciones de LLM/herramientas.

  2. Selección Dinámica de Herramientas — El LLM decide cada acción (CALL_TOOL, DELEGATE o FINISH) basándose en la consulta, las herramientas descubiertas dinámicamente y las observaciones acumuladas.

  3. Inspección Iterativa de Múltiples Candidatos — Para consultas comparativas y de clasificación ("analizar errores de autenticación e identificar el issue de mayor riesgo"), search_bugs descubre candidatos, y el Orquestador invoca iterativamente get_bug en cada defecto candidato antes de permitir FINISH, asegurando que se recopile toda la evidencia técnica (causa raíz, radio de explosión, pasos de reproducción).

  4. Puntuación de Riesgo Diferenciada Basada en Evidencia — Evalúa gravedad, prioridad, estado, entorno de producción, impacto de seguridad (por ejemplo, SOC2/secuestro de sesión) y causas raíz técnicas (por ejemplo, condición de carrera, caída). Genera puntuaciones no saturadas (0.0–99.5) para evitar empates artificiales 100/100.

  5. Evaluación de Calidad del Agente de Reflexión — Valida los informes generados contra los datos MCP de referencia para prevenir alucinaciones y confirmar informes precisos.


4. Seguridad de Multiinquilino y RBAC

  • Aislamiento de Inquilinos — Cada registro de base de datos (issues, sprints, users, audit_logs) está estrictamente limitado por organization_id (por ejemplo, org-acme). El acceso a datos entre organizaciones está bloqueado en las capas de repositorio y MCP.

  • Control de Acceso Basado en Roles (RBAC):

    • Admin — Acceso completo, gestión de usuarios y administración de issues.

    • Ingeniero / Desarrollador — Crear, actualizar, transicionar y analizar issues.

    • Visor — Acceso de solo lectura a issues, análisis e informes.

  • Gestión de Secretos — No hay claves secretas ni credenciales codificadas. Los secretos JWT, claves API y variables de entorno se cargan estrictamente desde .env y se excluyen del control de versiones.


5. Pila Tecnológica

Capa

Componente

Tecnología

Frontend

UI Interactiva

React 18 + TypeScript + Vite

API Backend

Servidor API REST

FastAPI + Uvicorn + Pydantic v2

Orquestación

Bucle del Agente

ReAct Agent Framework + Specialist Delegation

Puerta de Enlace LLM

Motor de Inferencia

Groq API (llama-3.3-70b-versatile) Primaria + Local Ollama (llama3.1:8b) Fallback

Protocolo de Herramientas

Capa de Herramientas

Official Python MCP SDK (mcp>=1.0.0) via stdio

Capa de Datos

Base de Datos Persistente

SQLAlchemy 2.0 ORM + SQLite (sqlite:///./bugpilot.db)

Seguridad

Autenticación y RBAC

PyJWT (HS256) + Passlib (bcrypt) + Header-based Tenant Scoping

Calidad

Reflexión y Pruebas

Reflection Agent Grounding + Pytest (329 tests, 100% pass)


6. Guía de Configuración y Ejecución

Requisitos Previos

  • Python 3.12+

  • Node.js 18+ (para el frontend)

  • Una clave de API de Groq (opcional — la aplicación funciona sin ella, recurriendo a Ollama local o modo determinista)

1. Configuración del Backend

# 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 responses

2. Ejecutar el Servidor MCP Independiente

# Windows
.\.venv\Scripts\python -m mcp_server.server

# macOS / Linux
.venv/bin/python -m mcp_server.server

3. Ejecutar el Backend FastAPI

uvicorn backend.main:app --host 127.0.0.1 --port 8000 --reload

La base de datos se crea y se siembra automáticamente en el primer inicio — no se requiere paso de migración. Verifique que está saludable en http://127.0.0.1:8000/api/v1/health y http://127.0.0.1:8000/docs.

4. Construir y Ejecutar el Frontend

cd frontend
npm install
npm run dev

El servidor de desarrollo de Vite redirige las solicitudes /api al backend FastAPI en el puerto 8000 (ver vite.config.ts), por lo que ambos servicios deben ejecutarse juntos.

5. Ejecutar el Conjunto de Pruebas

# Run all unit and integration tests (329 tests)
pytest tests/unit tests/integration -q

Las llamadas al LLM se simulan durante las pruebas (ver tests/conftest.py), por lo que el conjunto se ejecuta de forma determinista sin una conexión a Groq/Ollama. Debido a que varias pruebas inician un subproceso nuevo del servidor MCP, el conjunto completo tarda unos minutos — esto es esperado, no un bloqueo.


7. Evaluación y Resultados de Calidad

BugPilot incluye un arnés de evaluación automatizado (evaluation/) que puntúa al agente frente a un conjunto de datos dorado de 23 consultas en 11 dimensiones — precisión de intención, selección de herramientas, fundamentación, tasa de alucinación, validez de trayectoria, seguimiento de instrucciones, seguridad y latencia — sin depender de calificación manual. Ejecútelo usted mismo con:

python -m evaluation.run_eval

Últimos resultados confirmados (evaluation_report.json):

Métrica

Resultado

Tasa de éxito de tareas

21 / 23 (91.3%)

Tasa de alucinación

0.0%

Tasa de éxito de llamadas a herramientas

100%

Precisión de enrutamiento del agente

95.7%

Latencia media

2.3s (P95: 4.6s)

Las dos consultas no superadas fueron casos límite de enrutamiento de intención (por ejemplo, una consulta clasificada como COMPONENT_ANALYSIS en lugar de METRIC), no alucinaciones o fallos — el agente nunca inventó información en ninguno de los 23 casos de prueba.

También se incluye una prueba de concurrencia/carga (1–50 usuarios simultáneos) a través de evaluation/load_tester.py. Con hasta 25 usuarios concurrentes, el sistema mantiene una tasa de error del 0%; con 50 usuarios concurrentes, la tasa de error aumenta a ~66%, lo que indica que la configuración actual de instancia única aún no está optimizada para tráfico de producción de alta concurrencia. Consulte Limitaciones Conocidas a continuación.

Nota sobre cifras de costo/tokens: los valores estimated_total_cost_usd y average_tokens_per_query en evaluation_report.json son estimaciones basadas en el recuento de palabras, no datos reales de uso de la API de Groq. Trátelos como indicadores aproximados, no como cifras de facturación.


8. Limitaciones Conocidas

En aras de la transparencia para los revisores:

  • Límite de concurrencia — las pruebas de carga muestran un aumento pronunciado en la tasa de error con 50 usuarios simultáneos (ver arriba). Adecuado para uso en demostraciones/equipos pequeños tal como está; necesitaría agrupación de conexiones / ajuste asíncrono para tráfico de producción más grande.

  • Seguimiento de tokens/costos estimado (no medido) — las cifras de costos del informe de evaluación son estimaciones heurísticas basadas en recuentos de palabras, no una contabilidad real de uso de API.

  • Conjunto de evaluación dorado pequeño — la evaluación automatizada cubre 23 consultas representativas; una cobertura más amplia (más casos adversariales/de inyección de prompts, más casos extremos) fortalecería aún más la confianza.

  • generate_pdf.py es una utilidad independiente de exportación de documentación con una ruta de salida predeterminada específica de Windows; pase un argumento de nombre de archivo explícito en macOS/Linux.


F
license - not found
-
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

  • A
    license
    -
    quality
    C
    maintenance
    Provides comprehensive SQLite database interaction for AI agents, including data manipulation, schema inspection, and automated query logging. It features a unique context preservation pattern that uses a dedicated meta-table to help autonomous agents maintain self-documenting database architectures.
    36
    1
    MIT
  • F
    license
    -
    quality
    D
    maintenance
    Exposes a SQLite database to AI assistants with structured, read-safe access. Includes five tools for schema exploration, querying, and sampling data.
  • F
    license
    -
    quality
    C
    maintenance
    Exposes any SQLite database as read-only MCP tools for AI assistants, enabling listing tables, describing schemas, and running SELECT queries with filtering, ordering, and pagination.

View all related MCP servers

Related MCP Connectors

  • Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.

  • SEO research, audits, backlinks, GSC, and content workflow tools for AI agents.

  • Read-only tools over the Safer Agentic AI framework: 238 patterns + 14 heuristics.

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/PS-minalprasad/Bugpilot'

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