vacuous-tests-mcp
vacuous-tests-mcp
コードが何をしても通るテストを見つけるMCPサーバーです。
空虚なテストは、テストがないことよりも悪いです。テストがないことは目に見えてわかります。しかし、空虚なテストはスイートの中に存在し、グリーンで実行され、合計に数えられ、動作がカバーされている証拠として引用されます。実際には何もチェックしていないのにです。それは、目に見えない形で欠けているカバレッジであり、テストが存在するまさにその状況を生き延びます。
これらは偶然書いてしまいやすく、読んで見つけるのは難しいです。なぜなら、空虚なテストと本物のテストはしばしばほぼ同じに見えるからです。
このケースが作られた背景
6,764行のRustファイルがあり、そのプロジェクトのテストスイートはすでに定期的な手動監査の対象でした。その中の2つのテスト:
// flagged
const SRC: &str = include_str!("lib.rs");
assert!(SRC.contains("pub sas_verified: bool,"), "the field must be exposed");// not flagged
const SRC: &str = include_str!("lib.rs");
let prod = SRC.split_once("\n#[cfg(test)]\nmod tests {").expect("test module").0;
assert!(prod.contains("InviterSecrets::create_for_group("), "production never calls it");どちらもファイル自身のソースを埋め込んでいます。最初のテストはSRCに対して直接アサートしています。そしてSRCにはテスト自体が含まれており、検索対象の文字列そのものも含まれています。これは構造的に真です。主張している本番コードを削除しても、グリーンのままです。2番目のテストは、まずテストモジュールを切り離し、本番スライスのみに対してアサートするため、本番コードが変更されると失敗します。こちらは本物のゲートです。
そのファイルをスキャンすると、1件の検出が正しい行に報告され、他の4つのinclude_str!サイトはそのまま残ります。スキャナーはinclude_str!をパターンマッチングするのではなく、バインディングを追跡するため、2つのケースを区別できます。
Related MCP server: leakguard-mcp
ルール
ルール | 重大度 | 検出内容 |
| 高 | テストが自身のソースを埋め込み、リテラルがその中に現れるとアサートします。リテラルはアサーション内にあるため、決して失敗しません。 |
| 高 | いかなる種類のアサーションもありません。パニックまたはスローだけがテストを失敗させられるため、間違っているが静かな動作は通過します。 |
| 高 |
|
| 高 | 失敗するものが本文にありません。 |
| 情報 |
|
言語
言語 | 方法 | 精度 |
Python | 標準ライブラリの | 正確 |
Rust | ソーステキストに対するブレースマッチングスキャナー | ヒューリスティック |
JavaScript / TypeScript | ソーステキストに対するブレースマッチングスキャナー | ヒューリスティック |
RustとJSのスキャナーは、マッチングの前に文字列リテラルとコメントをマスクするため、文字列内の{やコメントアウトされたアサーションが誤解を招くことはありません。これらは、ケースを見逃すように調整されており、作り出すことはありません。ここでは、誤検知は誤検知よりもコストがかかります。最初の間違った回答が、人々に出力を無視することを教えるからです。
すべての検出結果は、判定ではなく確認すべき質問として扱ってください。それぞれがファイルと行を指定しているため、確認には数秒しかかかりません。
インストール
まだPyPIにはありません — ソースからインストールしてください:
git clone https://github.com/zegroged/vacuous-tests-mcp
cd vacuous-tests-mcp
pip install .これでvacuous-tests-mcpコマンドがPATHに追加されます。
MCPクライアントから使用する
クライアントのMCP設定に追加します:
{
"mcpServers": {
"vacuous-tests": {
"command": "vacuous-tests-mcp"
}
}
}Claude Codeの場合:
claude mcp add vacuous-tests -- vacuous-tests-mcp次に、スキャンを依頼します:
./src をスキャンして、失敗できないテストを探してください。
ツール
scan_tests(path, include_skipped=True, max_findings=100)
ファイルまたはディレクトリを走査し、失敗できないテストを報告します。ビルドおよび依存関係ディレクトリ(target、node_modules、.venvなど)はスキップされます。検出結果は重大度の高い順に返され、それぞれにパス、行、テスト名、ルール、スニペットが含まれます。
list_rules()
説明付きのすべてのルール。モデルが何を要求するかを決定できるようにします。
explain_rule(rule)
1つのルールが何を検出し、検出結果が通常どのように解決されるか。
サーバーは読み取りのみを行います。ファイルを書き込まず、スキャンするコードを実行せず、指定されたパスの外を見ることはありません。
開発
pip install -e ".[dev]"
pytestスイートは各言語の各ルールをカバーし、さらに重要なことに、空虚なテストの隣にある通常のテストが報告されないことをチェックします。また、サーバーをサブプロセスとして起動し、実際のMCPハンドシェイクを通じて駆動するエンドツーエンドテストもあります。これにより、プロトコル層が想定ではなくカバーされます。
制限事項
RustおよびJS/TSの検出はテキストベースであり、パースではありません。マクロ生成テスト、異常なフォーマット、深くネストされたクロージャは見逃される可能性があります。
no-assertionsは、テストがパニックしないことを証明するためだけに存在する可能性があることを認識しません。そのようなテストは、ルール上は真陽性であり、意図上は偽陽性です。明示的なアサーションでそれを示せば、静かになります。上記の表の言語のみがスキャンされます。他のファイルは無視され、推測されません。
ライセンス
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Related MCP Servers
- FlicenseAqualityCmaintenanceAI-powered code review tool that detects AI-generated code defects invisible to traditional linters — hallucinated packages, deprecated APIs, cross-file contradictions, hidden security anti-patterns, and over-engineering. Works as a standalone CLI, GitHub Action, or MCP server. Supports TypeScript, Python, Java, Go, and Kotlin. Free for individuals, no API key required.433
- AlicenseAqualityAmaintenanceStatic-analyzes Python code for lookahead bias and data leakage, preventing invalid backtests in time-series ML.5MIT
- AlicenseAqualityBmaintenanceOn-demand micro-mutation sandbox for AI test verification that maps weaknesses in unit tests by running isolated mutation testing via the Model Context Protocol.342MIT

OrangePro MCPofficial
AlicenseAqualityAmaintenanceAnalyzes code to map behaviors, identify untested gaps, and generate grounded integration tests that actually run.81564317MIT
Related MCP Connectors
Flaky test detection, root cause analysis, and fix suggestions for development teams.
Deterministic validation for AI-generated artifacts: JSON Schema, OpenAPI response, SQL syntax.
Zero-config MCP security scanner for AI-generated apps. 25K+ vulnerability patterns.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/zegroged/vacuous-tests-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server