Aplica controles de políticas para escrituras de agentes de IA con decisiones de ALLOW, DENY o STEP_UP y un registro de auditoría a prueba de manipulaciones.
También conocido como withwrit/pywrit, writ-mcp
- Stars
- 2
- Herramientas
- 17
- Descargas, 30 días
- —
- Última versión
- 0.2.2
- Último commit
- 13 nov 2026
- Licencia
- MIT
¿Qué es Writ MCP?
Writ es un MCP server. Aplica controles de políticas para escrituras de agentes de IA con decisiones de ALLOW, DENY o STEP_UP y un registro de auditoría a prueba de manipulaciones. Expone 17 herramientas, como writ_check, writ_verify_token, writ_lease.
Resumen generado a partir del README del proyecto
Acerca del MCP server de Writ
Este servidor permite controlar las acciones de gran impacto realizadas por agentes de IA mediante una puerta de enlace de políticas. Proporciona un mecanismo para que los agentes soliciten permiso antes de realizar escrituras, recibiendo decisiones como ALLOW, DENY o STEP_UP. Este proceso garantiza que cada acción esté respaldada por un recibo de auditoría a prueba de manipulaciones para mayor seguridad y rendición de cuentas.
Los desarrolladores pueden integrar esto en Claude Desktop, Claude Code o clientes MCP genéricos utilizando un transporte stdio. La configuración del servidor requiere una WRIT_API_KEY y, opcionalmente, un WRIT_SPONSOR_TOKEN para gestionar concesiones o revocaciones. El flujo de trabajo utiliza herramientas específicas como writ_check para obtener un authToken de 90 segundos y writ_execute para realizar la solicitud restringida mediante un contrato de un solo uso.
Más allá de las simples comprobaciones de permisos, el servidor incluye herramientas administrativas para gestionar instalaciones de GitHub App, establecer umbrales y visualizar los principios de los inquilinos. Ofrece un modo sandbox para realizar pruebas sin una API key, lo que permite a cualquier persona probar la herramienta writ_check con un verbo de escritura de demostración.
Qué puedes hacer con él
- 1Aplicar permisos de escritura restringidosPide al agente que verifique los permisos antes de modificar un archivo sensible o una entrada en una base de datos.
- 2Requerir aprobación humana para tareas de riesgoInstruye al agente para que active una revisión manual cuando encuentre una decisión de STEP_UP.
- 3Auditar el historial de decisiones del agenteSolicita un resumen de todas las decisiones de autorización y sus resultados previos.
- 4Ejecutar solicitudes de API restringidas de forma seguraHaz que el agente convierta un token de autorización en un contrato de un solo uso para realizar una solicitud específica hacia un servicio externo.
Escrito a partir del README del proyecto. Cada caso de uso se verifica con una cita del mismo.
Cómo instalar Writ MCP
Formatos verificados el 10 nov 2026Instalar Writ MCP en Claude Code
$ claude mcp add --env WRIT_API_KEY=<YOUR_WRIT_API_KEY> --env WRIT_SPONSOR_TOKEN=<YOUR_WRIT_SPONSOR_TOKEN> writ -- uvx writ-mcpInstalar Writ MCP en Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"writ": {
"command": "uvx",
"args": [
"writ-mcp"
],
"env": {
"WRIT_API_KEY": "<YOUR_WRIT_API_KEY>",
"WRIT_SPONSOR_TOKEN": "<YOUR_WRIT_SPONSOR_TOKEN>"
}
}
}
}Instalar Writ MCP en VS Code
.vscode/mcp.json
{
"servers": {
"writ": {
"type": "stdio",
"command": "uvx",
"args": [
"writ-mcp"
],
"env": {
"WRIT_API_KEY": "<YOUR_WRIT_API_KEY>",
"WRIT_SPONSOR_TOKEN": "<YOUR_WRIT_SPONSOR_TOKEN>"
}
}
}
}Instalar Writ MCP en Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"writ": {
"command": "uvx",
"args": [
"writ-mcp"
],
"env": {
"WRIT_API_KEY": "<YOUR_WRIT_API_KEY>",
"WRIT_SPONSOR_TOKEN": "<YOUR_WRIT_SPONSOR_TOKEN>"
}
}
}
}Instalar Writ MCP en Codex
~/.codex/config.toml
[mcp_servers.writ] command = "uvx" args = ["writ-mcp"] [mcp_servers.writ.env] WRIT_API_KEY = "<YOUR_WRIT_API_KEY>" WRIT_SPONSOR_TOKEN = "<YOUR_WRIT_SPONSOR_TOKEN>"
Instalar Writ MCP en Gemini CLI
~/.gemini/settings.json
{
"mcpServers": {
"writ": {
"command": "uvx",
"args": [
"writ-mcp"
],
"env": {
"WRIT_API_KEY": "<YOUR_WRIT_API_KEY>",
"WRIT_SPONSOR_TOKEN": "<YOUR_WRIT_SPONSOR_TOKEN>"
}
}
}
}Herramientas de Writ MCP 17
Detectado desde el READMEwrit_checkwrit_verify_tokenwrit_leasewrit_executewrit_grantwrit_receiptswrit_policywrit_sandboxwrit_github_installationswrit_github_set_thresholdwrit_github_toggle_pr_commentswrit_manifests
| writ_check | — | |
| writ_verify_token | — | |
| writ_lease | — | |
| writ_execute | — | |
| writ_grant | — | |
| writ_receipts | — | |
| writ_policy | — | |
| writ_sandbox | — | |
| writ_github_installations | — | |
| writ_github_set_threshold | — | |
| writ_github_toggle_pr_comments | — | |
| writ_manifests | — |
Mostrar las 17 herramientasMostrar menos herramientas
writ_explain_receiptwrit_tenant_notifywrit_principalswrit_verbswrit_keys
| writ_explain_receipt | — | |
| writ_tenant_notify | — | |
| writ_principals | — | |
| writ_verbs | — | |
| writ_keys | — |
Configuración
WRIT_API_KEYObligatorioSecretoWrit API key (get one free at https://withwrit.com)
WRIT_SPONSOR_TOKENSecretoWrit sponsor token, only required for sponsor tools (grant, revoke, reinstate)
WRIT_BASE_URLOptional custom Writ API base URL (default: https://api.withwrit.com)
| Nombre | Descripción | Tipo |
|---|---|---|
| WRIT_API_KEY | Writ API key (get one free at https://withwrit.com) | ObligatorioSecreto |
| WRIT_SPONSOR_TOKEN | Writ sponsor token, only required for sponsor tools (grant, revoke, reinstate) | Secreto |
| WRIT_BASE_URL | Optional custom Writ API base URL (default: https://api.withwrit.com) |
Verificaciones automáticas
Ejecutado 13 nov 2026Informe completo →Pasó nuestras verificaciones automáticas. Esto no es una auditoría de seguridad: lee el código y dale al servidor el acceso más limitado que necesite. Cómo funcionan las verificaciones
- Repositorio de origen vinculado y accesibleAprobado
- Licencia de código abierto (OSI)Aprobado
- Commit o lanzamiento en el último añoAprobado
- El nombre del paquete no es similar a un paquete popularAprobado
- El endpoint remoto usa HTTPSNo verificado
- Las herramientas destructivas están etiquetadasAprobado
- Sin instrucciones ocultas para el modeloAprobado
- Sin avisos críticos en el paquete ni en sus dependenciasAprobado
README
Ver en GitHubwrit-mcp
The Writ gate as an MCP server. Give any MCP-compatible
agent point-of-action control: the agent calls Writ before a consequential
write, gets back ALLOW, DENY, or STEP_UP, and every outcome creates an
audit receipt.
Install
pip install writ-mcp
Requires Python 3.9+. Installs the writ-mcp command (stdio transport).
Configure
export WRIT_API_KEY="writ_..." # required; get one free: POST /v1/keys with an email
export WRIT_SPONSOR_TOKEN="..." # only for sponsor tools (grant, revoke, reinstate)
# export WRIT_BASE_URL="..." # default: https://api.withwrit.com
Add to your agent
Claude Code:
claude mcp add writ --env WRIT_API_KEY="$WRIT_API_KEY" -- writ-mcp
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"writ": {
"command": "writ-mcp",
"env": { "WRIT_API_KEY": "writ_..." }
}
}
}
Any MCP client (generic stdio config):
{
"command": "writ-mcp",
"env": {
"WRIT_API_KEY": "writ_...",
"WRIT_SPONSOR_TOKEN": "writ_sp_..."
}
}
Hermes (NousResearch/hermes-agent) catalog entry — once published, this
package is installable from the optional-mcps catalog:
hermes mcp install writ
The check-before-write loop
The tool descriptions teach the agent this flow, but the short version:
writ_check(sponsor_id, agent_id, verb, target, purpose)— before the write.ALLOW→ you get a 90-secondauthTokenbound to that exact write.writ_verify_token(auth_token, verb, target, purpose)— immediately before executing, to prove the authorization still matches what you're doing.DENY→ do not proceed.STEP_UP→ a human sponsor approves (viawrit_grantor the dashboard), then check again.writ_lease(auth_token, system_id, method, path, body)- convert the ALLOW token into a single-use lease bound to the exact upstream request.writ_execute(lease_id, method, path, body)- run the gated write with the same method/path/body; the gate forwards it with the vaulted credential and returns the upstream response verbatim.
Tools
| Tool | Who | What |
|---|---|---|
writ_check |
agent | Decision + 90s purpose-bound token |
writ_verify_token |
agent | Point-of-action token verification |
writ_lease |
agent | Convert an ALLOW token into a single-use gated-execution lease |
writ_execute |
agent | Run one gated upstream request with a lease or ALLOW token |
writ_grant |
sponsor | Approve a STEP_UP (one-time grant) |
writ_revoke / writ_reinstate |
sponsor | Kill switch on/off for a principal |
writ_receipts |
agent | Audit trail of decisions |
writ_policy |
agent | Tenant verb policy |
writ_sandbox |
anyone | Free 90-second demo grant, no key needed |
writ_github_installations |
admin | List connected GitHub App installations |
writ_github_set_threshold |
admin | Set the check-run fail threshold per install |
writ_github_toggle_pr_comments |
admin | Enable/disable the PR-comment bot |
writ_manifests |
agent | List repos with risk profiles or fetch one manifest |
writ_explain_receipt |
agent | Explain a receipt in plain language |
writ_tenant_notify |
admin | Get or update step-up notification settings |
writ_principals |
admin | List the tenant's principals |
writ_verbs |
admin | List the tenant's verb vocabulary |
writ_keys |
admin | List API key metadata |
Try it with no key: writ_sandbox → writ_check with verb="demo_write".
Source
Public repo: withwrit/pywrit (mcp/
directory). License: MIT.
Directory listings: Glama ·
MCP Registry io.github.withwrit/writ.
Preguntas sobre Writ MCP
¿Cómo agrego Writ MCP a Claude Code?
Ejecuta claude mcp add --env WRIT_API_KEY=<YOUR_WRIT_API_KEY> --env WRIT_SPONSOR_TOKEN=<YOUR_WRIT_SPONSOR_TOKEN> writ -- uvx writ-mcp en tu terminal. Añade --scope user para que esté disponible en todos los proyectos.
¿Cómo agrego Writ MCP a Cursor?
Abre ~/.cursor/mcp.json y añade el servidor en mcpServers, usando la configuración de Cursor que se muestra en la sección de instalación de arriba.
¿Qué herramientas proporciona Writ MCP?
Expone 17 herramientas, incluidas writ_check, writ_verify_token, writ_lease, writ_execute, writ_grant.
¿Cuáles son los posibles resultados de una verificación de escritura?
El agente recibe una decisión de ALLOW, DENY o STEP_UP.
¿Cómo puedo probar Writ sin una API key?
Puedes usar la herramienta writ_sandbox para obtener una demostración gratuita de 90 segundos.
¿Qué sucede durante una decisión de STEP_UP?
Un patrocinador humano debe aprobar la acción a través de writ_grant o el dashboard antes de que el agente pueda proceder.