cordon
Todas las empresas quieren desplegar agentes de IA. Ninguna empresa está dispuesta a dar a un agente las llaves de su base de datos.
Cordon cierra la brecha de confianza.
Demo
https://github.com/user-attachments/assets/153d978f-6303-443a-b49b-b4ec7ebf0452
Related MCP server: protect-mcp
El problema
El Model Context Protocol (MCP) ha hecho que sea trivialmente fácil dar a los agentes de IA acceso a herramientas potentes: bases de datos, sistemas de archivos, APIs, infraestructura en la nube.
Pero MCP no tiene un modelo de seguridad integrado. Sin registros de auditoría. Sin flujos de trabajo de aprobación. Sin límites de tasa. Hoy en día, un agente de IA está apagado o es administrador total. No hay nada intermedio.
Este es el mayor obstáculo que impide que los agentes de IA lleguen a producción.
La solución
Cordon es la puerta de enlace de seguridad que se sitúa entre el LLM y tus servidores MCP.
Actúa como un firewall, un auditor y un control remoto, dándote visibilidad y autoridad completas sobre lo que tus agentes de IA pueden y no pueden hacer.
┌─────────┐ ┌──────────┐ ┌──────────────┐
│ LLM / │ ──▶ │ Cordon │ ──▶ │ MCP Server │
│ Agent │ ◀── │ Gateway │ ◀── │ (database, │
└─────────┘ └──────────┘ │ fs, APIs) │
│ └──────────────┘
├── Policy Engine
├── Audit Logger
└── Approval WorkflowsSin cambios en la infraestructura. Sin reescrituras. Un archivo de configuración.
Inicio rápido
Paso 1 — Inicializar
Ejecuta esto dentro de tu proyecto (donde existe tu claude_desktop_config.json):
npx cordon-cli initEsto lee tu configuración de MCP de Claude Desktop existente, genera cordon.config.ts y parchea Claude Desktop para enrutar todas las llamadas a herramientas a través de Cordon.
Paso 2 — Iniciar
npx cordon-cli startCordon se inicia, se conecta a tus servidores MCP y comienza a interceptar las llamadas a herramientas. Reinicia Claude Desktop y cada llamada a herramienta fluirá ahora a través de la puerta de enlace.
Configuración manual
Si prefieres configurar manualmente, instala globalmente y crea una configuración:
npm install -g cordon-cli
cordon initcordon init genera un cordon.config.ts:
import { defineConfig } from 'cordon-sdk';
export default defineConfig({
servers: [
{
name: 'database',
transport: 'stdio',
command: 'npx',
args: ['-y', '@my-org/db-mcp-server'],
policy: 'read-only', // Block all write operations
},
{
name: 'github',
transport: 'stdio',
command: 'npx',
args: ['-y', '@modelcontextprotocol/server-github'],
policy: 'approve-writes', // Reads pass; writes require approval
tools: {
delete_branch: 'block', // Never, regardless of approval
},
},
],
audit: {
enabled: true,
output: 'stdout', // or 'file'
},
approvals: {
channel: 'terminal',
timeoutMs: 60_000, // auto-deny after 60s if no response
},
});Por qué Cordon
Sin Cordon | Con Cordon |
El agente tiene acceso ilimitado a herramientas | Políticas granulares por herramienta |
Sin visibilidad de lo que hicieron los agentes | Registro de auditoría estructurado de cada llamada |
"¿El agente acaba de borrar una tabla?" | Aprobaciones en tiempo real en la terminal |
Lecturas y escrituras tratadas igual |
|
El equipo de cumplimiento dice no a la IA | Registros de auditoría listos para exportar |
Características
Motor de políticas
Define reglas por herramienta, por servidor o globalmente. Las políticas a nivel de herramienta anulan las políticas del servidor.
// Server-level default
policy: 'approve-writes',
// Per-tool overrides
tools: {
query: 'allow', // reads: pass through
execute: 'approve', // writes: pause for human approval
drop_table: 'block', // catastrophic: always reject
list_tables: 'log-only', // audit but don't interrupt
},Aprobaciones con intervención humana
Cuando una llamada a una herramienta requiere aprobación, Cordon pausa al agente y te solicita directamente en tu terminal:
╔══════════════════════════════════════╗
║ ⚠ APPROVAL REQUIRED ║
╚══════════════════════════════════════╝
Server : database
Tool : execute_sql
Args :
{
"query": "DELETE FROM sessions WHERE expires_at < NOW()"
}
[A]pprove [D]eny
>El agente espera. Tú decides.
Registro de auditoría
Cada llamada a herramienta se registra como JSON estructurado: la solicitud, la decisión de política, la respuesta y el tiempo. Envíalo a stdout o escríbelo en un archivo para tu equipo de cumplimiento.
{"event":"tool_call_received","callId":"...","serverName":"database","toolName":"execute_sql","timestamp":1773434469641}
{"event":"approval_requested","callId":"...","serverName":"database","toolName":"execute_sql","timestamp":1773434469641}
{"event":"tool_call_approved","callId":"...","serverName":"database","toolName":"execute_sql","timestamp":1773434471203}
{"event":"tool_call_completed","callId":"...","durationMs":34,"isError":false,"timestamp":1773434471237}Modo de solo lectura
Una configuración de política para bloquear todas las operaciones de escritura en un servidor. Cero conjeturas sobre qué cuenta como escritura: Cordon lo detecta por el nombre de la herramienta.
policy: 'read-only' // any tool starting with write/create/update/delete/drop/execute/... is blockedHerramientas ocultas
Para herramientas que el modelo nunca debería ver, no solo rechazadas en la llamada, sino filtradas completamente de la respuesta tools/list. Cierra una superficie de inyección de prompts: si el modelo nunca sabe que existe una herramienta, no puede ser engañado para llamarla.
{
name: 'database',
policy: 'approve-writes',
tools: {
drop_table: 'block', // call attempts are rejected
internal_admin: 'hidden', // not advertised to the client at all
},
}Catálogos de herramientas de mundo cerrado
Declara la superficie exacta de herramientas que se espera que anuncie tu servidor ascendente. Cuando el servidor ascendente añade una nueva herramienta en una versión futura, Cordon la bloquea automáticamente hasta que la promociones explícitamente.
{
name: 'postgres',
command: 'npx',
args: ['-y', '@modelcontextprotocol/server-postgres', process.env.POSTGRES_URL!],
policy: 'read-only',
knownTools: ['query', 'list_tables', 'describe_table'], // your approved surface
onUnknownTool: 'block', // default when knownTools is set
}Si la próxima versión de Postgres MCP añade truncate_table, Cordon la bloquea con una advertencia en stderr; no se necesita actualización de política. Deja knownTools indefinido para un comportamiento de mundo abierto compatible con versiones anteriores.
Cómo funciona
Cordon se ejecuta como un único proxy agregador de MCP. En lugar de que Claude Desktop se conecte directamente a tus servidores MCP, se conecta a Cordon. Cordon gestiona entonces tus servidores internamente.
Before: Claude ──▶ MCP Server A (full access)
Claude ──▶ MCP Server B (full access)
After: Claude ──▶ Cordon ──▶ MCP Server A (governed)
──▶ MCP Server B (governed)Tu cliente LLM y tus servidores MCP no cambian en absoluto. cordon init maneja el parcheo de la configuración.
Configuración
Acciones de política
Política | Comportamiento |
| Pasa inmediatamente |
| Rechaza: el agente recibe un error |
| Pausa pendiente de aprobación humana en la terminal |
| Las lecturas pasan; las escrituras requieren aprobación |
| Todas las operaciones de escritura están bloqueadas |
| Pasa pero marcado en el registro de auditoría |
| Filtrado de tools/list: el modelo nunca lo ve |
Las políticas se pueden establecer a nivel de servidor (predeterminado para todas las herramientas) o por herramienta (anula el valor predeterminado del servidor):
{
name: 'my-server',
policy: 'approve-writes', // server default
tools: {
safe_read: 'allow', // override: always allow
nuke_db: 'block', // override: always block
},
}Canales de aprobación
Canal | Estado |
| Disponible: solicitud interactiva en tu terminal |
| Disponible: mensajes Block Kit, interacciones verificadas por HMAC |
| Próximamente en v0.3 |
| Próximamente en v0.3 |
Salidas de auditoría
Salida | Estado |
| Disponible |
| Disponible: líneas JSON escritas en un archivo local |
| Disponible: envía eventos al panel de control de Cordon |
| Próximamente en v0.3 |
Paquetes
Paquete | Descripción |
| La CLI: |
| SDK de configuración de TypeScript: |
| Motor de proxy central: evaluador de políticas, registrador de auditoría, gestor de aprobaciones |
Hoja de ruta
[x] Proxy MCP con modelo agregador (múltiples servidores, una puerta de enlace)
[x] Motor de políticas: allow, block, approve, approve-writes, read-only, log-only, hidden
[x] Catálogos de herramientas de mundo cerrado:
knownTools+onUnknownToolpara un control de superficie ascendente a prueba de futuro[x] Canal de aprobación de terminal con solicitud segura para TTY
[x] Canal de aprobación de Slack: mensajes Block Kit, encuestas para respuesta
[x] Registro de auditoría JSON estructurado a stdout, archivo o panel de control alojado
[x]
cordon init: lee automáticamente la configuración de Claude Desktop y la parchea[x] Limitación de tasa: ventana deslizante, global / por servidor / por herramienta
[x] Panel de control alojado: historial de registros de auditoría, exportación CSV/JSON, GitHub OAuth
[x] Facturación Stripe: niveles Free y Pro
[ ] Exportación OpenTelemetry
[ ] Cuentas de equipo y gobernanza centralizada
[ ] Soporte de transporte HTTP/SSE
Ejemplos
Consulta examples/security-showcase para ver una demo funcional de Cordon interceptando a un agente que intenta borrar una tabla de base de datos de producción.
cd examples/security-showcase
npm install
npm run demoCasos de uso
Desarrollador individual: asegura tu configuración local de Claude/Cursor. Mira exactamente lo que está llamando tu agente y bloquea cualquier cosa peligrosa antes de que llegue a producción.
Equipo de startup: despliega agentes con confianza. Cada llamada a herramienta se registra, las escrituras requieren aprobación y tu equipo de cumplimiento tiene un rastro.
Empresa: gobernanza centralizada en todos los despliegues de agentes de IA. Política como código, registros estructurados y un camino claro hacia registros de auditoría listos para SOC2.
Funciona muy bien con
Agent Toolbelt: un kit de herramientas tipado de herramientas MCP listas para usar (búsqueda web, fetch, sistema de archivos y más). Conéctalo a Claude Desktop y luego enruta esas llamadas a herramientas a través de Cordon para la aplicación de políticas y el registro de auditoría. Agent Toolbelt da poder a tus agentes; Cordon se asegura de que pidan permiso antes de usarlo.
Build & Ship MCP Tools: el curso complementario que recorre la creación de tus propios servidores MCP de principio a fin. El módulo 6 cubre la seguridad de tu servidor con Cordon.
Contribución
Cordon es de código abierto y agradecemos las contribuciones.
git clone https://github.com/marras0914/cordon.git
cd cordon
npm install
npm run build
npm run devLicencia
MIT: consulta LICENSE para más detalles.
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
AlicenseNot gradedqualityCmaintenancePolicy enforcement gateway for MCP tool calls, evaluating every tool invocation against declarative YAML policies (allow/deny/escalate-to-human), generating cryptographic hash-chained audit receipts, and including built-in content safety scanning.2MIT- AlicenseBqualityCmaintenanceSecurity gateway that wraps any MCP server with per-tool policies, approval gates, and optional Ed25519-signed decision receipts. Shadow mode logs every tool call without blocking; enforce mode applies block, rate-limit, and minimum-tier rules. Receipts are independently verifiable offline with no accounts needed.54699MIT
- AlicenseNot gradedqualityBmaintenanceA policy-enforcing MCP gateway that intercepts all tool calls to downstream MCP servers, applying allow/deny/ask rules with human approval and audit logging for safe access to dangerous tools.23MIT

evav-gatewayofficial
AlicenseNot gradedqualityBmaintenanceGoverned MCP gateway that lets AI agents call tools with policy enforcement, prompt-injection screening, a kill-switch, and tamper-evident signed audit logs.Apache 2.0
Related MCP Connectors
Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.
Runtime permission, approval, and audit layer for AI agent tool execution.
See, price, and control every tool call your AI agents make: policy checks, cost, and audit tools.
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/marras0914/cordon'
If you have feedback or need assistance with the MCP directory API, please join our Discord server