Aegis
Aegis MCP ガバナンスレジストリ
Aegis は、テナント対応 MCP ツールを統制するための本番指向のリファレンス実装です。意図的に範囲を限定した 2 つの Streamable HTTP リファレンスエンドポイントと、セキュアなレジストリダッシュボード、ポリシー判定結果、短時間有効な人間による承認フロー、および改ざん検知可能な監査台帳を組み合わせています。顧客システムへの接続や操作は行いません。
デモンストレーション可能な機能
機能 | このリポジトリでの実装 |
リファレンス MCP エンドポイント |
|
機能の検出 | 各エンドポイントは |
テナントとスコープの強制 | ベアラートークンアダプタが、すべての MCP ツール呼び出しの前にテナント、プリンシパル、スコープを解決します。 |
ポリシーゲート | ローカルポリシー評価器がスコープとペイロード上限を強制します。 |
人間による承認 |
|
監査可能性 | ポリシー、承認、実行アクティビティは、編集され、アプリケーションサーフェスを通じて追加専用となり、テナント分離され、ハッシュチェーンで連結されます。 |
オペレーターコンソール | 認証済みユーザーは、レジストリサービス、テナント、ポリシー、承認、監査台帳を検査できます。管理者はリファレンスサービスの検証と有効化/無効化、および承認判断を行うことができます。 |
この実装は、そのトランスポートとリソース検出の形状を MCP Streamable HTTP および認可仕様に合わせています。[1] [2] そのプライベートレジストリメタデータは内部拡張であり、公開 MCP レジストリの server.json 形式として提示されるものではありません。[3]
Related MCP server: agent-mcp-workflow-platform
ローカル開発
Node.js 22+ と MySQL 互換データベースが必要です。ホストに必要な環境値をコピーし、依存関係をインストールして、アプリを起動します。
pnpm install
pnpm drizzle-kit generate
pnpm db:push
pnpm devサービスが起動したら、ダッシュボード URL にアクセスしてサインインします。シードレコードは、ガバナンスエンドポイントまたはダッシュボードクエリがレジストリに初めてアクセスしたときに遅延作成されます。リファレンスインターフェースは決定論的シードデータのみを使用し、実際の顧客システムは使用しません。
MCP クイックスタート
ローカル開発中、デモトークンは以下の正確な形式を取ります。これらは開発用アダプタであり、OAuth の代替ではありません。
demo|northstar|demo:alice|project:read,incident:read,metrics:read,change:writeエンドポイント契約を確認するには、サービス起動後に同梱のスモークテストを実行します。
pnpm exec node scripts/mcp-smoke.mjs直接 JSON-RPC ツール呼び出しを発行するには:
curl -sS -X POST http://localhost:3000/mcp/read \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer demo|northstar|demo:alice|project:read' \
-H 'MCP-Protocol-Version: 2026-07-28' \
-H 'Mcp-Method: tools/call' \
-H 'Mcp-Name: project.search' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"project.search","arguments":{"query":"telemetry"},"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28"}}}'書き込みエンドポイントも /mcp/write で同じ契約に従いますが、change.create は最初に承認レコードを作成します。Aegis コンソールから承認し、昇格が失効する前に同一の呼び出しを再送信します。
初心者向けデプロイ: TiDB Cloud + Render
これは、学習環境やポートフォリオ環境向けの推奨される低コストデプロイパスです。TiDB Cloud Starter は MySQL 互換であり、パブリック接続には TLS が必要です。一方、Render はこの Node アプリケーションを Web サービスとしてホストできます。[4] [5] Render の無料サービスはアイドル時にスリープできるため、非アクティブ後の最初の訪問は時間がかかることがあります。[6]
A. TiDB Cloud の作成と接続
Starter インスタンスを作成し、支出制限を 0 に設定します。インスタンスページで右上の Connect をクリックし、Public を選択したまま、General を選択し、パスワードを生成します。パスワードは秘密に保ちます。
B. Render Web サービスの作成
このリポジトリを GitHub にプッシュした後、Render ダッシュボードを開きます。右上の + New をクリックし、Web Service を選択し、このリポジトリの横にある Connect をクリックして、以下の正確な値を使用します。
Render フォームフィールド | 値 |
Name |
|
Branch |
|
Language |
|
Build Command |
|
Start Command |
|
Instance Type |
|
Root Directory | 空のまま |
C. Render 環境変数の追加
同じ Render フォームで、Advanced を開きます。Environment Variables の下に、以下の各行を追加します。シークレット値を GitHub やスクリーンショットに置かないでください。
Key | 値 |
| この形式の TiDB URL: |
|
|
|
|
|
|
| 新しく生成された長いランダムシークレット。 |
| デプロイ後にダッシュボードに入力する、別の長いパスワード。 |
|
|
データベース URL はプライベートです。TiDB Cloud Starter はパブリック接続に TLS を必要とし、アプリの TIDB_ENABLE_SSL=true 設定がそれを有効にします。[5]
フォームの下部にある Create Web Service をクリックします。Render はサービスの Events ページを開きます。ステータスが Live になるまで待ち、表示された onrender.com リンクをクリックします。最初の訪問時に、DASHBOARD_ACCESS_KEY に設定した値を入力し、Open dashboard をクリックします。
D. 検証
ダッシュボードが開いたら、Registry、Approvals、Audit ledger にアクセスします。MCP クライアント用に実際の OAuth アクセストークンバリデータを意図的に設定した後にのみ、Render URL でスモークテストを使用してください。デモトークンはデフォルトで無効になっています。
検証と負荷テスト用スキャフォールド
すべてのリリース前にアプリケーションテストを実行します。
pnpm check
pnpm test
pnpm exec node scripts/mcp-smoke.mjs負荷テスト用スキャフォールドは独立した JSON-RPC リクエストを送信します。これは、ロードバランサー背後にあるステートレスな Streamable HTTP デプロイの検証に適しています。100 リクエストと 20 の同時クライアントから開始し、デプロイを 2 番目のレプリカにスケーリングした後に繰り返し、p50/p95 レイテンシとエラーレートを比較します。
CONCURRENCY=20 REQUESTS=100 pnpm exec node scripts/load-test.mjs公式プロトコル適合性テストを実行するには、現在の公式 MCP 適合性スイートを別途インストールし、/mcp/read と /mcp/write の両方に対して実行します。そのバージョン付き出力をリリース証拠として保持してください。このリポジトリのスモークスクリプトは意図的に範囲が狭く、そのスイートを置き換えるものではありません。
プラットフォームの拡張
server/governance.ts の defaultToolRows にレジストリレコードとスキーマを挿入し、simulatedToolOutput を拡張し、テストを追加してスモークスクリプトを再実行することで、新しい安全なリファレンスツールを追加できます。実際の統合は最小権限のサービスアイデンティティの背後に置き、編集された結果のみを返すべきです。
server/mcp.ts のデモベアラーアダプタを、設定された発行者に対する JWT 検証に置き換えるか、API ゲートウェイで検証を実行します。MCP 認可仕様は、認可をサポートする HTTP ベースの実装が OAuth リソースサーバーとして動作し、保護されたリソースメタデータを公開することを期待しています。[2] 本番の監査保持のため、ハッシュチェーンイベントをイミュータブルなオブジェクトストレージまたは SIEM にエクスポートし、データベース認証情報を制限して、サービスプリンシパルが auditEvents に対する更新/削除権限を持たないようにします。
参考文献
[1] Model Context Protocol — Streamable HTTP
[2] Model Context Protocol — Authorization
[3] Model Context Protocol — Registry overview
[4] TiDB Cloud — Select Your Plan
This server cannot be deployed
Maintenance
Related MCP Connectors
Governed MCP gateway: one endpoint for your tools, with credential custody and audit log.
Human-in-the-loop review and approval for AI agents. Audit trail, approval policies, native MCP.
Remote MCP for Copilot CLI switch gate MCP, structured receipts, audit logs, and reviewer-ready evid
- gatewayOAuthai.sealgate
MCP gateway with runtime security policy, tool-call-level control, and audit of agent actions.
Related MCP Servers
- AlicenseBqualityBmaintenanceA governance and policy enforcement gateway for MCP servers that provides hard guardrails, dynamic parameter bounds, human-in-the-loop approvals, and audit telemetry.25 npmMIT
- FlicenseNot gradedqualityCmaintenanceEnables approval-gated incident response workflows that gather evidence through read-only MCP tools, perform idempotent writes, and preserve a durable audit trail.-
- AlicenseNot gradedqualityBmaintenanceEnforces fine-grained, context-aware access control on MCP tool calls, with a tamper-evident, replayable audit log that records denials and verifies every decision.MIT
- AlicenseAqualityDmaintenanceEnables policy-governed MCP interactions with deterministic authorization, tenant isolation, minimized PII exposure, and human approval gates for sensitive mutations, while producing structured audit events.3MIT