Skip to main content
Glama

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 Workflows

Sin 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 init

Esto 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 start

Cordon 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 init

cordon 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

approve-writes permite las lecturas automáticamente

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 blocked

Herramientas 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

allow

Pasa inmediatamente

block

Rechaza: el agente recibe un error

approve

Pausa pendiente de aprobación humana en la terminal

approve-writes

Las lecturas pasan; las escrituras requieren aprobación

read-only

Todas las operaciones de escritura están bloqueadas

log-only

Pasa pero marcado en el registro de auditoría

hidden

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

terminal

Disponible: solicitud interactiva en tu terminal

slack

Disponible: mensajes Block Kit, interacciones verificadas por HMAC

web

Próximamente en v0.3

webhook

Próximamente en v0.3

Salidas de auditoría

Salida

Estado

stdout

Disponible

file

Disponible: líneas JSON escritas en un archivo local

hosted

Disponible: envía eventos al panel de control de Cordon

otlp

Próximamente en v0.3


Paquetes

Paquete

Descripción

cordon-cli

La CLI: npx cordon-cli start

cordon-sdk

SDK de configuración de TypeScript: defineConfig() y todos los tipos

@getcordon/core

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 + onUnknownTool para 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 demo

Casos 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 dev

Licencia

MIT: consulta LICENSE para más detalles.


Install Server
A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
4wRelease cycle
4Releases (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

  • A
    license
    Not graded
    quality
    C
    maintenance
    Policy 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.
    2
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Security 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.
    5
    469
    9
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A 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.
    23
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Governed 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

View all related MCP servers

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.

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/marras0914/cordon'

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