mcpField
J
Jarroba Tools · Test audit

Jarroba Tools · Test audit

ローカル
github.com/Invarato開発ツール05 日前に更新

Jarroba Tools · Test audit について

Jarroba Tools · Test audit は、テストが実際に何を検証しているか調べたい開発者向けのローカル MCP サーバーです。コードを実行せずにテストファイルを解析し、変更によるアサーションの弱体化や無効化されたテストを見つけます。

主な機能

  1. 01根拠付きのアサーション監査
  2. 02テストファイルの変更比較
  3. 03型に基づくテストケース案
  4. 04無効なテストと経過期間の検出
  5. 055言語を実行せずに解析

活用シーン

  1. 01テストが値を実際に検証するか確認
  2. 02変更でテストの保護が弱まるか確認
  3. 03型やスキーマから境界ケースを導出
  4. 04長期間無効なテストを優先して対処

MCP 対応

stdio 経由で MCP クライアントに4つのテスト監査ツールを提供します。ローカルファイルを読み取って解析し、テストやコードは実行しません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"invarato-jarroba-tools-tests": {
"command": "npx",
"args": [
"-y",
"@jarroba/mcp-tests"
],
"env": {
"JARROBA_MCP_DOMAINS": "<JARROBA_MCP_DOMAINS>"
}
}
}
}
起動コマンドnpx -y @jarroba/mcp-tests
設定が必要な環境変数
JARROBA_MCP_DOMAINSWhich tool domains to publish, comma-separated. Defaults to what this package is for. Valid: core, calc, diagram, kg, db, ai, logs, queue, project, tests, api, chip, chem, access, archsim, security, experiments, payroll. Fewer domains means less of your context window spent on tool definitions.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@jarroba/mcp-tests0.3.0

ツール

4

掲載時のツール一覧 · 4 日前に更新

パラメーター型必須説明
pathstringいいえテストファイルのパス。拡張子から言語を推定します。
textstringいいえテキスト形式のテストファイル。`path` の代わりに指定できます。
dialectsarrayいいえ独自のアサーションヘルパーです。チームで自作の expect() を使っている場合はここで宣言すると、「indeterminate」と判定されなくなります。
languageenumいいえ`path` を指定せず `text` を渡す場合は必須です。typescript | javascript | python | java | go

詳細

@jarroba/mcp-tests

テストを書くのではなく監査する MCP サーバーです。自分の作業を対象にすることを想定しています。

claude mcp add jarroba-tests -- npx -y @jarroba/mcp-tests
// Claude Desktop, Cursor, Cline, VS Code…
{ "mcpServers": { "jarroba-tests": { "command": "npx", "args": ["-y", "@jarroba/mcp-tests"] } } }

4 つのツール · コンテキストは 約 1.7k トークン · stdio、ローカルマシンで実行 · アップロードは一切ありません。

これが存在する理由

「テストを通るようにして」と指示されたエージェントには、バグを診断するか、マッチャーの範囲を広げるか、アサーションを削除するか、テストケースをスキップするか、という選択肢があります。後者のほうが手軽で、テストは成功し、作業したように見えます。

より優れたモデルを使っても解決せず、プロンプトで丁寧に頼んでも解決しません。原因は構造的なインセンティブにあります。モデルの外部に判定役が必要です。これがまさにそれです。Jarroba Tools のカタログで、呼び出した相手に異議を唱えることを目的とする唯一のツールです。

ツール

test_auditテストファイルが各ケースで実際に何をアサートしているかを示します。値をアサートしているもの、何かが存在することだけを確認しているもの、何もアサートしていないもの、無効化されているものを、それぞれの判定根拠とともに示すため、判定結果を確認できます。TypeScript、JavaScript、Python、Java、Go に対応しています。
test_diff_audit同じファイルの2 つのバージョンを比較し、その変更によってセーフティネットが強化されたか弱められたかを示します。マッチャーの範囲が広がったケース(toBe → toContain → toBeGreaterThan)、消えたアサーション、実行されなくなったケースなどを検出します。完了を宣言する前に、自分の差分に対して実行してください。
test_cases型から、書く価値のあるテストケースを導き出します。TypeScript のシグネチャまたは JSON Schema から同値分割と境界値を示し、どの手法が当てはまるか、その理由も説明します。順序がなければ境界値に意味はないため、ブール値や列挙型には境界値を適用しません。fast-check のプロパティテストに加え、5 件しか書く時間がない場合に最も重要な5 つのケースも含まれます(典型値から始まることはありません)。
test_debt無効化されたテストをすべて、git blame から取得した経過期間とともに表示します。テストランナーにとっては存在しないため、カバレッジレポートには表示されません。測定されることのない、最も長く残り続ける負債です。対応可能な形にするため、古い順に並べています。

何も実行しません。テストは実行せず、コードも評価しません。tree-sitter で解析します。

軽々しく告発することはありません

認識できないマッチャーは「アサーションなし」ではなく、必ず**「判定不能」**として返します。疑わしい場合は判断を控えます。誤った告発こそ、このようなツールが無効化される原因だからです。チーム独自の expect() がある場合は、dialects で宣言すれば、曖昧な判定はなくなります。

5 つの言語(TypeScript、JavaScript、Python、Java、Go)でラベル付けされたコーパスを使って測定した結果は、告発 21 件、そのすべてが正しく、誤検出は 0 件で、パーサーが区切りを特定できなかったケースも 0 件でした。これが測定結果の正直な規模です。ベンチマークではなく、告発 21 件です。変更のたびに再実行しているため、これは性能の主張ではなく最低ラインです。

プライバシー

トランスポートは stdio です。MCP ホストがこれをサブプロセスとして起動し、stdin/stdout 経由で通信します。エンドポイントもアカウントもテレメトリーもありません。初回は npx が npm からパッケージをダウンロードします。それ以降、外部との通信はありません。

test_audit と test_debt はファイルパスを受け取り、起動元のプロセスが読み取れるファイルを読み込みます。そのため、権限は MCP ホストとまったく同じです。test_debt は、指定したフォルダー内で git blame もシェルから実行します。経過期間はそこから取得しますが、ブラウザーでは決してできない処理です。

詳細

すべての機能(90 個のツール:パスによるログ検索、実際の一時 PostgreSQL 上のデータベース、JTD 図、SPARQL、make のシミュレーション)が必要ですか?@jarroba/mcp をご覧ください。ログだけが必要ですか?@jarroba/mcp-logs をご覧ください。

MIT — LICENSE をご覧ください。ソース:github.com/Invarato/jarroba-mcp。

このパッケージは tree-sitter の文法(MIT、サードパーティ製)を再配布しています。ライセンス表記は dist/tree-sitter/NOTICE.txt にあります。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。