Skip to main content
Glama
nithyajangam

Aegis

by nithyajangam

Aegis MCP Governance Registry

Aegis — это производственно-ориентированная эталонная реализация для управления MCP-инструментами с учётом тенантов. Она объединяет два намеренно ограниченных эталонных конечных точки Streamable HTTP с защищённой панелью реестра, результатами политик, короткоживущим потоком одобрения человеком и защищённым от несанкционированного доступа журналом аудита. Она не подключается к клиентским системам и не управляет ими.

Что можно продемонстрировать

Возможность

Реализация в этом репозитории

Эталонные конечные точки MCP

POST /mcp/read размещает безопасные детерминированные инструменты, а POST /mcp/write — симулированный разрушительный инструмент. Обе ожидают современные заголовки метаданных запросов MCP.

Обнаружение возможностей

Каждая конечная точка имеет внутренние метаданные возможностей по адресу /.well-known/mcp-capabilities?server=read или ?server=write.

Обеспечение тенанта и областей

Адаптер bearer-токена разрешает тенант, принципала и области перед каждым вызовом MCP-инструмента.

Шлюз политик

Локальный оценщик политик обеспечивает соблюдение областей и ограничений полезной нагрузки. Установка OPA_URL включает совместимый с OPA запрос решения с сохранением безопасного локального запасного варианта.

Одобрение человеком

change.create создаёт элемент очереди, который истекает через пятнадцать минут, и однократно потребляет одобренное повышение прав.

Аудируемость

Действия политик, одобрений и выполнения редактируются, доступны только для добавления через поверхность приложения, изолированы по тенантам и связаны хеш-цепочкой.

Консоль оператора

Аутентифицированные пользователи могут просматривать сервисы реестра, тенантов, политики, одобрения и журнал аудита. Администраторы могут проверять и включать/отключать эталонные сервисы и принимать решения об одобрении.

Реализация согласует свою форму транспорта и обнаружения ресурсов со спецификациями MCP Streamable HTTP и авторизации.[1] [2] Её частные метаданные реестра являются внутренним расширением; они не представлены как публичный формат server.json реестра MCP.[3]

Related MCP server: Nura MCP Policy Interceptor

Локальная разработка

Вам понадобится 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

mcp-governance-registry

Branch

main

Language

Node

Build Command

corepack enable && pnpm install --frozen-lockfile && pnpm db:render-migrate && pnpm build

Start Command

pnpm start

Instance Type

Free

Root Directory

Оставьте пустым

C. Добавьте переменные окружения Render

В той же форме Render откройте Advanced. В разделе Environment Variables добавьте каждую строку ниже. Не помещайте никакие секретные значения в GitHub или на скриншот.

Ключ

Значение

DATABASE_URL

URL TiDB в таком виде: mysql://USERNAME:PASSWORD@HOST:4000/test. URL-кодируйте специальные символы в имени пользователя или пароле.

TIDB_ENABLE_SSL

true

NODE_VERSION

22

VITE_PORTABLE_AUTH

true

JWT_SECRET

Недавно сгенерированный длинный случайный секрет.

DASHBOARD_ACCESS_KEY

Отдельный длинный пароль, который вы введёте на панели после развёртывания.

ALLOW_DEMO_MCP_TOKENS

false

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

[5] TiDB Cloud — Connect to TiDB with node-mysql2

[6] Render — Deploy for Free

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Multi-tenant MCP server with OAuth 2.1 authorization, enabling tenant-scoped tool access and audit logging.
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enforces identity-based access control and audit logging for MCP servers, letting you grant fine-grained tool permissions to users and systems while failing secure by default.
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

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/nithyajangam/MCP-Governance-Registry'

If you have feedback or need assistance with the MCP directory API, please join our Discord server