Skip to main content
Glama
nithyajangam

Aegis

by nithyajangam

Aegis MCP 治理注册表

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] 其私有注册表元数据是内部扩展;它不作为公共 MCP 注册表 server.json 格式呈现。[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 应用程序托管为 Web 服务。[4] [5] Render 免费服务在空闲时可以休眠,因此非活动后的首次访问预计需要更长时间。[6]

A. 创建并连接 TiDB Cloud

创建一个Starter实例,并将其支出限额设置为 0。在实例页面上,点击右上角的Connect,保持选择 Public,选择 General,然后生成密码。请将密码保密。

B. 创建 Render Web 服务

将此仓库推送到 GitHub 后,打开 Render 仪表板。点击右上角的 + New,选择 Web Service,点击此仓库旁边的 Connect,并使用以下确切值。

Render 表单字段

名称

mcp-governance-registry

分支

main

语言

Node

构建命令

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

启动命令

pnpm start

实例类型

Free

根目录

留空

C. 添加 Render 环境变量

在同一个 Render 表单中,打开 Advanced。在 Environment Variables 下,添加以下每一行。不要将任何机密值放入 GitHub 或屏幕截图中。

DATABASE_URL

采用以下形状的 TiDB URL: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. 验证

仪表板打开后,访问 RegistryApprovalsAudit ledger。只有在您特意为 MCP 客户端配置了真实的 OAuth 访问令牌验证器之后,才使用您的 Render URL 运行冒烟测试;演示令牌默认处于禁用状态。

验证与负载脚手架

每次发布前运行应用程序测试。

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/read/mcp/write 安装并执行当前的官方 MCP 一致性套件。保留其版本化输出作为发布证据;此仓库的冒烟脚本有意保持狭窄范围,并不声称取代该套件。

扩展平台

通过将新的安全参考工具的注册表记录和模式插入到 server/governance.ts 中的 defaultToolRows,扩展 simulatedToolOutput,然后添加测试并重新运行冒烟脚本。真实集成应位于最小权限服务身份之后,并且仅返回脱敏结果。

server/mcp.ts 中的演示 Bearer 适配器替换为针对您配置的颁发者的 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