Sentinel
Sentinel
MCPサーバーのためのセルフホスト型ガバナンスレイヤー。 Sentinelは、AIエージェントとその呼び出すツールの間に立ち、すべてのリクエストをポリシーに照らして評価し、何が起きたかの監査証跡を書き残します。
完全に自分のマシン上で動作します。必須の依存はPostgresのみ — APIキーも、クラウドアカウントも、外部への通信も一切不要です。
agent ──▶ Sentinel proxy ──▶ policy engine ──▶ MCP server
│
└──▶ audit log存在理由
エージェントに一連のMCPツールを与えるということは、そのエージェントに行動する能力を委ねることです。しかし、ほとんどのセットアップは次の3つの問いに答えられていません。
このエージェントはどのツールを、どのような条件下で呼び出し許可されるのか?
実際にそれは何を実行したのか?
本番環境に触れた操作を承認したのは誰か?
Sentinelは、呼び出しごとに条件を評価するポリシーエンジン、変更前後のスナップショット付きの追記型監査ログ、機微として指定した操作を対象とする承認ワークフローという3つの仕組みによって、そのすべてに答えます。
同梱内容
機能 | 説明 |
ポリシーエンジン | 条件ツリーによるALLOW/DENYルール。DENYは常に優先され、後続のALLOWで上書きすることはできません |
条件 | SIMPLE(フラットな配列)とADVANCED(ネストしたAND/OR式ツリー)の2つのモード |
MCPプロキシ | HTTP、STDIO、WebSocket、SSEのマルチトランスポート対応 |
監査ログ | すべてのツール呼び出し、ポリシー変更、認証イベント、管理アクションを変更前後スナップショット付きで記録 |
マルチテナンシー | 組織 → ワークスペース → メンバー。クエリレイヤーでスコープされます |
承認 | ツールを機微としてフラグし、人間の承認が完了するまで呼び出しをブロック |
認証情報 | 上流サーバーの認証情報をAES-256-GCMで保存時に暗号化 |
管理用MCPサーバー | Sentinel自体をエージェントが管理できる40のツール |
A2Aプロキシ | Agent-to-Agentプロトコルのサポート |
Web UI | 機能が揃った管理コンソールとユーザーコンソール |
クイックスタート
Node 20+、pnpm、Postgresが必要です。
git clone https://github.com/gong8/sentinel-oss.git
cd sentinel-oss
cp .env.example .env # generate secrets, point DATABASE_URL at your Postgres
pnpm setup # install, generate client, push schema, seed
pnpm devPostgresが要なら、docker compose up -d postgres で起動できます。
これで以下が利用できます:
サービス | URL |
Webコンソール | |
ドキュメントサイト | |
API | |
MCPプロキシ | |
管理用MCP |
シード処理は、3人のユーザーを持つ Acme Corporation 組織を作成し、そのアクセストークンを表示します。再表示したいときはいつでも pnpm db:creds を実行してください。
エージェントに接続させる
MCPクライアント設定にプロキシを追加してください:
{
"mcpServers": {
"sentinel": {
"url": "http://localhost:3001/mcp",
"headers": { "Authorization": "Bearer YOUR_ACCESS_TOKEN" }
}
}
}Webコンソールで上流サーバーを登録し、それらのツールに対してポリシーを書けば、以降すべての呼び出しはポリシーエンジンを通過します。
オプション: エージェント機能
Sentinelには組み込みの管理エージェントがあり、チャットで会話しながら設定できます。これにはLLMが必要ですが、完全にローカルなものも含めて複数のプロバイダをサポートしており、APIキーを購入する必要は一切ありません。
Ollama や任意のOpenAI互換エンドポイント(LM Studio、llama.cpp、vLLM) — ローカルで無料
Anthropic、OpenAI、Gemini — キーを持ち込みたい場合向け
Sentinelの他のすべての機能はインターLLMを一切設定しなくても動作します。
アーキテクチャ
pnpm + Turborepoで構成されるモノレポです。
パッケージ | 行数 | 説明 |
| ~54k | tRPC API — サービス、ルーター、ポリシー評価、監査 |
| ~4k | React (admin + user console) |
| ~24k | Reactの管理・ユーザーコンソール |
| ~11k | ドキュメントサイト |
| ~6k | 共有型、条件評価、管理ツール定義 |
| ~4.7k | MCPプロキシサーバー(HTTP、STDIO、WebSocket、SSE) |
| ~3.3k | Prismaスキーマ — 67モデル |
| ~2.5k | Agent-to-Agentプロトコルのプロキシ |
| ~1.7k | 管理MCPサーバー(40ツール) |
あわせてソースは約 179k行、テストは 163k行 が218のテストファイルにあります。
最も再利用可能な部品は packages/api/src/services/policyCondition.ts — 約1,300行の条件ツリー評価器で、Zodとロガー以外に依存がなく、MCP・Prisma・Sentinelの知識が不要です。このため、ポリシー式が必要なあらゆるプロジェクトに簡単に移植できます。
より深いドキュメントは docs/ にあります — docs/README.md から始めましょう。
テスト
pnpm test:unit # no database needed
pnpm test:integration # requires TEST_DATABASE_URL
pnpm test:security # tenant isolation, DENY precedence
pnpm test:e2e # Playwright
pnpm check # format, lint, types, testsプロジェクト規約
このコードベースには、絶対に曲げないルールがいくつかあり、.claude/hooks/ のリント設定とgitフックで強制しています:
as型アサーションは禁止(ただしas constを除く)。anyも@ts-ignoreもeslint-disableも禁止すべてのデータベースクエリは
organizationIdにスコープされるすべての入力をZodで検証する
認証情報は保存前に必ず暗号化する
機微的な操作は監査ログに記録され、管理操作は変更前後のスナップショット付きで記録される
DENYポリシーはバイパスできず、それが明示的にテストされている
完全な開発ガイドは CLAUDE.md を参照してください。
コントリビューション
CONTRIBUTING.md をご覧ください。セキュリティ上の問題は SECURITY.md へ報告してください。
ライセンス
GNU AGPL-3.0。変更を加えたSentinelをネットワークサービスとして提供する場合、その変更内容を利用者が入手できるようにしなければなりません。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
See, price, and control every tool call your AI agents make: policy checks, cost, and audit tools.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Hosted MCP server for agent governance: MCP config audits, injection scans, scope-policy checks.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/gong8/sentinel-oss'
If you have feedback or need assistance with the MCP directory API, please join our Discord server