
TestChimp
io.testchimpv0.1.89更新于 Oct 5, 2026
QA platform for agents: coverage signals, in-repo test plans, verified tests and release governance.
概览
TestChimp 让助手通过 CLI 或远程 MCP 端点获取 QA 覆盖率信号、仓库内测试计划、已验证测试、性能基线和发布治理信息。
- 功能
- TestChimp 通过 get-requirement-coverage、create-user-story、list-screen-states、upsert-screen-states、list-perf-runs、get-perf-run、promote-perf-baseline、compare-perf-to-baseline、list-api-operation-interactions 以及会议列表与转录获取等工具,把 QA 平台开放给智能体。它还覆盖 QA 机器人流程:任务列表、待验证测试、QA 态势、机器人资料注册、事件确认和 AgentWatch 配对。它既可以作为本地 stdio 进程通过 npx 运行,也可以作为无状态 Streamable HTTP 端点运行。
- 适用场景
- 当助手需要在 TestChimp 项目中分析测试覆盖率、编写或更新用户故事与屏幕状态、查看性能运行与基线,或检查发布就绪情况时使用。也适合希望智能体接收 QA 任务和机器人事件的团队。
- 运行要求
- 本地包 @testchimp/cli 需要 Node.js 与 npx,或使用远程端点 TestChimp 项目 API 密钥(TESTCHIMP_API_KEY),或 OAuth 令牌(TESTCHIMP_OAUTH_TOKEN)。可选:TESTCHIMP_BACKEND_URL、TESTCHIMP_INGRESS_URL、TESTCHIMP_BOT_ID、TESTCHIMP_HOME。HTTP 模式要求每个请求携带 bearer 令牌。
安装
在 SourceWeft 中
- 打开 控制台中的 TestChimp,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。
其他 MCP 客户端
把它添加到你客户端的 mcpServers 配置中。
{
"mcpServers": {
"qa": {
"type": "http",
"url": "https://mcp.testchimp.io/mcp"
}
}
}README
@testchimp/cli
TestChimp CLI and MCP server for calling TestChimp /api/mcp/* endpoints with TESTCHIMP-API-KEY.
This repository folder may still be named testchimp-mcp-client locally; the published npm package is @testchimp/cli.
Install
MCP (agents in Cursor, Claude Code, VS Code, etc.)
Register the server so the host runs:
Example mcpServers.testchimp:
The config file path depends on the host (e.g. Cursor often uses <repo>/.cursor/mcp.json). Tool names use kebab-case (e.g. get-requirement-coverage, create-user-story).
CLI
- stdout: API response JSON.
- stderr: progress for
provision-ephemeral-environment-and-wait(“still waiting…” polls). - performance gate:
compare-perf-to-baselinestill prints its JSON response but exits nonzero whenregressedistrue(top-level or undercomparison). - Meetings:
list-meetings/list-meeting-filter-optionscover team-wide Meeting Bots meetings only (same filters as the Meetings page).--from/--totakeYYYY-MM-DD(inclusive local days), ISO datetimes, or epoch millis;--label,--participant,--domainare repeatable or comma-separated. - Flags: default for each subcommand;
--json-input '<json>'or--json-input @file.jsonmerges over flags (JSON wins on conflicts). Use JSON for nested bodies (e.g. TrueCoverage scopes).
Authentication and environment
Workspace folder mapping
Map a local repository folder to a TestChimp project for the current user. The mapping lives in ~/.testchimp/projects.json (or $TESTCHIMP_HOME/projects.json), the same file TestChimp Studio uses, so a folder mapped from the CLI shows up in Studio and in the headless AgentWatch daemon.
workspace map follows the same rules as Studio:
- The folder must exist and be a git work tree. Paths are stored as canonical real paths.
- When
TESTCHIMP_API_KEY/TESTCHIMP_OAUTH_TOKENis set, the CLI loads the project's connected repository (get-git-folder-mapping). If one is connected, the folder must be the repository root and one of its git remotes must match (owner/repo, case-insensitive). If no credential is set, no repo is connected, or the lookup fails, the check is skipped with a note on stderr. The credential's own project is used for this lookup, so run it with the same project's key or bot token.--skip-repo-checkskips the lookup entirely. - A folder belongs to one project. Mapping it to a second project fails unless you pass
--reassign, which moves it (and drops the old project's entry if that leaves it with no folders). - The file is written atomically (temp file, then rename) with mode
0600. Other projects are left alone, and unknown fields written by newer Studio versions are kept. A file that is not valid JSON or does not match schema v2 is moved toprojects.invalid.<millis>.jsonand replaced with an empty registry. Schema v1 files are migrated to v2.
The byte-level format is pinned by fixtures/projects-registry/, with an identical copy in the Studio repo. Both test suites replay the same upsert sequences and compare the output bytes.
QA bots
bot ack prints one eventId<TAB>status line per id and exits non-zero when any status is BOT_ACK_UNKNOWN_EVENT, BOT_ACK_NOT_A_TARGET, or BOT_ACK_MISSING_BOT_ID. An explicit --ack-url must be https (http only on localhost) and point at a TestChimp host or the TESTCHIMP_INGRESS_URL host. bot compat exits 0 and prints the deployment minimums plus cliUpgradeRequired / skillUpgradeRequired.
AgentWatch without TestChimp Studio
Headless AgentWatch acts as the user, so it needs their user id, personal access key and the project API key. bot connect runs an OAuth 2.1 PKCE login with a loopback redirect, asks for the opt-in agentwatch scope (the consent page warns that keys will be stored locally), fetches the keys from /bots/get_agentwatch_credentials, and writes them to ~/.testchimp/agentwatch/credentials.json (mode 0600, keyed by project) with the backend and ingress URLs. It revokes the OAuth refresh token straight away and never prints the keys. Approving also opts the project in to AgentWatch.
Pairing (no second browser consent; what QA bots use). Every connection approved with Use this connection as my QA bot carries the agentwatch_pair scope, so the keys can reach the user's computer without another browser login, and without passing through the bot:
- On the user's computer:
testchimp bot connect --pair [--project-id <id>]keeps a random verifier in~/.testchimp/agentwatch/pairing.json(0600) and prints{pairingCode, expiresAtMillis}; the code is the verifier's SHA-256 (base64url). - The bot approves it with its own token: MCP tool
approve-agentwatch-pairing(ortestchimp bot approve-pairing <code>). - On the user's computer:
testchimp bot connect --finish-pairredeems with the verifier (polls up to--timeout-ms, default 60 s), stores the keys like above and deletes the pending file.
Pairings are single use and expire after 10 minutes. The bot only ever sees the pairing code, which is useless without the verifier.
Remote MCP (Streamable HTTP)
Stateless Streamable HTTP at POST /mcp. Every request must carry Authorization: Bearer <OAuth access token>; the caller's token is forwarded to TestChimp for each tool call, and the server's own TESTCHIMP_API_KEY / TESTCHIMP_OAUTH_TOKEN / TESTCHIMP_BOT_ID are never used. Requests without a bearer get 401 with WWW-Authenticate: Bearer resource_metadata="…". Other endpoints: GET /.well-known/oauth-protected-resource (RFC 9728 metadata), GET /healthz. Request bodies are capped at 1 MB.
The repository Dockerfile builds an image that runs testchimp mcp --http as a non-root user (Cloud Run ready):
Migration from testchimp-mcp-client
The npm package testchimp-mcp-client is superseded by @testchimp/cli. Update MCP args to ["-y", "@testchimp/cli@latest", "mcp"] and rename tool references to kebab-case. See MIGRATION.md.
License
MIT
来源:README.md,提交 1025729
工具
0版本历史
1- v0.1.89最新Oct 5, 2026


