Governance Gateway について
Governance Gatewayは、アクション前のプライバシー確認と安全性確認を必要とするAIエージェント向けのローカルMCPサーバーです。形式と個人データのチェックは常に実行し、低速な安全性分類は疑わしい内容で期限に間に合う場合に限って実行します。
主な機能
- 01形式と個人データの常時スキャン
- 02期限に応じた安全性チェックの実行
- 03許可・マスキング・ブロックの判定
- 04状態と最近の判定の確認
- 05負荷時のチェック遅延のシミュレーション
活用シーン
- 01エージェントの操作前にコマンドや内容を確認
- 02Claude Codeで操作前チェックを必須化
- 03ガバナンスチェックの期限内完了を評価
MCP 対応
ローカルサーバーとして、MCPクライアントに内容チェックツールと状態・ポリシーのリソースを提供します。Claude Codeの任意のフックを使うと、各操作の前にチェックできます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 2 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| text | string | はい | |
| deadline_ms | number | いいえ |
詳細
governance-gateway
AI エージェントが行動する前に実行するガバナンスチェックです。エージェントに遅れずに対応できるよう設計されています。
すべてのリクエストで形式チェックと個人データ(PII)スキャンを実行し、これらは省略されません。有害なテキストやジェイルブレイクの試みを検出する安全性分類器は、低速なオプションチェックです。低コストのスクリーニングでテキストが疑わしいと判定され、かつリクエストの期限までに完了できる場合にのみ実行されます。負荷が高いとき、すべてをチェックするガードレールは処理が追いつかず、エージェントがすでに行動した後にチェックが完了します。このガードレールは期限を守り、プライバシーチェックを決して省略しません。
MCP サーバーとしてローカルで動作するため、テキストがマシンの外に出ることはありません。また、Claude Desktop、Claude Code、Cursor、VS Code、Gemini CLI など、あらゆる MCP クライアントで使用できます。Claude Code ではオプションのフックを使って、エージェントが実行するすべてのコマンド、ファイル書き込み、ウェブリクエストにチェックを必須にできます。
インストール
uv を使えば、事前にインストールする必要はありません。
uvx governance-gateway --version
または、pip を使って pip install governance-gateway を実行し、その後 governance-gateway を実行します。
Python 3.10 以降が必要です。依存関係は mcp パッケージのみです。
AI ツールに追加する
Claude Desktop:claude_desktop_config.json(Settings > Developer > Edit Config)に追加します。
{
"mcpServers": {
"governance-gateway": { "command": "uvx", "args": ["governance-gateway"] }
}
}
Cursor:同じブロックを ~/.cursor/mcp.json(またはプロジェクト内の .cursor/mcp.json)に追加します。
Gemini CLI:同じブロックを ~/.gemini/settings.json に追加します。
VS Code(Copilot エージェントモード):.vscode/mcp.json に追加します。
{
"servers": {
"governance-gateway": { "type": "stdio", "command": "uvx", "args": ["governance-gateway"] }
}
}
Claude Code:
claude mcp add governance-gateway -- uvx governance-gateway
pip でインストールした場合は、"command": "governance-gateway" を使用し、args は指定しません。
ツール
| ツール | 説明 |
|---|---|
check_message(text, deadline_ms=100) | チェックを実行します。allow、redact(個人データをマスクした状態)、または block と、その理由、スクリーニングと分類器が実行されたかどうか、および所要時間を返します。テキストをそのまま返すことはありません。 |
governance_status() | これまでのリクエスト数、判定、平均および95パーセンタイルの遅延、期限内に完了した割合、分類器のチェックが省略またはスクリーニングで除外された割合を返します。 |
recent_decisions(limit=20) | 最新の判定と、判定結果、検出された個人データの種類、所要時間を返します。テキストは含まれません。 |
decision_matrix(...) | パイプラインの期限、トラフィックの形状、ピーク時係数、検出器の再現率、目標、コストの割合に基づき、すべてをチェックすれば十分か、適応型チェックが必要か、それとも処理能力の増強のみが有効かを判定します。 |
simulate_load(load, deadline_ms, traffic, seconds) | 計測済みのチェックコストを使い、シミュレーション時計上で「すべてをチェック」と期限対応型ガードを競わせます。 |
リソース:governance://status と governance://policy(実行されるチェック、必須のチェック、ゲートウェイの判定方法)。すべてのツールは読み取り専用です。
Claude Code でチェックを必須にする
MCP ツールは、エージェントが呼び出すことを決めたときにのみ呼び出されます。Claude Code では、代わりに PreToolUse フックを使い、すべてのアクションの前にチェックを実行できます。最も簡単な方法は governance-guard プラグインを使うことです。これにより、サーバーとフックの両方が追加されます。
/plugin marketplace add tanishq-ctrl/governance-gateway
/plugin install governance-guard@governance-gateway
または、~/.claude/settings.json(またはプロジェクトの .claude/settings.json)にフックを自分で追加します。
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash|Write|Edit|MultiEdit|NotebookEdit|WebFetch",
"hooks": [
{
"type": "command",
"command": "uvx",
"args": ["--from", "governance-gateway", "governance-gateway-hook"],
"timeout": 10,
"onFailure": "block"
}
]
}
]
}
}
フックは各アクションのテキスト(コマンド、ファイルの内容、URL)を、GSL_HOOK_DEADLINE_MS(デフォルトは 200 ms)の時間枠で、起動中のゲートウェイに送信します。
- 有害または不正な形式の場合:アクションは拒否され、その理由がエージェントに伝えられます。
- 個人データが見つかった場合:許可するかどうかを尋ねられます。
- それ以外の場合:変更はなく、通常の権限が適用されます。
ゲートウェイが起動していない場合も、フックは個人データのスキャンを独自に実行します。チェックをまったく実行できない場合、アクションはブロックされます(代わりに許可するには GSL_FAIL_OPEN=1 を設定します)。GSL_ALLOW_EMAIL_DOMAINS(デフォルトは anthropic.com, users.noreply.github.com, example.com)に指定されたドメインのアドレスは無視されるため、コミットトレーラーはそのまま通過します。
設定
| オプション | 環境変数 | デフォルト | 説明 |
|---|---|---|---|
--cascade on/off | GSL_CASCADE | on | 分類器の前に疑わしい内容のスクリーニングを実行します |
--estimator p90/mean | GSL_ESTIMATOR | p90 | 最近のチェック結果に基づく分類器のコストの推定方法です |
--workers N | GSL_GATEWAY_WORKERS | 1 | キューを処理するワーカー数です |
--audit-log PATH | GSL_AUDIT_LOG | none | 判断ごとに JSON を 1 行追記します(テキストは記録しません) |
--port N | GSL_GATEWAY_PORT | 8737 | フック用のローカルポートです(127.0.0.1 のみ) |
--no-hook-endpoint | ローカルポートを開きません |
検出対象と検出対象外
- 個人データ:パターンに基づき、メールアドレス、電話番号、米国形式の国民識別番号を検出します。氏名、住所、その他の識別情報は検出されません。
- 有害なテキスト:ToxicChat のデータで学習した TF-IDF とロジスティック回帰の分類器です。ToxicChat は、公開チャットボットに対する実際のプロンプトに人がラベル付けしたデータセットです。学習に使用していない ToxicChat のメッセージでは、有害なメッセージの約 10 件中 6 件を検出し、適合率は約 0.78 です。これは軽量な第一段階の防御策であり、完全な安全システムではありません。また、英語で学習されています。
- スクリーニングは、検証時に有害なメッセージの 95%を通過させ、通常のトラフィックの約 31%を分類器に送ります。
組織独自のデータ保護管理策の代わりではなく、それらと併用してください。
背景
このゲートウェイは、負荷の増加に伴い、ガバナンスチェックが自動化された高速な判断にどれほど遅れるかを測定した修士課程のプロジェクトから生まれました。すべてをチェックすると、最大容量で処理が破綻します。実際のチャットボットのトラフィックでは、容量の 77%で目標を達成できなくなりました。期限ルールを適用すると容量の 1.06 倍まで、スクリーニングと期限ルールを組み合わせると 1.44 倍まで対応でき、プライバシーチェックも期限内に実施できました。
Prabhu, T. S.(2026)。*エージェント型 AI エコシステムにおける「ガバナンス速度の遅れ」(GSL)の定量化:自己適応型リアルタイムデータコンプライアンスのためのシミュレーションベースのフレームワーク。*データサイエンス修士課程プロジェクト、VIT。
ソースと課題
https://github.com/tanishq-ctrl/governance-gateway
ライセンス
コード:MIT。バンドルされているモデルとワークロードデータは ToxicChat 由来であり、非営利目的でのみ使用できます(CC BY-NC 4.0)。LICENSE-DATA.md を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。