Skip to main content
Glama
PS-minalprasad

BugPilot MCP Server

BugPilot

AI-агент для анализа дефектов в инженерии на основе ИИ

Основная архитектура: BugPilot работает на чистом, сквозном декомпозированном конвейере: React / ViteFastAPI BackendReAct OrchestratorСпециализированные агентыMCP ClientMCP Server10 инструментов только для чтенияSQLite база данных (синтетические данные Jira).


1. Архитектура системы

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

Строгий контракт доступа к данным

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

Агенты взаимодействуют исключительно через динамически обнаруживаемые MCP-инструменты, что обеспечивает изоляцию и полную тестируемость.


Related MCP server: mcp-sqlite-manager

2. Справочник по 10 MCP-инструментам

Все 10 инструментов являются строго только для чтения, ограничены по арендатору (org_id) и динамически обнаруживаются через протокол MCP:

#

Название инструмента

Обязательные / необязательные параметры

Описание и возвращаемые данные

1

search_bugs

query: str, limit: int = 20

Поиск дефектов по ключевому слову в ключе задачи, заголовке, сводке или описании.

2

get_bug

bug_id: str

Получение полных сведений об одном дефекте (серьезность, приоритет, первопричина, влияние на бизнес, окружение, шаги воспроизведения, версия исправления).

3

get_bug_metrics

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

Агрегированные количества дефектов, распределение открытых и закрытых, разбивка по серьезности.

4

get_bug_trends

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

Ежемесячные тренды создания и закрытия дефектов, историческая скорость завершения спринтов.

5

get_aging_bugs

min_age_days: float = 0.0, limit: int = 50

Открытые дефекты, отсортированные по убыванию возраста в днях, для выявления рисков SLA.

6

get_reopened_bugs

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

Дефекты, перешедшие из статуса "Решено/Закрыто" обратно в "Открыто/В работе" (reopen_count > 0).

7

get_component_risk

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

Оценки риска на уровне компонентов (0–100), количество активных открытых задач и индикаторы радиуса поражения.

8

get_release_risk

release: Optional[str]

Оценка готовности версии исправления / релиза, общая оценка риска и вердикт по развертыванию.

9

get_bug_history

bug_id: str

Хронологическая история переходов статусов, временные метки переоткрытия и комментарии разработчиков.

10

get_related_bugs

bug_id: str, limit: int = 10

Связанные дефекты, имеющие общий контекст компонента, техническую первопричину или явные идентификаторы связанных задач.


3. Динамическая оркестрация ReAct и сравнительный анализ

Агент-оркестратор работает на основе подлинного цикла Рассуждение + Действие (ReAct):

  1. Намерение и защита от выхода за пределы домена — Ранние проверки отфильтровывают неинженерные запросы без лишних затрат LLM/инструментов.

  2. Динамический выбор инструментов — LLM решает каждое действие (CALL_TOOL, DELEGATE или FINISH) на основе запроса, динамически обнаруженных инструментов и накопленных наблюдений.

  3. Итеративная проверка нескольких кандидатов — Для сравнительных запросов и запросов ранжирования ("проанализируйте дефекты аутентификации и определите задачу с самым высоким риском") search_bugs находит кандидатов, а Оркестратор итеративно вызывает get_bug для каждого кандидата-дефекта, прежде чем разрешить FINISH, обеспечивая сбор полных технических данных (первопричина, радиус поражения, шаги воспроизведения).

  4. Дифференцированная оценка риска на основе данных — Оценивает серьезность, приоритет, статус, производственную среду, влияние на безопасность (например, SOC2/угон сессии) и технические первопричины (например, состояние гонки, сбой). Генерирует ненасыщаемые оценки (0.0–99.5), чтобы избежать искусственных совпадений 100/100.

  5. Оценка качества агентом рефлексии — Проверяет сгенерированные отчеты на соответствие эталонным данным MCP для предотвращения галлюцинаций и подтверждения точности отчетности.


4. Мультиарендность и безопасность RBAC

  • Изоляция арендаторов — Каждая запись в базе данных (issues, sprints, users, audit_logs) строго ограничена organization_id (например, org-acme). Доступ к данным между организациями блокируется на уровне репозитория и MCP.

  • Управление доступом на основе ролей (RBAC):

    • Администратор — Полный доступ, управление пользователями и администрирование задач.

    • Инженер / Разработчик — Создание, обновление, переход и анализ задач.

    • Наблюдатель — Доступ только для чтения к задачам, аналитике и отчетам.

  • Управление секретами — Никакие секретные ключи или учетные данные не захардкожены. Секреты JWT, ключи API и переменные окружения строго загружаются из .env и исключены из системы контроля версий.


5. Технологический стек

Уровень

Компонент

Технология

Фронтенд

Интерактивный UI

React 18 + TypeScript + Vite

Бэкенд API

REST API Сервер

FastAPI + Uvicorn + Pydantic v2

Оркестрация

Цикл агента

ReAct Agent Framework + Делегирование специалистам

LLM Шлюз

Механизм вывода

Groq API (llama-3.3-70b-versatile) Основной + Локальный Ollama (llama3.1:8b) Резервный

Протокол инструментов

Уровень инструментов

Официальный Python MCP SDK (mcp>=1.0.0) через stdio

Уровень данных

Постоянная БД

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

Безопасность

Аутентификация и RBAC

PyJWT (HS256) + Passlib (bcrypt) + Ограничение арендатора на основе заголовков

Качество

Рефлексия и тесты

Обоснование агентом рефлексии + Pytest (329 тестов, 100% проход)


6. Руководство по настройке и запуску

Предварительные требования

  • Python 3.12+

  • Node.js 18+ (для фронтенда)

  • Ключ API Groq (необязательно — приложение работает и без него, переходя на локальный Ollama или детерминированный режим)

1. Настройка бэкенда

# 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. Запуск автономного MCP-сервера

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

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

3. Запуск FastAPI бэкенда

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

База данных создается и заполняется автоматически при первом запуске — шаг миграции не требуется. Проверьте работоспособность по адресам http://127.0.0.1:8000/api/v1/health и http://127.0.0.1:8000/docs.

4. Сборка и запуск фронтенда

cd frontend
npm install
npm run dev

Dev-сервер Vite проксирует запросы /api на бэкенд FastAPI на порту 8000 (см. vite.config.ts), поэтому оба сервиса должны работать одновременно.

5. Запуск набора тестов

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

Вызовы LLM имитируются во время тестов (см. tests/conftest.py), поэтому набор выполняется детерминированно без подключения к Groq/Ollama. Поскольку несколько тестов запускают новый подпроцесс MCP-сервера, полный набор выполняется несколько минут — это ожидаемо, а не зависание.


7. Результаты оценки и качества

BugPilot поставляется с автоматизированной средой оценки (evaluation/), которая оценивает агента по золотому набору из 23 запросов по 11 измерениям — точность намерения, выбор инструментов, обоснованность, уровень галлюцинаций, валидность траектории, следование инструкциям, безопасность и задержка — без необходимости ручной оценки. Запустите сами с помощью:

python -m evaluation.run_eval

Последние зафиксированные результаты (evaluation_report.json):

Метрика

Результат

Уровень успешности задач

21 / 23 (91.3%)

Уровень галлюцинаций

0.0%

Уровень успешности вызовов инструментов

100%

Точность маршрутизации агента

95.7%

Средняя задержка

2.3с (P95: 4.6с)

Два непройденных запроса были пограничными случаями маршрутизации намерений (например, запрос классифицирован как COMPONENT_ANALYSIS вместо METRIC), а не галлюцинациями или сбоями — агент ни разу не сфабриковал информацию ни в одном из 23 тестовых случаев.

Тест на параллельность/нагрузку (1–50 одновременных пользователей) также включен через evaluation/load_tester.py. При до 25 одновременных пользователях система удерживает 0% ошибок; при 50 одновременных пользователях уровень ошибок возрастает до ~66%, что указывает на то, что текущая однопроцессная установка еще не настроена для высоконагруженного производственного трафика. См. Известные ограничения ниже.

Примечание о цифрах стоимости/токенов: значения estimated_total_cost_usd и average_tokens_per_query в evaluation_report.json являются оценками на основе подсчета слов, а не реальными данными об использовании API Groq. Относитесь к ним как к приблизительным индикаторам, а не к счетам.


8. Известные ограничения

В интересах прозрачности для рецензентов:

  • Потолок параллельности — нагрузочное тестирование показывает резкий рост уровня ошибок при 50 одновременных пользователях (см. выше). Подходит для демо/использования в небольших командах в текущем виде; потребуется пул соединений / асинхронная настройка для более крупного производственного трафика.

  • Оценка (не измерение) токенов/стоимости — цифры стоимости в отчете оценки являются эвристическими оценками на основе подсчета слов, а не реальным учетом использования API.

  • Небольшой золотой набор для оценки — автоматическая оценка охватывает 23 репрезентативных запроса; более широкое покрытие (больше состязательных/инъекционных случаев, больше пограничных случаев) еще больше укрепило бы доверие.

  • generate_pdf.py — это автономная утилита экспорта документации с путем вывода по умолчанию, специфичным для Windows; передайте явный аргумент имени файла в 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