mcp-policy-gateway
mcp-policy-gateway
Una implementación de referencia de servidor MCP con políticas primero. Muestra cómo darle al agente herramientas útiles sin permitir que el modelo decida la autorización, cruce límites de tenant, filtre PII directa o ejecute mutaciones de alto impacto por su cuenta.
Esto es una implementación de portafolio/referencia. Cada registro es sintético; no es software de producción y no pretende integrarse con un banco, procesador de pagos o sistema de clientes.
Por qué existe esto
Una demo común de MCP expone una API cruda al modelo y trata una llamada de herramienta exitosa como un modelo de seguridad. Este proyecto adopta la posición opuesta:
La política es determinista. El modelo no puede autorizarse a sí mismo.
El límite de tenant se aplica en el servidor. Un argumento de herramienta no puede cambiar de tenant.
La salida de la herramienta se minimiza. El resumen de cuenta excluye intencionalmente el nombre del propietario y el correo electrónico.
Las acciones de alto impacto se detienen en una puerta de aprobación. Una solicitud de congelación no produce ningún cambio de estado.
Cada decisión es auditable. Los resultados de permitir, denegar y requerir aprobación crean eventos de auditoría estructurados.
Las solicitudes de mutación requieren una razón y una clave de idempotencia.
Related MCP server: scopeguard-mcp
Arquitectura
MCP client / agent
│ tool call
▼
FastMCP stdio adapter
│ verified principal (demo fixture here)
▼
GatewayService ──► PolicyEngine ──► allow / deny / require approval
│ │
▼ ▼
synthetic domain data structured audit eventEn un despliegue de producción, el principal se derivaría de una identidad/sesión verificada fuera del contexto del modelo. Nunca aceptes tenant_id, roles o ámbitos de un argumento de herramienta o salida del modelo.
Herramientas
Herramienta | Riesgo | Comportamiento |
| Lectura | Permite solo casos en el tenant del llamador con el ámbito correcto. |
| Lectura | Devuelve un resumen minimizado; nunca PII directa. |
| Mutación | Requiere un ámbito, razón y clave de idempotencia, y luego siempre requiere aprobación humana. |
Inicio rápido
Requiere Python 3.11+.
python -m venv .venv
.venv/bin/pip install -e '.[dev]'
.venv/bin/pytest
.venv/bin/ruff check .Ejecutar como servidor MCP stdio:
.venv/bin/mcp-policy-gatewayEl adaptador usa un principal de demostración deliberadamente fijo para exploración local. La propagación real de identidad se documenta intencionalmente como una preocupación de integración de producción en lugar de simularse aquí.
Controles de abuso demostrados
Las pruebas demuestran que la puerta de enlace:
deniega a un agente de
tenant_redque intenta leer datos detenant_blue;deniega una llamada de herramienta sin su ámbito requerido;
no devuelve el nombre del propietario ni el correo electrónico a través de la herramienta de resumen;
devuelve
require_approvalen lugar de mutar el estado de la cuenta; yrechaza solicitudes de cambio de estado que omiten una razón o clave de idempotencia.
Modelo de amenazas y no objetivos
Ver THREAT_MODEL.md. El diseño es intencionalmente limitado: demuestra un límite de política alrededor de las herramientas MCP, no infraestructura de identidad completa, almacenamiento de auditoría duradero, gestión de secretos o un sistema de pagos/contabilidad.
Recorrido para entrevistas
Una forma concisa de explicar el proyecto:
Diseñé el límite MCP para que el modelo pueda razonar sobre datos seguros y con ámbito, pero no pueda decidir el acceso ni ejecutar acciones de alto impacto. La autorización es determinista, el aislamiento de tenant se aplica en el servidor, la superficie de herramientas minimiza la PII y las mutaciones sensibles terminan en una puerta de aprobación humana auditable.
Desarrollo
.venv/bin/pytest
.venv/bin/ruff check .CI ejecuta ambas comprobaciones en pushes y pull requests.
Licencia
MIT. Ver LICENSE.
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 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.211MIT
- AlicenseAqualityCmaintenanceEnables policy-first defensive security operations for MCP, providing repository and web-security analysis with controlled authorization, scoped execution, and auditability.9MIT
- FlicenseNot gradedqualityCmaintenanceEnables approval-gated incident response workflows that gather evidence through read-only MCP tools, perform idempotent writes, and preserve a durable audit trail.1
- AlicenseNot gradedqualityCmaintenanceEnforces 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
Related MCP Connectors
Remote MCP for A2A caller identity, scope policy, verdict receipts, and audit history.
Paid remote MCP for AI Studio Workspace approval gate MCP, structured receipts, audit logs, and revi
Remote MCP for Copilot CLI switch gate MCP, structured receipts, audit logs, and reviewer-ready evid
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/jcorrego/mcp-policy-gateway'
If you have feedback or need assistance with the MCP directory API, please join our Discord server