Lujo-MCP is an MCP Runtime Debugging Context Server for AI coding agents.
让 Claude、Cursor、Trae 等 AI coding agents 获得真实运行的 Debug Context —— 不是只读你的代码,而是看到真实 Bug 运行现场。
一个 Model Context Protocol (MCP) Server,面向 AI debugging / Runtime debugging / Browser debugging 场景的 Developer Tool & Observability 基础设施。
传统 AI 调试的问题:AI 可以看代码,但看不到真实运行现场。
- Browser runtime errors — 控制台异常
- Console logs — 控制台日志
- Network failures — 网络请求失败(请求体 / 响应体 / 耗时)
- User interaction traces — 用户点击 / 交互轨迹
- Session context — 会话上下文
- Debugging workflow — 调试工作流
这些对 AI 来说通常是黑盒。Lujo-MCP 作为 Runtime Debug Context Layer,把上述信息采集、整理成 AI 可直接理解的结构化 Debug Context,通过 MCP 标准协议提供给宿主 AI Agent。
Lujo-MCP 是 AI coding assistant 的「眼睛」与 Debug Context Infrastructure —— 不是另一个 Agent,不替代 LLM 推理,而是把真实运行现场喂给宿主 AI。
Lujo-MCP = Context Provider,不是 Agent:为 AI coding agent 提供 Runtime Debug Context,推理与修复决策由宿主 AI(Claude / Cursor / Trae)完成。
- Runtime error capture — 捕获 browser runtime errors / exceptions / stacktrace / 源码行号
- Browser context collection — 浏览器 SDK 采集 UI events、console logs、用户交互
- Network tracing — 拦截 XHR / fetch,捕获请求体、响应体、耗时与网络错误
- User action tracking — 记录点击 / 提交后的 DOM、路由、网络变化(UI 静默失败检测)
- AI debugging context — 把以上信息组装为 AI 可理解的结构化 Debug Context
- Debug Experience Retrieval(RAG-based) — 通过历史 Debug Experience 检索(fingerprint recall / message normalization / vector fallback)增强 AI 分析
- Claude Desktop
- Cursor
- Trae
- 任何兼容 MCP 的客户端(stdio / Streamable HTTP)
npm install -g @lujoai/lujo-mcp一条命令安装即用,无需配置 Python 环境;三平台(Windows / macOS / Linux)二进制自动选择。详见下方「快速启动方式」。
在 MCP 客户端(Claude Desktop / Cursor / Trae)配置:
{
"mcpServers": {
"lujo": {
"command": "lujo-mcp-server",
"args": []
}
}
}接入后即可通过 MCP 工具枚举获得 get_debug_context / get_stacktrace / get_runtime_snapshot 等 17 个工具。详见下方「MCP Client 接入」。
Lujo-MCP v0.5.0(npm @lujoai/lujo-mcp@0.5.0,开箱即用)
版本统一:app / npm / README / CHANGELOG / MCP serverInfo / git tag 均为
0.5.0。 架构冻结(Architecture Frozen):允许 Agent → RAG;禁止 Runtime → RAG/Agent/LLM/MCP、RAG → Agent/Runtime/LLM/MCP。
Lujo-MCP 的能力按成熟度分为三层:稳定能力(开箱即用、默认可用)、实验能力(需环境或开关启用)、未来规划(Roadmap)。功能不变,仅按可交付状态归层。
无需额外配置即可使用:
后端调试
- 请求追踪 — 自动记录每个请求的完整执行链路(时间、步骤、数据)
- 调试上下文构建 — 将原始追踪日志转换为 AI 可理解的结构化上下文
- 异常堆栈捕获 — 捕获异常调用栈、局部变量、源码行号
- 运行时快照 — 采集系统/进程/解释器状态(CPU、内存、线程等)
- 指纹知识库 — 基于错误指纹复用历史分析结论,命中时优先返回,并在 LLM 成功后自动沉淀
- 向量检索 RAG(in-process) — 零依赖 Jaccard 相似度召回,精确指纹 miss 后 fallback
- 规范驱动 + verify 自动断言 — 定义期望规范,系统自动比对实际结果,检测"返回正常但不符合规范"的静默失败
- errors 持久化聚合 — 异常自动入库 errors 表,支持指纹去重与聚合统计
- spec_store 独立表 — 规范持久化到独立表,支持 CRUD 与审计追溯
浏览器 SDK(V2-V6)
- 网络请求拦截 — 同时支持 XMLHttpRequest 和 fetch 请求
- 请求体安全序列化 — 支持 String、FormData、Blob、ArrayBuffer、URLSearchParams
- 响应体捕获 — 自动截取响应体前 2000 字符
- 批量上报 — V2 批量上报 + sendBeacon 兜底,减少请求次数
- 网络错误自动标记 — V3 自动把 fetch / XHR 失败转为静默失败,并支持
reportNetworkError() - SDK trace_id 关联 — V4 初始化即生成 trace_id,并贯穿上报链路
- 增强 ingest — V5 支持分类型批量入库,便于服务端按事件类别处理
- UI 静默失败自动检测 — V6 对点击 / 提交后的 DOM、路由、网络变化做观察窗口判定
- 采样 / 节流控制、SDK 自排除、敏感信息脱敏 — 采样率、节流间隔、自排除、password/token/secret/authorization 字段脱敏
传输与安全
- MCP 双传输 — stdio + Streamable HTTP,17 个工具
- 安全中间件 — fail-closed 鉴权 + 多 key 恒定时间比较轮换 + RBAC 角色分级(admin/developer/viewer)+ LFI/SSRF 防护
- Prometheus
/metrics— 指标暴露
验证:已通过完整回归测试(测试基线详见「项目状态」)。
默认关闭或需外部依赖,按需启用:
- LLM 智能分析 — 对接智谱 / OpenAI(AsyncOpenAI 异步调用),默认免费模型 GLM-4.7-Flash;需配置
OPENAI_API_KEY - 异步分析削峰队列 — 有界
asyncio.Queue+ K 常驻消费协程 + 信号量对齐 LLM RPM/TPM;队列满返回 429;优雅停机 drain - 多级缓存 — L1(LRU) + L2(Redis) 多级缓存,减少重复 LLM 调用(需 Redis)
- Debug Experience Retrieval(RAG-based) — Debug Experience 历史检索,
debug_experience_enabled默认 False;三层检索(L1 fingerprint recall / L2 message normalization / L3 vector fallback),关闭状态零调用零耗时 - Qdrant 向量检索(语义召回) — 需 Qdrant;不可用时静默降级
- Agent-assisted Debug Workflow(Experimental) — Lujo-MCP 本身不是 Agent,不负责自主推理或决定修复方案;该能力仅作为未来 AI-assisted debugging workflow 扩展,
agent_enabled默认 False:RepairAgent(先行,产出repair_plan)+ Multi-Agent Review DAG(GitAgent/TestAgent/SecurityAgent并行审查,AGENT-002) - PostgreSQL / asyncpg 存储 —
STORAGE_BACKEND=postgresql,需外部数据库 - Playwright UI verify / auto_test — 自动遍历页面可交互元素,捕获控制台错误和网络 4xx/5xx;需 Playwright 环境
- 熔断器、OpenTelemetry 导出 — 需对应依赖启用
- Dashboard 实时 SSE 推送 —
DASH-SSE-001,DashboardEventBus+ SSE 端点 - MCP 可观测性(D5) —
DebugContextTrace(request_id / Context 可用性 / Debug Experience 命中数 / 构建耗时 / Tool 响应耗时) - Benchmark 框架(D6) —
benchmark/5 个标准 Debug Case + EvaluationMetrics
部分完成:MCP HTTP server→client notifications 已具备基础推送闭环,更丰富的通知类型仍待补充(见「未来规划」)。
只做规划,不包含 Auto Repair / Agent 自主修复 / 自动 Patch 等能力承诺。
- More Debug Experience — 扩充种子知识库与检索策略,提升 Debug Experience Retrieval 覆盖率
- Better Context Collection — 增强 UI Events / Network Trace 采集精度与采样控制
- Enterprise Integration — 认证(SSO/API Key 轮换)、审计、多实例观测集成
- More MCP Protocol Capabilities — 持续跟进 MCP 协议新能力(notifications / sampling)
采用五层分层架构:
┌─────────────────────────────────────────────────────────────┐
│ 传输层 (Transport) │
│ MCP (JSON-RPC 2.0) / HTTP REST + stdio (WebSocket 规划中) │
├─────────────────────────────────────────────────────────────┤
│ 中间件层 (Middleware) │
│ Auth / RateLimit / RequestID / ErrorHandler │
├─────────────────────────────────────────────────────────────┤
│ 路由/分发层 (Router) │
│ MCP Tools / REST API / Ingest Endpoints │
├─────────────────────────────────────────────────────────────┤
│ 调试引擎 (Engine) │
│ Trace / Context / Collector / Verifier / Analyzer │
├─────────────────────────────────────────────────────────────┤
│ 存储/状态层 (Storage) │
│ PostgreSQL / Memory / Redis │
└─────────────────────────────────────────────────────────────┘
详细架构设计(含架构图、模块关系、数据流)请查看 DESIGN.md。
📌 SSE / Notifications:当前 MCP Streamable HTTP 已支持
GET /mcp长连接订阅、POST单次 SSE 响应,以及POST Accept: text/event-stream到GET /mcp队列的结果桥接。当前已落地的 server→client 推送主要是session ready和请求结果下发,更丰富的 notifications 事件类型仍在后续迭代中。
无需配置 Python 环境,一条命令安装:
# 国内用户如遇 404,可使用官方源:
npm install -g @lujoai/lujo-mcp --registry=https://registry.npmjs.org/
# 或直接使用(镜像同步完成后):
npm install -g @lujoai/lujo-mcp安装完成后,在 MCP 客户端(Claude Desktop / Cursor / Trae 等)中配置:
{
"mcpServers": {
"lujo-mcp": {
"command": "lujo-mcp-server",
"args": []
}
}
}
⚠️ stdio 模式需在 MCP 客户端配置LLM_PROVIDER、OPENAI_API_KEY等环境变量。
一键拉起 PostgreSQL、Redis 和 App:
git clone https://github.com/lujoai/Lujo-MCP.git
cd Lujo-MCP
# 复制环境变量模板
cp .env.example .env
# 编辑 .env,填入你的 API Key
# 最小配置只需设置 OPENAI_API_KEY 或使用智谱
# LLM_PROVIDER=zhipu
# OPENAI_API_KEY=your-zhipu-api-key
# 启动所有服务
docker compose up -d服务启动在 http://localhost:8000,包含:
- PostgreSQL 16(仅 Docker 内部网络可达)
- Redis 7(仅 Docker 内部网络可达)
- AI Debug MCP Server(端口 8000,映射到宿主机)
# 生产部署:仅安装运行时依赖
pip install -r requirements.txt
# 本地开发:安装运行时 + 测试/lint 工具(pytest / ruff / pytest-asyncio)
pip install -r requirements-dev.txt
cp .env.example .env
# 编辑 .env 配置
python -m app.main环境固化约定:
- 应用本身以
PG_HOST/PG_PORT/PG_DATABASE/PG_USER/PG_PASSWORD为权威来源 POSTGRES_PASSWORD仅供docker compose初始化 PostgreSQL 服务使用,建议与PG_PASSWORD保持一致DATABASE_URL仅作外部工具兼容,应用本身不会读取;若密码含@等特殊字符,必须先 URL 编码- 出现本地 PG 连接问题时,先核对
.env中的PG_PASSWORD,再排查服务端配置
开发最小配置:
LLM_PROVIDER=zhipu # openai | zhipu | custom
OPENAI_API_KEY=your-zhipu-or-openai-key
LLM_MODEL=glm-4.7-flash # 智谱免费模型;也可换 gpt-4o 等
LLM_FALLBACK_MODEL=glm-4-flash
自定义你自己的 API(开箱即用,零代码改动) 项目通过环境变量解耦 LLM provider,任何人都能填自己的 Key 和模型:
变量 说明 示例 LLM_PROVIDER厂商: openai/zhipu/customzhipuOPENAI_API_KEY你的 API Key(变量名沿用 OpenAI SDK 约定) your-keyLLM_MODEL模型名,任意兼容端点支持的模型 glm-4.7-flashLLM_BASE_URL自定义端点(留空则按 provider 自动选) https://my-proxy.example.com/v1
- 智谱(免费):
LLM_PROVIDER=zhipu时 base_url 自动设为https://open.bigmodel.cn/api/paas/v4/,模型填glm-4.7-flash(免费纯文本)即可,无需付费。- 自建 / 第三方兼容端点:
LLM_PROVIDER=custom并填LLM_BASE_URL+LLM_MODEL,即可接入任意 OpenAI 兼容服务(如本地 Ollama、vLLM、代理网关)。- OpenAI:
LLM_PROVIDER=openai,模型填gpt-4o等。
生产部署额外配置(业务代码零改动):
STORAGE_BACKEND=postgresql # memory | postgresql
STATE_BACKEND=redis # memory | redis(限流计数)
API_KEY=your-secret # 开启 fail-closed 鉴权
LLM_PROVIDER=zhipu # openai | zhipu | custom(智谱免 VPN)
curl http://localhost:8000/
# → {"status":"ok","service":"Lujo-MCP","version":"0.5.0"}Lujo-MCP 作为 MCP Server,通过 stdio(进程管道)或 Streamable HTTP(/mcp 端点)为 AI Agent(Claude / Cursor / Trae 等)提供真实运行现场。两种模式配置模板如下:
stdio 配置模板(默认推荐,进程内通信)
{
"mcpServers": {
"lujo": {
"command": "lujo-mcp-server",
"args": []
}
}
}未安装 npm 包时,也可改用源码方式:
"command": "python", "args": ["-m", "app.mcp_server"],并把工作目录指向仓库根目录。
HTTP 配置模板(先启动服务 python -m app.main 或 docker compose up -d)
{
"mcpServers": {
"lujo": {
"url": "http://127.0.0.1:8000/mcp"
}
}
}- 配置位置:
claude_desktop_config.json(应用菜单 Settings → Developer → Edit Config) - 填入上述 stdio 或 HTTP 配置模板中的
mcpServers段
- 配置位置:项目根
.cursor/mcp.json或全局~/.cursor/mcp.json - 填入
mcpServers段;HTTP 模式需先启动 Lujo-MCP 服务
- 配置位置:MCP 管理面板(模型配置 → MCP Server → 添加)
- 填入 stdio 或 HTTP 配置
⚠️ stdio 模式需在 MCP 客户端环境变量中配置LLM_PROVIDER、OPENAI_API_KEY等(见下方「环境变量配置」)。接入后即可通过工具枚举获得get_debug_context/get_stacktrace/get_runtime_snapshot/search_logs/list_recent_traces等 17 个工具。
- 启动服务:
docker compose up -d或python -m app.main - 访问网络捕获 Demo:打开
http://localhost:8000/demo - 点击测试按钮:测试 XHR/fetch 请求捕获、网络错误自动上报、FormData/Blob 请求、采样率控制等
- 按需验证静默失败 Demo:当前仓库提供
app/web/silent_failure_demo.html作为本地演示页,用于手动验证 UI 静默失败自动检测 - 查看 AI 调试:打开
http://localhost:8000/dashboard查看追踪记录和 AI 分析结果
接入后,宿主 AI(Claude / Cursor / Trae)可在调试对话中直接调用 MCP 工具,拿到真实运行现场辅助定位:
你(AI Agent):调用 lujo.get_debug_context
参数:{ "trace_id": "t_20260811_...", "include_stacktrace": true }
返回(Debug Context):
- exception_type / message # 异常类型与信息
- stacktrace # 调用栈(含源码行号)
- runtime_snapshot # 系统/进程/解释器状态
- git_context # 当前提交 / 分支 / 变更
- network_trace / ui_events # 前端请求与交互事件
- debug_experience # 历史调试经验(Debug Experience Retrieval)
宿主 AI Agent 基于 Lujo-MCP 提供的结构化 Runtime Debug Context 进行根因分析与修复建议生成,无需人工手动整理日志和运行现场信息。
Lujo-MCP 内置 Benchmark 框架(benchmark/),用 5 个标准 Debug Case(api_500 / frontend_blank / db_error / auth_403 / perf_slow)对比「无上下文」与「带 Lujo Context」两类输入下的 AI Debug 能力(EvaluationMetrics:命中率 / 定位精度 / 修复质量 / 耗时)。
python -m benchmark.runner list # 列出用例
python -m benchmark.runner show api_500 # 查看单个用例
python -m benchmark.runner quality # QualityScorer 旁证评估Benchmark 属于 Experimental Capability,用于评估 Runtime Debug Context 对 AI Debug 能力提升的影响。Benchmark 与 QualityScorer 是两个独立体系:前者度量外部 AI 在 Debug Context 加持下的能力提升,后者度量 Lujo-MCP 自身 Context 的完整度/可信度。
| 指标 | 状态 |
|---|---|
| MCP 工具数 | HTTP 17 / stdio 17(新增 repair_async / repair_result,FR19) |
| 测试基线 | 单元 927 passed / 6 skipped / 0 failed(含 AI Debug Agent Phase 1 63 项 + Phase 2 53 项 + Dashboard SSE 18 项 + Quality System 86 项 + Verify Loop 38 项 + M3 Fault Localization 2.0 48 项 + P1 Debug Experience RAG 26 项 + CODE_REVIEW_FIX_PROMPT 回归测试 17 项 + stacktrace 工具与存储工厂边界 17 项 + D5 MCP 可观测性 16 项 + D6 Benchmark 框架 19 项) |
| 存储后端 | memory 默认可用;PostgreSQL / asyncpg 需依赖外部数据库环境 |
| 稳定性能力 | 分区、归档、Redis L2、L3 缓存预热、熔断器、OTel、异步分析削峰队列均有真实代码,但需按环境启用并单独验证 |
| 安全能力 | fail-closed 鉴权 + 多 key 恒定时间比较轮换 + RBAC 角色分级(admin/developer/viewer)+ LFI/SSRF 防护 |
| 当前阶段 | Phase 0-6 全部完成;Phase 7 智能化(指纹知识库 + 向量检索 RAG in-process + Qdrant 语义召回 + AI Debug Agent Phase 1 单 Agent + Phase 2 多 Agent DAG)+ Phase 8 实时观测增强(Dashboard 实时 SSE 推送 DASH-SSE-001)均已落地;下一步为 Browser SDK 压缩 e2e 联调、Docker 容器化复现实验 |
| 权威口径 | 项目功能状态与启用验证以内部文档为准 |
| 安全审查 | 安全加固代码已落地,实际启用边界与前提条件以运行环境配置为准 |
⚠️ 安全提示(v0.3.0 P0+P1+P2+P3 加固后):默认更安全——0.0.0.0+空API_KEY会拒绝启动、代码/Git 定位默认仅限项目根、Playwright 默认拒私网/云元数据/file://。因此:本地免鉴权运行请用HOST=127.0.0.1;本地联调 Playwright 设UI_URL_ALLOW_PRIVATE=true(或UI_URL_ALLOWLIST);读项目根外源码配WHITELIST_PATH_PREFIX/GIT_PATH_WHITELIST。新增配置:TOOL_TIMEOUT_SECONDS(默认 60)/UI_URL_ALLOW_PRIVATE/UI_URL_ALLOWLIST/DEBUG_ENDPOINTS_ENABLED(默认 false)。Release Audit 全部收口:P0+P1+P2+P3 已全部修复。
详细路线图见项目内部路线图文档。
Lujo-MCP/
├── app/
│ ├── main.py # FastAPI 应用入口
│ ├── api/ # REST API 路由
│ ├── agent/ # AI Debug Agent 模块(Phase 1:BaseAgent ABC + RepairAgent + Coordinator + RepairQueue;Phase 2:GitAgent + TestAgent + SecurityAgent + DAG,共 11 文件)
│ ├── llm/ # LLM 分析模块
│ ├── mcp/ # MCP 传输层(Phase 0 解耦后仅保留协议/工具/传输)
│ │ ├── tools/ # MCP 工具(HTTP 17 / stdio 17)
│ │ ├── protocol/ # JSON-RPC 协议实现
│ │ └── transports/ # 传输层(stdio / Streamable HTTP / SSE)
│ ├── runtime/ # 运行时核心(Phase 0 解耦,MCP 依赖 runtime)
│ │ ├── core/ # 核心引擎(logs / errors / redaction / git / trace_repo)
│ │ │ └── storage/ # 存储后端(pg_store / async_pg_store / memory / factory / ddl)
│ │ ├── collectors/ # 数据采集器(stacktrace / network / static_analyzer)
│ │ ├── context/ # 上下文构建(builder / fault_localizer)
│ │ ├── verifier/ # 断言引擎(assert_engine / spec_store / ui_runner)
│ │ ├── hooks/ # 异常钩子
│ │ └── state/ # 状态存储
│ ├── middleware.py # 中间件栈(安全栈)
│ ├── middleware_network.py # 网络采集中间件(可选)
│ └── config.py # 统一配置
├── browser-sdk/ # 浏览器 SDK(V2-V6)
│ └── ai-debug.js # SDK 核心文件
├── app/web/ # Web 演示页面
│ ├── dashboard.html # Dashboard 控制台
│ ├── network_capture_demo.html # 网络捕获演示(/demo)
│ ├── silent_failure_demo.html # 静默失败演示
│ └── auto_test_demo.html # 自动遍历演示
├── migrations/ # SQL 迁移文件
├── scripts/ # 一键式脚本
├── tests/ # 测试
├── docker-compose.yaml # Docker Compose 配置
└── .env.example # 环境变量模板
| 文档 | 用途 |
|---|---|
| DEMO.md | 端到端演示场景(React Login Bug 完整流程) |
| PRD.md | 产品需求 |
| DESIGN.md | 技术架构设计 |
# 运行全部测试(集成测试需要 PostgreSQL 运行中,单元测试不需要)
python -m pytest tests/ --tb=short -q
# 仅运行单元测试(无需外部依赖)
python -m pytest tests/unit/ --tb=short -q
# 仅运行集成测试(需要 PostgreSQL/Redis)
python -m pytest tests/integration/ --tb=short -q
⚠️ 注意:单元测试前请确保.env不含API_KEY(SEC-03 鉴权会导致集成测试 401 失败);集成测试需 PostgreSQL/Redis(docker compose up -d)。
MCP stdio 唯一启动命令:
python -m app.mcp_server测试覆盖:
- 单元测试(
tests/unit/):redaction、fingerprint、storage、dashboard、verify_api 等 - 集成测试(
tests/integration/):API 端点、debug flow、PostgreSQL 集成 - PG 集成测试(
tests/integration/test_pg_integration.py):PGStore 连接、Dashboard 读取、MCP Tools 读取、LLM 分析