プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Test Genie

作者:MUSE-CODE-SPACEバージョン 2.0.3i★ –iパソコンで動く
レジストリ名io.github.MUSE-CODE-SPACE/test-genie

インストール

概要

作者による説明(英語の原文)

AI-powered app test automation for iOS, Android, Flutter, React Native, Web

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: その他

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • レジストリには、入力が必要なキーは載っていません。

必要なもの

  • npmNode.jsのインストール(npxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "test-genie": {
      "command": "npx",
      "args": [
        "-y",
        "test-genie-mcp"
      ]
    }
  }
}

ターミナルでこれを実行します

claude mcp add test-genie -- npx -y test-genie-mcp

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "test-genie": {
      "command": "npx",
      "args": [
        "-y",
        "test-genie-mcp"
      ]
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "test-genie": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "test-genie-mcp"
      ]
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント MUSE-CODE-SPACE で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

その他のほかのサーバーとの比較i

  • このカテゴリのほかの32417件のうち0%よりスターが多い
  • このカテゴリのほかの32417件のうち1%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの32417件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Test Genieは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(2.0.3)がレジストリに届いたのは10 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:Spec Driven Development, Remote Desktop Commander, FOGA node

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

クラウドで動く★ 211昨日更新
インストール

FOGA node

作者:garyyang-finchip

A Finch OG Agent cell as an MCP server: read the world, dry-run and take ERC-8414 tenders by policy.

パソコンでもクラウドでも今日更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

test-genie-mcp

Built for vibe coders: one command, get a prioritized list of what's actually broken about your project.

Self-healing test automation for iOS, Android, Flutter, React Native and Web apps — as an MCP server.

v3.1.1 — vibe-check + honest auto-fix. One MCP call, ~30 seconds: race conditions + security issues + memory leaks + logic errors + perf smells, prioritized. Stays on your machine, no telemetry. Pass autoFix: true for the small, safe mechanical fixes (weak-hash, simple Math.random assignment) — backup + syntax-validate + rollback-on-syntax-fail. For test-verified application of harder fixes, use v3.0.0's iterate-fix loop.


Vibe coders quickstart

You don't read the docs. You open the project, talk to Claude, and want a verdict. Here it is:

In Claude (with test-genie-mcp installed — setup):

/vibe-check /Users/me/my-app

Claude calls diagnose_project under the hood. ~30 seconds later you see:

# vibe-check report
  • Project: /Users/me/my-app
  • Platform: web
  • Findings: 11 total — 4 critical, 4 high, 1 medium, 1 low
  • Estimated fix time: ~85 min

Top 5 issues

1. [CRIT] Hardcoded AWS access key id found in source
  • File: server.js:7
  • Category: security / secret (CWE-798)
  • Confidence: 95%
  • Fix: Move the value to an env var, gitignore the config, rotate the leaked key.
2. [CRIT] SQL string built by concatenating user input
  • File: server.js:21
  • Category: security / injection (CWE-89)
  • Fix: Use parameterized queries (db.query("... WHERE id = ?", [id])).
3. [HIGH] useState setter called after await without mount guard
  • File: UserProfile.tsx:16
  • Category: race-condition / react-setstate-after-await (CWE-362)
  • Confidence: 78%
  • Fix: Use AbortController and check signal.aborted before calling setters.

… (top 5 shown — full list at output: "detailed")

Next steps

  1. Address the critical / high findings above.
  2. Re-run diagnose_project after fixing to confirm convergence.
  3. Use run_iterative_fix_loop for test-driven verification of each fix.

If any finding is autoFixable: true and is at high/critical severity, the diagnose_project call accepts autoFix: true to apply the mechanical replacement directly (with backup + syntax validation — see SAFETY.md for the exact guards). The v3.1.1 honest scope is narrow: weak hash (createHash('md5'|'sha1') → createHash('sha256')) and standalone Math.random() in security-sensitive files. For broader/structural fixes (race conditions, eval, exec injection) run run_iterative_fix_loop separately — it re-runs tests and auto-rolls-back on regression.


Why test-genie?

The bottleneck in mobile + cross-platform test automation isn't writing tests — it's the loop *between* a failing test and a passing test. test-genie closes that loop:

failing test → analyzer flags issue → fix proposed → dry-run + syntax check →

applied with backup → affected tests re-run → regression check → loop or stop

This full loop is the run_iterative_fix_loop tool. The diagnose_project autoFix: true path in v3.1.1 covers a strict subset — backup + dry-run + syntax-validate + apply, without re-running tests (so no test-regression rollback in that path). Use the right tool for the job — and see SAFETY.md for the exact guards on each.

Other tools (Detox, Maestro, Playwright, xcodebuild test) run tests. test-genie **runs tests *and* drives the fix until the bar is met or it can no longer make progress** — without you scrubbing through stack traces.


5-minute Quickstart

# 1. Install

npm install -g test-genie-mcp

2. Add to Claude Desktop config (~/.config/claude/claude_desktop_config.json)

{ "mcpServers": { "test-genie": { "command": "npx", "args": ["test-genie-mcp"], "env": { "TEST_GENIE_ALLOWED_ROOT": "/path/to/your/project" } } } }

3. Restart Claude Desktop. From a chat:

"Run the iterate-fix loop on /Users/me/my-rn-app with autoApply=false"

Expected output (truncated):

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Iterative fix loop f8b3… — PAUSED-FOR-CONFIRMATION ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Iterations completed: 1 Fixes applied: 0 Regressions rolled back: 0 Final tests: 7/10 passing (3 failing)

Pending confirmations (3):

  • 71fbe…: Fix: useEffect missing cleanup for setInterval (confidence: 85)
  • 92ad1…: Fix: Force-unwrap on possibly-undefined name (confidence: 85)
  • …

Resume token: f8b3…

Re-call with autoApply: true (or resumeToken: "f8b3…") to actually patch the files.


Real use cases

The flows below describe the `run_iterative_fix_loop` path (v3.0

headline) — full detect → propose → dry-run → apply-with-backup →

re-run-tests → rollback-on-regression. The diagnose_project autoFix

path in v3.1.1 is the narrower mechanical-replacement-only path; see

SAFETY.md §4 for what that one actually touches.

1. React Native memory-leak self-healing

A team adds setInterval(...) in a useEffect and forgets cleanup. test-genie's detect_memory_leaks flags it, suggest_fixes proposes return () => clearInterval(id) (src/tools/fixing/suggestFixes.ts:169-179), the loop dry-runs the patch through the TS compiler, applies with backup, re-runs only the affected snapshot test, confirms 100% pass, stops. Before: 1 failing snapshot. After: 0 failing, 1 fix applied, 1 backup at .test-genie-backups/.

2. Flutter widget dispose() automation

AnimationController left undisposed. test-genie sees the missing dispose() override, generates a Dart @override dispose() { controller.dispose(); super.dispose(); } block (suggestFixes.ts:214-217), runs dart analyze on the patched file, applies, re-runs flutter test, converges.

3. iOS retain-cycle (closure capture)

self.timer = Timer.scheduledTimer(...) { _ in self.tick() } — rule-based detector flags closure self-capture, fixer rewrites to [weak self] _ in guard let self = self else { return }; self.tick() (suggestFixes.ts:239-242). If swiftc is on PATH the syntax check is real; otherwise test-genie reports "downgraded validation" so you know.


How the iterate-fix loop works

┌────────────────────┐

│ collect tests │ (run_scenario_test / supplied list) └─────────┬──────────┘ │ pass-rate ≥ threshold? ── yes ──▶ SUCCESS │ no ▼ ┌────────────────────┐ │ detect issues │ memory + logic analyzers └─────────┬──────────┘ │ ┌────────────────────┐ │ suggest fixes │ rule-based (default) → LLM (hybrid, optional) └─────────┬──────────┘ │ ┌────────────────────┐ │ dry-run + syntax │ TS compiler API / platform compiler / brace check └─────────┬──────────┘ │ ┌────────────────────┐ │ apply with backup │ per-file .test-genie-backups/ └─────────┬──────────┘ │ ┌────────────────────┐ │ re-run tests │ regression? yes → auto-rollback └─────────┬──────────┘ │ ▼ loop (≤ maxIterations, ≤ totalTimeout)

See [docs/ITERATE_FIX_LOOP.md](docs/ITERATE_FIX_LOOP.md) for a sequence diagram and the full safety-guard list.


Tools (23)

#ToolMode
1analyze_app_structurereal
2generate_scenariosreal
3create_test_planreal
4run_scenario_testhybrid
5run_simulationsimulated
6run_stress_testhybrid
7detect_memory_leaksreal
8detect_logic_errorsreal
9suggest_fixesreal
10confirm_fixreal
11apply_fixreal
12rollback_fixreal
13run_full_automationhybrid
14run_iterative_fix_loop (v3.0 headline)hybrid
15generate_reportreal
16get_pending_fixesreal
17get_test_historyreal
18analyze_performancereal
19analyze_code_deepreal
20generate_cicd_configreal
21`diagnose_project` (v3.1 headline — vibe-check)real
22detect_race_conditionsreal
23detect_security_issuesreal

mode legend in [docs/SIMULATION_VS_REAL.md](docs/SIMULATION_VS_REAL.md).

Plus 4 resources (test-genie://iteration-logs, …/test-history/{path}, …/iteration-logs/{loopId}, …/applied-fixes/{path}) and 3 prompts (full-test-pipeline, diagnose-failure, vibe-check).


What vibe-check catches

Race conditions (detect_race_conditions / diagnose_project):

PatternLanguageSeverityAuto-fixable (v3.1.1)
useState setter called after await without mount guardTS/JS/Reacthighno (structural)
useEffect with async fetch, no AbortController/cleanupTS/JS/Reacthighno (structural)
arr.forEach(async ...) (silent fire-and-forget)TS/JSmediumno (ordering-sensitive)
Adjacent fetches without Promise.all / sequencingTS/JSmediumno
TOCTOU: existsSync then readFileSync without lockTS/JS Nodemediumno
Non-atomic counter increment in async contextTS/JSlowno
@Published mutation outside @MainActorSwiftmediumno
Concurrent DispatchQueue writes without .barrierSwiftmediumno
MutableStateFlow mutated off Dispatchers.MainKotlinmediumno
Flow collected without flowOnKotlinlowno
Goroutine + shared map without sync.MutexGohighno

v3.1.1 honesty audit: useEffect-no-abort and forEach-await were

previously advertised as auto-fixable. They are not — wrapping with

AbortController or rewriting to Promise.all(arr.map(...)) changes

behavior we can't verify statically. They are now report-only. See

SAFETY.md.

Security (detect_security_issues / diagnose_project):

PatternSeverityCWEAuto-fixable (v3.1.1)
Hardcoded AWS / Stripe / GitHub / Google / Slack tokencritical / highCWE-798no (rotate)
Hardcoded JWT secret literalhighCWE-798no
API token in URL query stringhighCWE-200no
.env file present but not gitignoredhighCWE-538no (rotation must follow)
SQL string concat with req.params / req.bodycriticalCWE-89no
innerHTML / dangerouslySetInnerHTML with dynamic valuehighCWE-79no
eval() / new Function() with non-literalcriticalCWE-95no
Math.random() in security-sensitive file, standalone assignmenthighCWE-338yes (crypto.randomInt)
Math.random() mixed into arithmetichighCWE-338no (semantic)
`createHash('md5'\'sha1')` in security-keyword filehighCWE-327yes ('sha256')
`createHash('md5'\'sha1')` elsewheremediumCWE-327no (below severity floor)
child_process.exec with user-input template literalcriticalCWE-78no
fetch(req.query.url) (SSRF)highCWE-918no
CORS * origin + Allow-Credentials: truehighCWE-942no
Cookie set without httpOnly / secure / sameSitelowCWE-1004no
yaml.load without safe schemamediumCWE-502no

v3.1.1 honesty audit: .env/Math.random (general)/yaml.load were

previously advertised as auto-fixable. They were either too risky to

rewrite blindly or no strategy shipped — flipp

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く