Healix
从IDE生成端到端的AI测试和QA自动化。
Healix是一个包含两个包的monorepo:
testbot-mcp/—@healix/mcp(v2.0.0),安装在开发人员IDE中的MCP服务器。它协调了整个测试流程:自动检测→ 探索→ 生成→ 执行→ 分析→ 仪表板。webapp/--部署在Vercel上的Next.js 16/React 19网络应用程序。托管所有AI调用(OpenAI服务器端)、Supabase支持的仪表板、工件存储和Inngest异步生成管道。
用户只需要一个 HEALIX_API_KEY所有AI调用都通过webapp在服务器端代理——用户机器上不需要OpenAI密钥。
快速开始
1.安装MCP服务器
npm install -g @healix/mcp2.配置IDE
添加到MCP设置(~/.cursor/mcp.json克劳德密码或风帆):
{
"mcpServers": {
"healix": {
"command": "npx",
"args": ["@healix/mcp"],
"env": {
"HEALIX_API_KEY": "your-healix-api-key"
}
}
}
}从Healix仪表板获取API密钥→ API密钥。
3.运行测试
在IDE提示符中:
“使用healix mcp测试我的应用程序”
管道自动运行:
- 配置UI --本地HTTP表单收集测试类型、基本URL、启动命令、PRD文件(可选)和角色凭据
- 自动检测 --未提供时从项目推断出的端口、框架和启动命令
- 浏览器探索 --浏览器使用(Python子进程)发现真实的流;如果浏览器不可用,则退回到零依赖Playwright启发式浏览器
- PRD/AC解析 --结构化验收标准提取
/api/parse-prd无AC应用程序直接使用探索流 - 测试生成 --GPT驱动的多代理扇出通过
/api/generate-tests;每个测试都标记[REQ:F#.S#.AC#] - 凭证注入 --按角色剧作家
storageState写信给.healix/auth-state-{role}.json - 分层执行 --三个剧作家项目按顺序运行:
- A级 (tierA-public)--未经认证/公共流量 - B级 (tierB-auth-{role})--每个角色一个项目;标记的 blocked 如果登录失败(A+C仍在运行) - C级 (tierC-backend)-API/后端合同测试
- 工件上传 --上传到Supabase存储的屏幕截图、视频和剧作家痕迹
- 摄取 --结果发布到
/api/test-runs/ingest - 仪表板深度链接 --打开包含层药丸、故障分析和工件的运行页面
MCP工具
| 工具 | 说明 |
|---|---|
healix_test_my_app | 完整的端到端管道。接受 projectPath, baseURL, port, startCommand, testType (frontend/backend/both), prdFile, generateTests, openDashboard, credentials, codebaseContext, playwrightMcp以及更多。 |
healix_configure | 打开配置UI并返回已验证的设置,而不运行管道。可用于飞行前检查。 |
配置
MCP环境变量
将这些设置在 env MCP客户端配置块(Cursor、Claude Code、Windsurf):
| 变量 | 必填 | 描述 | 默认值 |
|---|---|---|---|
HEALIX_API_KEY | 是 | 对MCP进行身份验证→ webapp;仪表令牌使用情况。 | — |
HEALIX_DASHBOARD_URL | 否 | Webapp基本URL。用于所有API调用和仪表板深度链接。 | 生产Vercel URL |
HEALIX_RUN_BUDGET_MS | 否 | 总管道超时(ms)。 | 7200000 (120分钟) |
HEALIX_GEN_BUDGET_MS | 否 | 测试生成阶段超时(ms)。为大型代码库筹集资金;否则,Healix将其扩展到大型/xlarge发现的应用程序。 | 1800000 (30分钟) |
HEALIX_GENERATION_AGENT_CONCURRENCY | 否 | 一次运行的代代理数量。脆弱的本地Web应用程序较低,稳定的生产Web应用程序较高。 | 3 |
HEALIX_GENERATION_AGENT_TIMEOUT_MS | 否 | 显式的每代理生成传输超时。默认情况下,Healix从剩余的生成预算和代码库复杂性中得出这一点。 | 派生 |
HEALIX_SKIP_PLANNER | 否 | 设置 1 绕过预扇出计划通道(紧急断路器)。 | 未设置 |
Webapp环境变量
复制 .env.example 到 webapp/.env.local:
| 变量 | 描述 |
|---|---|
DATABASE_URL | PostgreSQL连接字符串(用于生产的Supabase池器URI)。 |
NEXT_PUBLIC_SUPABASE_URL | Supabase项目URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY | 使用匿名密钥(公钥)。 |
SUPABASE_SERVICE_ROLE_KEY | 基于服务角色键(仅限服务器端,从不公开)。 |
OPENAI_API_KEY | OpenAI API密钥。仅用于网络应用程序API路由,而不用于MCP。 |
OPENAI_MODEL | 模型覆盖(默认值: gpt-4o). |
HEALIX_GEN_ASYNC | true 路线 /api/generate-tests 通过Inngest背景工作。违约: false. |
INNGEST_EVENT_KEY | 默认事件密钥(仅在以下情况下需要 HEALIX_GEN_ASYNC=true). |
INNGEST_SIGNING_KEY | 天生的webhook签名密钥(仅在以下情况下需要 HEALIX_GEN_ASYNC=true). |
INNGEST_DEV | 设置 1 与当地人比赛时 inngest-cli. |
HEALIX_PLANNER_AGENT | 1 以启用LLM驱动的计划器。违约: 0 (基于规则)。 |
AI_MAX_REQUESTS_PER_MINUTE | 每用户AI速率限制上限。违约: 20. |
看 .env.example 以获取完整的注释参考。
异步生成(Inngest)
默认同步生成路径在内部运行完整的多代理扇出 /api/generate-tests 请求。对于非常大的代码库,其中单个代理调用可能会碰到Vercel的函数超时:
- 集
HEALIX_GEN_ASYNC=true在webapp上进行配置INNGEST_EVENT_KEY+INNGEST_SIGNING_KEY. - 无需更改MCP--
@healix/mcp自动检测202回应和民意调查/api/generate-tests/jobs/{jobId}.
不启用 HEALIX_GEN_ASYNC=true 对于本地开发者。 上没有功能超时限制 localhost异步路径增加了Inngest设置和轮询开销,但没有任何好处。
发展
# Start the webapp (Next.js dev server on port 3000)
npm run dev:webapp
# Start the MCP server (stdio transport)
npm run start:testbot
# Run MCP unit tests (26 test files via node --test)
npm run test:testbot
# Database — run from webapp/
npm run db:generate # generate Drizzle migration from schema changes
npm run db:migrate # apply pending migrations
npm run db:studio # open Drizzle Studio建筑
User IDE (Cursor / Claude Code / Windsurf)
│ stdio (MCP protocol)
▼
@healix/mcp ─── thin client, HEALIX_API_KEY only ───────────────┐
│ │
│ Pipeline (pipeline-worker.js): │
│ 1. Config UI (local HTTP server) │
│ 2. Auto-detect port/framework/start-cmd │
│ 3. Browser-use exploration (Python) or PW heuristic │
│ 4. Parse PRD/AC ───── HTTPS ──────────────────────────┤
│ 5. Generate tests ──── HTTPS ──────────────────────────┤
│ 6. Inject credentials (storageState per role) │
│ 7. Run Playwright: Tier A / Tier B / Tier C │
│ 8. Upload artifacts ─── HTTPS ─────────────────────────┤
│ 9. Ingest results ──── HTTPS ──────────────────────────┤
│ 10. Open dashboard deep-link │
│ ▼
└──────────────────── Healix webapp (Vercel / localhost) ──
│ Next.js 16 + React 19
│ Supabase (Auth + DB + Storage)
│ Drizzle ORM (PostgreSQL)
│ Inngest (async generation jobs)
└──────── OpenAI (server-side only)项目结构
TestBot_MCP/
├── testbot-mcp/ # @healix/mcp — npm package (v2.0.0)
│ ├── bin/healix-mcp.js # CLI entry point
│ ├── src/
│ │ ├── index.js # MCP server + tool registration
│ │ ├── pipeline-worker.js # End-to-end pipeline orchestration
│ │ ├── auto-detector.js # Port/framework/start-cmd detection
│ │ ├── webapp-client.js # All webapp API calls (HEALIX_API_KEY)
│ │ ├── config-ui-launcher.js # Local HTTP config form
│ │ ├── browser-use-driver.js # Python browser-use subprocess
│ │ ├── playwright-explorer.js # Zero-dep Playwright heuristic fallback
│ │ ├── playwright-integration.js # Tier A/B/C Playwright projects
│ │ ├── playwright-mcp-client.js # @playwright/mcp integration
│ │ ├── credentials-injector.js # Per-role storageState injection
│ │ ├── artifact-uploader.js # Supabase Storage upload
│ │ ├── results-merger.js # Merge tier results + blocked status
│ │ ├── report-generator.js # Build ingest payload
│ │ ├── mcp-telemetry.js # Background telemetry reporting
│ │ ├── multi-service-starter.js # App-under-test launcher
│ │ ├── context-gatherer.js # Codebase context extraction
│ │ ├── dashboard-launcher.js # Open dashboard deep-link
│ │ ├── logger.js
│ │ ├── ai-providers/
│ │ │ └── saas-client.js # Proxy → Healix webapp
│ │ └── failure-triage/
│ │ ├── classifier.js # Deterministic first-match rules
│ │ ├── agent-response.js # AI failure analysis parsing
│ │ ├── error-remediations.js # Patch suggestions
│ │ ├── evidence-bundler.js # Test source + AC + trace evidence
│ │ ├── pipeline-error-classifier.js
│ │ └── trace-parser.js # Playwright trace.zip parser
│ ├── scripts/
│ │ ├── browser_use_runner.py # Pinned browser-use driver
│ │ └── localhost-smoke.js # Local smoke test helper
│ └── test/ # 26 test files (node --test)
│
└── webapp/ # Next.js 16 webapp (Vercel)
├── src/
│ ├── app/
│ │ ├── (auth)/ # Sign in / sign up / callback pages
│ │ ├── (dashboard)/ # Authenticated dashboard pages
│ │ │ ├── home/ # Overview + recent runs
│ │ │ ├── create-tests/ # Manual test run creation
│ │ │ ├── all-tests/ # Test run history
│ │ │ ├── mcp-tests/ # MCP-originated runs
│ │ │ ├── test-run/[id] # Live + historical run detail
│ │ │ ├── import-tests/ # Groovy test import from Excel/CSV
│ │ │ ├── monitoring/ # Live MCP telemetry + run monitoring
│ │ │ ├── api-keys/ # API key management
│ │ │ ├── plan-billing/ # Plan + credits
│ │ │ └── profile/
│ │ └── api/
│ │ ├── generate-tests/ # Multi-agent AC-traced generation
│ │ ├── parse-prd/ # PRD → structured AC extraction
│ │ ├── exploration/plan/ # Flow prioritization
│ │ ├── analyze-failures/ # AI failure triage
│ │ ├── test-runs/ # CRUD + ingest + phase + SSE stream
│ │ ├── import-tests/ # Excel/CSV → Groovy generation
│ │ ├── mcp-telemetry/ # Telemetry ingest + summary
│ │ ├── mcp-auth/validate/ # API key validation
│ │ ├── artifacts/ # Supabase Storage proxy
│ │ ├── upload-artifacts/ # Signed upload URLs
│ │ ├── api-keys/ # Key CRUD
│ │ ├── auth/ # Supabase Auth helpers
│ │ ├── inngest/ # Inngest function registry
│ │ └── profile/
│ └── lib/
│ ├── db/schema.ts # Drizzle ORM schema (source of truth)
│ ├── test-generation/ # GPT orchestration: planner + agents
│ ├── inngest/functions/ # generate-tests-orchestrator + agent
│ ├── types/database.ts # Shared TypeScript interfaces
│ ├── ai-guard.ts # Per-user AI rate limiting
│ ├── credits.ts # Token accounting
│ ├── mcp-live-runs.ts # SSE live run state from telemetry
│ ├── groovy-generator.ts # Groovy test file generation
│ └── excel-parser.ts # Excel/CSV test case ingestion
└── drizzle/ # SQL migrations数据库架构(关键表)
| 表 | 目的 |
|---|---|
profiles | 用户帐户(计划、积分、代币) |
api_keys | 每个用户的哈希API密钥 |
test_runs | 执行结果与层结果、管道错误、AI分析 |
test_failures | 根据测试失败的判断,提供证据和用户覆盖 |
mcp_telemetry_events | 管道事件流(为实时运行监控提供动力) |
generation_jobs | 固有异步生成作业生命周期 |
generation_plans | 每个仓库快照的24小时缓存计划输出 |
test_artifacts | 屏幕截图/视频/跟踪元数据+附加存储路径 |
import_sessions | Groovy导入会话(Excel/CSV→ 测试用例) |
imported_test_cases | 从导入解析测试用例 |
generated_groovy_files | 生成的Groovy API测试文件 |
从以下位置迁移 @testbot/mcp
看 MIGRATION.md 获取完整的升级指南。摘要:
npm uninstall -g @testbot/mcp
npm install -g @healix/mcp移除 OPENAI_API_KEY, AI_PROVIDER,以及MCP配置中的任何其他AI密钥——它们在v2.0.0中被忽略。仅 HEALIX_API_KEY 是必需的。
许可证
麻省理工学院
