mcpField
H
harness-mcp-scan

harness-mcp-scan

github.com/ruvnetセキュリティ80.0k236 回インストール今日更新
リポジトリ

harness-mcp-scan について

harness-mcp-scanは、宣言されたMCPサーバーとツールを静的に検査し、ポリシー、権限、依存関係の問題を見つけるスキルです。リポジトリの保守担当者やCI向けで、ツールを実行せず、JSONまたはMarkdownで結果を出力します。

主な機能

  1. 01宣言済みMCPサーバーとツールの列挙
  2. 02ポリシー、権限、依存関係の問題検出
  3. 03設定可能な重大度での失敗判定
  4. 04JSONまたはMarkdownでの出力
  5. 05harness未使用時のグレースフルな縮退

活用シーン

  1. 01CIでのMCP設定検査
  2. 02JSON成果物としての検出結果レビュー
  3. 03harnessがローカルにある環境でのスキャン実行

MCP 対応

宣言されたMCPサーバーとツールを静的に検査します。ツールの呼び出しや実行は行いません。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ruvnet/ruflo --skill harness-mcp-scan

インストール後、Claude Code で/harness-mcp-scanを入力して読み込まれたか確認します。

詳細

すべての宣言済み MCP サーバーとツールを列挙し、ポリシー/権限/依存関係の問題を検出するために harness mcp-scan を呼び出します。ツールは一切実行せず、純粋な静的解析を行います。

アルゴリズム

実装:scripts/mcp-scan.mjs。

  1. 固定された harness バイナリ(metaharness@~0.4.1。ローカルインストール、または一度だけ作成される ~/.ruflo/metaharness-cache-<pin> キャッシュから解決し、@latest は使用しません)を呼び出します:harness mcp-scan <path> --json。
  2. { severity, id, server, tool, message } を含む findings[] を解析します。
  3. --fail-on <severity>:指定レベル以上の検出結果がある場合は、終了コード 1 で終了します。デフォルトは high です。
  4. JSON(デフォルト)または Markdown テーブルを出力します。

重大度ランク

重大度ランク
low1
medium2
high3

--fail-on high(デフォルト)は HIGH の場合のみ失敗します。--fail-on medium は MEDIUM でも失敗し、--fail-on low は検出結果があれば失敗します。

CI との統合

- name: MCP static scan
  run: node plugins/ruflo-metaharness/scripts/mcp-scan.mjs --fail-on high

CI が監視するのは終了コードのみです。JSON 出力は、人によるレビュー用のアーティファクトとして保存されます。

グレースフルデグラデーション

harness バイナリを利用できない場合(ネットワークなし、レジストリへのアクセスがブロックされている場合)、構造化データ { degraded: true, reason: 'metaharness-not-available' } を出力して、終了コード 0 で終了します。Ruflo はそのまま動作を継続します。これは ADR-150 によるアーキテクチャ上の制約です。

コメント