Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
QA platform for agents: coverage signals, in-repo test plans, verified tests and release governance.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
TESTCHIMP_API_KEY, TESTCHIMP_BACKEND_URL비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
웹, 데스크톱, 모바일의 Claude에서 쓸 수 있어요:
https://mcp.testchimp.io/mcpClaude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"qa": {
"command": "npx",
"args": [
"-y",
"@testchimp/cli",
"mcp"
],
"env": {
"TESTCHIMP_API_KEY": "your-value",
"TESTCHIMP_BACKEND_URL": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add --transport http qa https://mcp.testchimp.io/mcpclaude mcp add qa --env TESTCHIMP_API_KEY=your-value --env TESTCHIMP_BACKEND_URL=your-value -- npx -y @testchimp/cli mcp실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"qa": {
"url": "https://mcp.testchimp.io/mcp"
}
}
}프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"qa": {
"command": "npx",
"args": [
"-y",
"@testchimp/cli",
"mcp"
],
"env": {
"TESTCHIMP_API_KEY": "your-value",
"TESTCHIMP_BACKEND_URL": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"qa": {
"type": "http",
"url": "https://mcp.testchimp.io/mcp"
}
}
}프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"qa": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@testchimp/cli",
"mcp"
],
"env": {
"TESTCHIMP_API_KEY": "your-value",
"TESTCHIMP_BACKEND_URL": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요:
https://mcp.testchimp.io/mcp메뉴 이름은 요금제나 시기에 따라 조금 다를 수 있어요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
TESTCHIMP_BACKEND_URL env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
아직 이 서버의 도구 목록을 읽지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검
레지스트리 이름이 도메인 testchimp.io 기준으로 확인되었어요(레지스트리가 도메인 소유를 확인해요)
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요
아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요
아직 점검하지 않았어요. 엔드포인트를 점검할 때 도구 목록을 읽어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: TESTCHIMP_API_KEY
둘 다 가능해요. 내 컴퓨터에 설치해도 되고, 클라우드 버전에 연결해도 돼요.
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.1.93)은 19일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Dechonet MCP
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
30 security tools for AI agents: phishing links, exposure maps, DNS, SSL, PQC, history, pivots.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
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`.
npm install -D @testchimp/cli@latest
Register the server so the host runs:
npx -y @testchimp/cli@latest mcp
Example mcpServers.testchimp:
{
"command": "npx", "args": ["-y", "@testchimp/cli@latest", "mcp"], "env": { "TESTCHIMP_API_KEY": "your-project-key", "TESTCHIMP_BACKEND_URL": "" } }
The config file path depends on the host (e.g. Cursor often uses /.cursor/mcp.json). Tool names use kebab-case (e.g. get-requirement-coverage, create-user-story).
export TESTCHIMP_API_KEY=... # required unless TESTCHIMP_OAUTH_TOKEN is set (often read from project MCP env; never commit keys)
testchimp --help testchimp get-requirement-coverage --branch-name main --help testchimp create-user-story --platform-file-path plans/stories/foo.md --title "Checkout" testchimp list-screen-states --json-input '{}' testchimp upsert-screen-states --json-input '{"screenStates":[{"screen":"Checkout","states":["empty","filled"]}]}' testchimp list-perf-runs --testchimp-id TC-123 --kind JOURNEY --limit 20 testchimp list-perf-runs --run-id 01ABC --include-raw testchimp promote-perf-baseline --run-id 01ABC --env-class CI testchimp compare-perf-to-baseline --run-id 01ABC --max-p95-regression-percent 10 testchimp list-related-perf-tests --scenario-titles "Checkout,Refund" testchimp list-api-operation-interactions --operation-id 01XYZ --interaction-type REAL --limit 100 testchimp list-meetings --include-filter-options testchimp list-meetings --from 2026-09-01 --to 2026-09-30 --domain customer.com --label Sales --search "pricing" testchimp get-meeting-transcript --meeting-id --summary-only testchimp ephemeral-environment --action PROVISION --branch-name feat --no-wait testchimp report-scan-findings --id scan-1 --scanner DAST --report-file zap.json testchimp upsert-issue --title "Broken checkout" testchimp list-issues --status ACTIVE --limit 10 testchimp get-release --release 1.2.0 testchimp upsert-release --release 1.2.0 testchimp manage-test-run --release 1.2.0 --title "Sprint 12"
ephemeral-environment --action PROVISION when waiting (“still waiting…” polls). Pass --no-wait for create/deploy trigger only.compare-perf-to-baseline still prints its JSON response but exits nonzero when regressed is true (top-level or under comparison).list-meetings covers team-wide Meeting Bots meetings only (same filters as the Meetings page). --include-filter-options returns label / participant / domain catalogs. --from / --to take YYYY-MM-DD (inclusive local days), ISO datetimes, or epoch millis; --label, --participant, --domain are repeatable or comma-separated.get-release, upsert-release, manage-test-run, and other release-filter commands. `--version` / `-V` print the CLI version only.| Variable | Purpose |
|---|---|
TESTCHIMP_API_KEY | Project API key (sent as TestChimp-Api-Key). Required unless TESTCHIMP_OAUTH_TOKEN is set. |
TESTCHIMP_OAUTH_TOKEN | OAuth 2.1 access token issued by featureservice (sent as Authorization: Bearer). When both are set, both are sent and the backend prefers the bearer. |
TESTCHIMP_BOT_ID | QA bot id (sent as bot-id header for attribution). Must be 1–64 printable ASCII characters without spaces; otherwise it is ignored with a warning. |
TESTCHIMP_BACKEND_URL | Featureservice base URL (default https://featureservice.testchimp.io). |
TESTCHIMP_INGRESS_URL | Ingress base URL used for bot event acks (default https://ingress.testchimp.io). |
TESTCHIMP_HOME | TestChimp Studio / CLI home holding projects.json (default ~/.testchimp). |
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.
testchimp workspace map --project-id <id> --folder ~/code/shop [--project-name "Shop"] [--reassign] [--skip-repo-check]
testchimp workspace get --project-id # prints the mapping JSON; exit 1 when unmapped
workspace map follows the same rules as Studio:
TESTCHIMP_API_KEY / TESTCHIMP_OAUTH_TOKEN is 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-check skips the lookup entirely.--reassign, which moves it (and drops the old project's entry if that leaves it with no folders).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 to projects.invalid. .json and 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.
workspace save-creds)Local runners (the Playwright reporter, this CLI, k6) need the project API key in their environment. TestChimp Studio keeps it in /.testchimp/mcp.json; remote MCP (OAuth) users write the same file once per repo:
# CLI: copy TESTCHIMP_API_KEY from the environment (or fetch when TESTCHIMP_OAUTH_TOKEN is set)
testchimp workspace save-creds --folder . --project-id \ [--project-name "Shop"] [--backend-url ] [--ingress-url ] [--reassign]
printf '%s' "$KEY" | testchimp workspace save-creds --folder . --project-id
TESTCHIMP_API_KEY still work. The key is never printed.fixtures/workspace-mcp-json/, mirrored in the Studio repo): mode 0600 in a 0700 .testchimp/ directory, other servers in the file kept, .testchimp/ added to .gitignore. The folder is also mapped in projects.json like workspace map.--reassign.Fallback: when neither TESTCHIMP_API_KEY nor TESTCHIMP_OAUTH_TOKEN is set, the CLI reads TESTCHIMP_API_KEY, TESTCHIMP_PROJECT_ID, TESTCHIMP_BACKEND_URL and TESTCHIMP_INGRESS_URL from the nearest .testchimp/mcp.json at or above the current directory. Exported variables always win, and --bot bindings are unaffected. The file must be private to you (mode 0600, as Studio and save-creds write it); a group- or world-readable copy, such as one committed to a cloned repo, is ignored with a warning. Other runners (Playwright, k6) still need the variables exported in their own shell.
testchimp get-my-tasks --user-id <user-id> # OAuth tokens imply the user
testchimp list-tests-awaiting-verification --limit 20 testchimp get-qa-posture testchimp bot get-profile testchimp bot register-profile --role QA_ENGINEER --responsibilities "Checkout + payments" \ --capability E2E_AUTHORING --capability TEST_BATCH_FIX \ --subscriptions-json '[{"eventType":"git-push","filters":[{"field":"author","op":"eq","value":"me"}]},{"eventType":"e2e-batch-completed"}]' testchimp bot ack [ ...] --ack-url testchimp bot compat --skill-version 1.0.53
bot ack prints one eventId 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.
testchimp bot connect --project-id <id> # browser approval (OAuth, "agentwatch" scope)
testchimp bot connect --pair --project-id # or: no browser, your QA bot approves (see below) npx -y @testchimp/agentwatch query --project-id testchimp bot disconnect --project-id # forget the stored keys
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:
testchimp bot connect --pair [--project-id ] keeps a random verifier in ~/.testchimp/agentwatch/pairing.json (0600) and prints {pairingCode, expiresAtMillis}; the code is the verifier's SHA-256 (base64url).approve-agentwatch-pairing (or testchimp bot approve-pairing ).testchimp bot connect --finish-pair redeems 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.
testchimp mcp --http [--port 8080] [--host 0.0.0.0]
Stateless Streamable HTTP at POST /mcp. Every request must carry Authorization: Bearer ; 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. Req
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요