Skip to main content
Glama
PS-minalprasad

BugPilot MCP Server

BugPilot

基于AI的工程缺陷智能分析代理

核心架构:BugPilot运行在清晰的端到端解耦流水线上: React / ViteFastAPI后端ReAct编排器专业代理MCP客户端MCP服务器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

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

共享组件上下文、技术根本原因或显式关联问题ID的相关缺陷。


3. 动态ReAct编排与比较分析

编排器代理基于真正的**推理+行动(ReAct)**循环运行:

  1. 意图与领域外防护 — 早期检查过滤非工程类查询,避免浪费LLM/工具调用。

  2. 动态工具选择 — LLM根据查询、动态发现的工具以及累积的观察结果决定每个行动(CALL_TOOLDELEGATEFINISH)。

  3. 迭代多候选检查 — 对于比较和排序查询("分析认证缺陷并识别风险最高的问题"),search_bugs发现候选对象,编排器在允许FINISH之前迭代地对每个候选缺陷调用get_bug,确保收集完整的技术证据(根本原因、影响范围、复现步骤)。

  4. 差异化证据驱动的风险评分 — 评估严重程度、优先级、状态、生产环境、安全影响(例如SOC2/会话劫持)以及技术根本原因(例如竞态条件、崩溃)。生成非饱和评分(0.0–99.5),避免人为的100/100平局。

  5. 反思代理质量评估 — 根据真实MCP数据验证生成的报告,防止幻觉并确保准确报告。


4. 多租户与RBAC安全

  • 租户隔离 — 每条数据库记录(issuessprintsusersaudit_logs)均严格按organization_id(例如org-acme)限定范围。跨组织数据访问在存储库和MCP层被阻止。

  • 基于角色的访问控制(RBAC)

    • 管理员 — 完全访问权限、用户管理和问题管理。

    • 工程师/开发者 — 创建、更新、转换和分析问题。

    • 查看者 — 对问题、分析和报告的只读访问权限。

  • 密钥管理 — 无硬编码的密钥或凭据。JWT密钥、API密钥和环境变量严格从.env加载,并排除在版本控制之外。


5. 技术栈

组件

技术

前端

交互式UI

React 18 + TypeScript + Vite

后端API

REST API服务器

FastAPI + Uvicorn + Pydantic v2

编排

代理循环

ReAct代理框架 + 专业委派

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+(用于前端)

  • Groq API密钥(可选 — 应用无需密钥即可运行,回退到本地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/healthhttp://127.0.0.1:8000/docs验证其健康状态。

4. 构建并运行前端

cd frontend
npm install
npm run dev

Vite开发服务器将/api请求代理到端口8000上的FastAPI后端(参见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个测试用例中从未编造信息。

还通过evaluation/load_tester.py包含了一个并发/负载测试(1–50个并发用户)。在最多25个并发用户时,系统保持0%的错误率;在50个并发用户时,错误率上升至约66%,表明当前的单实例设置尚未针对高并发生产流量进行调优。请参见下面的已知限制

关于成本/令牌数量的说明: evaluation_report.json中的estimated_total_cost_usdaverage_tokens_per_query值是基于单词数量的估算值,而非真实的Groq API使用数据。请将其视为粗略指标,而非计费数据。


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