Aegis
Aegis MCP Governance Registry
Aegis — это производственно-ориентированная эталонная реализация для управления MCP-инструментами с учётом тенантов. Она объединяет два намеренно ограниченных эталонных конечных точки Streamable HTTP с защищённой панелью реестра, результатами политик, короткоживущим потоком одобрения человеком и защищённым от несанкционированного доступа журналом аудита. Она не подключается к клиентским системам и не управляет ими.
Что можно продемонстрировать
Возможность | Реализация в этом репозитории |
Эталонные конечные точки MCP |
|
Обнаружение возможностей | Каждая конечная точка имеет внутренние метаданные возможностей по адресу |
Обеспечение тенанта и областей | Адаптер bearer-токена разрешает тенант, принципала и области перед каждым вызовом MCP-инструмента. |
Шлюз политик | Локальный оценщик политик обеспечивает соблюдение областей и ограничений полезной нагрузки. Установка |
Одобрение человеком |
|
Аудируемость | Действия политик, одобрений и выполнения редактируются, доступны только для добавления через поверхность приложения, изолированы по тенантам и связаны хеш-цепочкой. |
Консоль оператора | Аутентифицированные пользователи могут просматривать сервисы реестра, тенантов, политики, одобрения и журнал аудита. Администраторы могут проверять и включать/отключать эталонные сервисы и принимать решения об одобрении. |
Реализация согласует свою форму транспорта и обнаружения ресурсов со спецификациями MCP Streamable HTTP и авторизации.[1] [2] Её частные метаданные реестра являются внутренним расширением; они не представлены как публичный формат server.json реестра MCP.[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-приложение как веб-сервис.[4] [5] Бесплатные сервисы Render могут переходить в спящий режим при простое, поэтому после бездействия первый визит может занять больше времени.[6]
A. Создайте и подключите TiDB Cloud
Создайте экземпляр Starter с лимитом расходов, установленным на 0. На странице экземпляра нажмите Connect в правом верхнем углу, оставьте выбранным Public, выберите General и сгенерируйте пароль. Держите пароль в секрете.
B. Создайте веб-сервис Render
После отправки этого репозитория на 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 или на скриншот.
Ключ | Значение |
| URL TiDB в таком виде: |
|
|
|
|
|
|
| Недавно сгенерированный длинный случайный секрет. |
| Отдельный длинный пароль, который вы введёте на панели после развёртывания. |
|
|
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. Используйте смоук-тест с вашим URL Render только после того, как намеренно настроите реальный валидатор OAuth access-токенов для MCP-клиентов; демо-токены по умолчанию отключены.
Проверка и нагрузочный каркас
Запускайте тесты приложения перед каждым релизом.
pnpm check
pnpm test
pnpm exec node scripts/mcp-smoke.mjsНагрузочный каркас отправляет независимые JSON-RPC запросы, что подходит для проверки развёртывания без сохранения состояния Streamable HTTP за балансировщиком нагрузки. Начните со 100 запросов и 20 одновременных клиентов, затем повторите после масштабирования развёртывания до второго реплики и сравните задержку p50/p95 и частоту ошибок.
CONCURRENCY=20 REQUESTS=100 pnpm exec node scripts/load-test.mjsДля официального прогона на соответствие протоколу установите и выполните текущий официальный набор тестов соответствия MCP отдельно для /mcp/read и /mcp/write. Сохраняйте его версионированный вывод как доказательство релиза; смоук-скрипт этого репозитория намеренно узок и не претендует на замену этого набора.
Расширение платформы
Добавьте новый безопасный эталонный инструмент, вставив его запись в реестр и схему в defaultToolRows в server/governance.ts, расширив simulatedToolOutput, затем добавив тест и повторно запустив смоук-скрипт. Реальная интеграция должна находиться за идентификатором сервиса с минимальными привилегиями и возвращать только редактированные результаты.
Замените демо-адаптер bearer в 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