Dejá trabajar al agente. Mantené el control del efecto final.
Proteger un servidor MCP no alcanza: un agente también llega a la shell, a los archivos, a las APIs y a las automatizaciones que su harness le deja alcanzar. Esta guía reúne el recorrido completo para developers e instituciones: diagnosticar la configuración que ya tienen, probar el límite, autorizar sólo el candidato exacto, controlar la corrida y reconstruir con evidencia lo que realmente pasó.
Disponible · Break the Mandate
Para quién es
Developers y maintainers
Equipos que ya delegan tareas a agentes de código y quieren dejarlos trabajar más tiempo sin aprobar cada comando. Doctor sobre sus propios archivos, laboratorio local sin cuenta y un receipt que se adjunta al PR.
Equipos de plataforma y seguridad
Quienes deciden qué puede montar, alcanzar y exportar un agente. Una configuración portable versionada en Git, la misma validación en CLI y dashboard, y controles de pausa y parada con confirmación del runtime.
Instituciones y organizaciones
Quien responde por lo que hace el software autónomo frente a clientes, auditores o reguladores. La autoridad queda fuera del agente, cada efecto deja evidencia verificable sin conexión y los límites de esa evidencia están escritos.
Tres superficies, un mismo principio
Los agentes pueden proponer. La autoridad queda fuera del agente. La cobertura se limita a las rutas declaradas y probadas: SecureStamp no controla operaciones que eluden esa frontera, y las nombra en lugar de ocultarlas.
Servidores MCP
Un servidor lanzado por shell, un secreto escrito en el archivo o un paquete sin versión fijada convierten una herramienta en una ruta de autoridad que nadie revisó.
Doctor lee el archivo elegido y propone una copia corregida; MCP Guard media la llamada y Action Proof vincula la autorización al efecto exacto.
Action ProofAgentes
El agente puede intentar lo mismo por MCP, la shell, un script o una llamada directa a la API. Sus logs y resúmenes describen lo que dice que hizo, no lo que ocurrió.
El Execution Guardian del cliente admite o retiene cada efecto mediado; un observador fuera del agente registra el resultado, y un Task Contract acota pasos, recursos, presupuesto y vigencia.
Task ContractHarnesses
Mounts, sockets, helpers de credenciales, proxies y red efectiva deciden qué autoridad tiene realmente el agente, aunque la configuración declarada diga otra cosa.
El laboratorio prueba el perfil del harness ruta por ruta, con un baseline permisivo para comparar, y marca como no evaluada toda ruta sin sonda.
Laboratorio de agentes y harnessesBreak the Mandate — el recorrido
La pregunta de entrada es simple: ¿tu agente puede hacer algo fuera de la tarea que aprobaste? El escenario de referencia responde con cinco pasos, sobre fixtures sintéticos, sin cuenta ni API key de modelo.
- 01
Una tarea útil
El agente prepara un cambio real dentro de un fixture contenido.
- 02
La brecha, en el baseline
El mismo intento fuera de alcance produce su efecto en un baseline deliberadamente permisivo, observado desde otro proceso. Es un control experimental conocido, no una vulnerabilidad descubierta en tu equipo.
- 03
La brecha, contenida
Con el control activo esa ruta se contiene, y la tarea útil igual se completa. Una denegación que inutiliza la tarea no cuenta como valor.
- 04
La evidencia caduca cuando cambia el entorno
Cambia una dependencia material del perfil: la evidencia anterior deja de habilitar esa ruta hasta que se revalida.
- 05
Sólo sale el candidato exacto
Se revisa el candidato congelado. Alterar sus bytes o su destino invalida la exportación; restaurar lo aprobado permite el efecto.
Inicio rápido
Doctor no necesita Docker ni un modelo y no ejecuta nada de lo que lee. El escenario de referencia es sintético: no ejecuta código del proyecto y su reporte se etiqueta como evidencia simulada.
# Node 22.22.3 o superior npm install --save-dev @securestamp/mcp-guard @securestamp/execution-governance # 1. Doctor: diagnóstico estático de los archivos que elijas npx securestamp-mcp-doctor scan .mcp.json --propose npx securestamp-mcp-doctor scan-native <settings.json|config.toml> --format=<shape> npx securestamp-mcp-doctor scan-workflow .github/workflows/agent.yml # 2. Escenario portable: validar y correr la referencia, con una retención npx securestamp-execution-governance validate scenario.json npx securestamp-execution-governance run scenario.json --hold-before=step-1
Cada comando imprime su uso y los formatos soportados cuando recibe argumentos inválidos. Para un HarnessProfileV1 completo, securestamp-mcp-doctor scan-harness. Con --hold-before, la corrida muestra un efecto retenido que nunca se admite. Sin telemetría por defecto.
Doctor: primero tus archivos nativos
Doctor produce hechos declarados, cada uno con su archivo y campo de origen, y un diagnóstico parcial que dice qué capas leyó y cuáles quedan desconocidas. La compatibilidad se describe por forma + transporte + cliente probado; un formato que no reconoce se informa como no soportado, nunca se omite en silencio.
.mcp.json · JSON con mcpServers (stdio)Comandos declarados, referencias a credenciales, secretos escritos en el archivo, lanzamientos por shell y paquetes mutables o @latest. Una versión fijada no acredita integridad: comprobar el artefacto efectivo contra el aprobado corresponde al ejecutor.
settings.json · config.toml ([mcp_servers])Permisos, herramientas y capas de configuración reconocidas, con conflictos y datos faltantes. Un archivo aislado no revela políticas administradas, overrides de CLI ni configuración heredada: la salida lo dice.
.github/workflows/*.ymlAgent Workflow Doctor: entrada no confiable de issue, PR o comentario que llega al agente, permisos declarados, referencias a secrets, herramientas amplias y checkout de contenido externo. No descarga actions, no resuelve secrets ni ejecuta YAML.
HarnessProfileV1El perfil completo para usuarios avanzados. Doctor nunca lo inventa desde un archivo aislado: mounts, observador, credenciales efectivas y backend los elige y valida el operador.
- Lee sólo los archivos que se le indican; no recorre el home.
- No ejecuta comandos, hooks ni expresiones del archivo.
- No resuelve secretos ni valida tokens.
- Propone un patch revisable sobre una copia; nunca sobrescribe el original.
- Muestra un resultado limpio con el mismo peso que un hallazgo.
- Un diagnóstico estático no acredita aislamiento ni protección.
Exact Export: el agente prepara, vos autorizás el cambio exacto
El agente prepara el cambio en una copia contenida de tu proyecto. La credencial de exportación queda fuera de su entorno, y lo que sale es sólo el candidato que se revisó, a través del Execution Guardian.
- 01
Preparar
En cuarentena, sobre un snapshot del proyecto elegido; sin reutilizar tu .git como base confiable.
- 02
Congelar
El candidato se fija antes de revisar: base, bytes y digests, ref, destino y preestado.
- 03
Autorizar
La aprobación se vincula a ese candidato. Un cambio posterior la invalida; un --yes no reemplaza MFA ni quórum.
- 04
Ejecutar
Custodiado por el Guardian, con comprobación del estado del destino: el drift y las carreras no se pisan.
- 05
Verificar
Verificación independiente de la postcondición y un receipt que se adjunta al PR o issue.
El destino inicial es un repositorio Git local. Con un perfil y un destino autorizados, el adaptador de GitHub crea una ref nueva: no actualiza cualquier rama, no hace force-push, merge ni deploy, y abrir un PR es otro efecto con su propia autorización. La custodia de la credencial se afirma sólo para el perfil que la demuestra con identidad, mounts, sockets y red efectivos y canarios desde el contexto del agente.
Una configuración portable, tres interfaces
La configuración es un JSON versionado en tu repositorio. La biblioteca genera los contratos completos y sus digests; nadie escribe firmas a mano. CLI y dashboard importan y exportan la misma representación y pasan la misma validación: no hay una política web distinta de la política en Git. Cada edición crea una revisión nueva y las corridas activas conservan su snapshot.
Escenario
Un SSPI-execution-scenario versionado: parámetros, origen del proyecto con digests del candidato y de la base, y los pasos con su operación y efecto esperado. No acepta scripts arbitrarios ni un resultado esperado editado para convertir una brecha en éxito.
Perfil
El runner y su perfil: backend, lease del observador y lease del canal de control. El sistema comprueba su disponibilidad y la aplicabilidad de la evidencia.
Mandato
Límites de efectos y de tiempo, digests de cada efecto y recurso, y las aprobaciones requeridas: un Task Contract fuera del alcance del agente.
npm · @securestamp/execution-governanceContratos del escenario portable, plano de control con hold, resume y stop, y reportes redactados: validar y serializar escenarios, iniciar corridas, emitir órdenes idempotentes, y construir, verificar y comparar reportes. No concede autoridad, no aísla el host ni reemplaza al Guardian del cliente.
CLI · securestamp-mcp-doctor · securestamp-execution-governancescan, scan-native, scan-workflow y scan-harness para el diagnóstico; validate y run para los escenarios. Sin cuenta. Cada corrida produce su propio reporte sin sobrescribir otro.
Dashboard · securestamp.online/dashboard/agentsEscenarios, preparación, ejecuciones, detalle en curso y análisis posterior, sobre runners enrolados que opera el cliente. El navegador no ejecuta la prueba ni recibe credenciales de proveedores; conectar un runner es opt-in.
Pausar, reanudar, detener
Los controles actúan sobre las rutas mediadas por el Guardian. El agente puede seguir razonando mientras sus efectos están retenidos; la interfaz lo muestra como «efectos retenidos / proceso en ejecución», nunca como agente congelado.
Hold
El Guardian cierra la admisión de nuevos efectos y conserva presupuesto, grants consumidos e historia. No congela llamadas ya enviadas ni acumula una cola de efectos viejos.
Resume
Antes de reabrir se revalidan mandato, vigencia, política, perfil, observador y presupuestos. Cada nueva solicitud se evalúa de nuevo.
Stop
Terminal para la corrida: cierra la admisión de forma durable, cancela pendientes y termina procesos supervisados e hijos. Prevalece sobre resume y sobre una reconexión.
Una respuesta HTTP exitosa sólo confirma que la orden se recibió. El dashboard muestra por separado lo solicitado, lo aplicado por el supervisor y lo observado. Si cae el canal remoto con el observador sano, las admisiones quedan retenidas localmente; si falla el observador, el perfil corta la salida y termina el contenedor. La parada local nunca depende del dashboard.
Reportes: estados que no se resumen en un semáforo
El reporte de ejecución lleva un checksum informativo, declara su nivel de evidencia y permite comparar corridas; un checksum no autentica al emisor. Cuando adjunta un bundle Action Proof completo, el verificador independiente lo comprueba offline contra anchors suministrados fuera del reporte y enlaza candidato exacto, destino, autoridad y resultado observado del receipt. Un FAIL, un SKIP, evidencia ausente o una ruta sin evaluar se conservan a la vista; un fallo de instrumentación deja la corrida INCOMPLETE, nunca PASS.
| Estado de la corrida | queued · running · held · stopping · stopped · completed · failed · incomplete |
| Resultado de ruta | PASS · FAIL · SKIP |
| Cobertura | protected · contradicted · partial · not_evaluated |
| Integración | simulated · integration_real · no_evaluated |
| Completitud | complete · incomplete |
| Outcome del reporte | PASS · FAIL · INCOMPLETE |
| Outcome de un efecto | succeeded · failed_no_effect · indeterminate |
Checksum informativo
El digest comprueba los bytes presentados, pero quien pueda reescribir el reporte puede recalcularlo. No autentica al emisor.
Evidencia firmada con anchors externos
Un bundle Action Proof completo se verifica offline sólo con anchors de grant y transparencia instalados fuera del artefacto. El bundle enlaza candidato, destino, autoridad y resultado del receipt.
Reproducido por un tercero
Otra persona corrió el mismo pack y obtuvo el mismo resultado. Es una afirmación distinta y se informa aparte.
Check informativo en el pull request
Compara base y head de los archivos nativos con los mismos importadores y reglas, muestra cambios declarados, desconocidos y candidatos a revalidación, y valida el receipt adjunto con sus anchors. Corre desde una revisión confiable fijada, con permisos de lectura, sin secrets y sin ejecutar código del PR. Informa la revisión: no es el check que autoriza una exportación ni un sustituto del Guardian o de un ruleset.
Lo que esto no hace
- No vuelve seguro al modelo ni prueba alineación general: prueba límites de ejecución en un perfil declarado.
- No controla rutas que eluden al Guardian; una ruta sin sonda queda no evaluada, nunca protegida por herencia.
- No deshace un efecto que ya ocurrió: hold y stop no son rollback.
- Un receipt demuestra integridad y alcance bajo sus anchors; no demuestra que el código aprobado sea benigno ni que alguien independiente lo haya auditado.
- No es un kill switch global de empresa: v1 controla la corrida elegida y sus runners declarados.
- La compatibilidad se publica por perfil, versión y entorno. Un PASS en un harness no se transfiere a otro sistema operativo, a otra ruta ni a otro cliente.
Seguir leyendo
Estado
Disponible: Doctor sobre archivos nativos, el escenario de referencia parametrizable por npm, CLI y dashboard, Exact Export a Git local y el check informativo de PR. Los reportes distinguen el historial sólo con checksum de un bundle Action Proof adjunto; sólo se afirma un receipt compartible cuando ese bundle existe y verifica con anchors externos. Cada capacidad publica su nivel de evidencia —simulado, integración real o no evaluado— por perfil y entorno en la matriz del laboratorio; un destino remoto se habilita por perfil autorizado, no por analogía.
Abierto y reproducible
Escenarios, fixtures, recipes y vectores se publican para que un tercero pueda reproducir o refutar cada propiedad. Los contraejemplos se contribuyen como issues con seed, perfil y resultado observado; los hallazgos sensibles siguen SECURITY.md. No hay leaderboard de «agentes seguros» ni badges genéricos.