BugPilot MCP Server
BugPilot
AI-агент для анализа дефектов в инженерии на основе ИИ
Основная архитектура: BugPilot работает на чистом, сквозном декомпозированном конвейере: React / Vite → FastAPI Backend → ReAct Orchestrator → Специализированные агенты → MCP Client → MCP Server → 10 инструментов только для чтения → 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 |
|
| Поиск дефектов по ключевому слову в ключе задачи, заголовке, сводке или описании. |
2 |
|
| Получение полных сведений об одном дефекте (серьезность, приоритет, первопричина, влияние на бизнес, окружение, шаги воспроизведения, версия исправления). |
3 |
|
| Агрегированные количества дефектов, распределение открытых и закрытых, разбивка по серьезности. |
4 |
|
| Ежемесячные тренды создания и закрытия дефектов, историческая скорость завершения спринтов. |
5 |
|
| Открытые дефекты, отсортированные по убыванию возраста в днях, для выявления рисков SLA. |
6 |
|
| Дефекты, перешедшие из статуса "Решено/Закрыто" обратно в "Открыто/В работе" ( |
7 |
|
| Оценки риска на уровне компонентов (0–100), количество активных открытых задач и индикаторы радиуса поражения. |
8 |
|
| Оценка готовности версии исправления / релиза, общая оценка риска и вердикт по развертыванию. |
9 |
|
| Хронологическая история переходов статусов, временные метки переоткрытия и комментарии разработчиков. |
10 |
|
| Связанные дефекты, имеющие общий контекст компонента, техническую первопричину или явные идентификаторы связанных задач. |
3. Динамическая оркестрация ReAct и сравнительный анализ
Агент-оркестратор работает на основе подлинного цикла Рассуждение + Действие (ReAct):
Намерение и защита от выхода за пределы домена — Ранние проверки отфильтровывают неинженерные запросы без лишних затрат LLM/инструментов.
Динамический выбор инструментов — LLM решает каждое действие (
CALL_TOOL,DELEGATEилиFINISH) на основе запроса, динамически обнаруженных инструментов и накопленных наблюдений.Итеративная проверка нескольких кандидатов — Для сравнительных запросов и запросов ранжирования ("проанализируйте дефекты аутентификации и определите задачу с самым высоким риском")
search_bugsнаходит кандидатов, а Оркестратор итеративно вызываетget_bugдля каждого кандидата-дефекта, прежде чем разрешитьFINISH, обеспечивая сбор полных технических данных (первопричина, радиус поражения, шаги воспроизведения).Дифференцированная оценка риска на основе данных — Оценивает серьезность, приоритет, статус, производственную среду, влияние на безопасность (например, SOC2/угон сессии) и технические первопричины (например, состояние гонки, сбой). Генерирует ненасыщаемые оценки (0.0–99.5), чтобы избежать искусственных совпадений 100/100.
Оценка качества агентом рефлексии — Проверяет сгенерированные отчеты на соответствие эталонным данным 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 ( |
Протокол инструментов | Уровень инструментов | Официальный Python MCP SDK ( |
Уровень данных | Постоянная БД | SQLAlchemy 2.0 ORM + SQLite ( |
Безопасность | Аутентификация и 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 responses2. Запуск автономного MCP-сервера
# Windows
.\.venv\Scripts\python -m mcp_server.server
# macOS / Linux
.venv/bin/python -m mcp_server.server3. Запуск 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 devDev-сервер 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.
---.
This server cannot be installed
Maintenance
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
- Alicense-qualityCmaintenanceProvides 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.361MIT
- Flicense-qualityDmaintenanceEnables SQLite database interactions including querying, updating, and schema management through structured tools.3
- Flicense-qualityDmaintenanceExposes a SQLite database to AI assistants with structured, read-safe access. Includes five tools for schema exploration, querying, and sampling data.
- Flicense-qualityCmaintenanceExposes 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.
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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