Aplica controles de políticas en el momento del commit 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 AvenueDAdmin/pywrit, writ-mcp
- Stars
- 2
- Herramientas
- 15
- Descargas, 30 días
- —
- Última versión
- 0.1.2
- Último commit
- 13 nov 2026
- Licencia
- MIT
¿Qué es Writ MCP?
Writ es un MCP server. Aplica controles de políticas en el momento del commit 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 15 herramientas, como writ_check, writ_verify_token, writ_grant.
Resumen generado a partir del README del proyecto
Acerca del MCP server de Writ
Writ proporciona control en el punto de acción para agentes de IA al aplicar verificaciones de políticas antes de que ocurra cualquier operación de escritura con consecuencias. Este MCP server utiliza un transporte stdio para devolver decisiones de ALLOW, DENY o STEP_UP, asegurando que los agentes operen dentro de los límites definidos. Está diseñado para desarrolladores que utilizan clientes compatibles con MCP como Claude Desktop o Claude Code, y requiere una WRIT_API_KEY para su funcionalidad completa.
El sistema implementa un bucle de verificación antes de la escritura donde el agente llama a writ_check para recibir un authToken de 90 segundos. Este token se valida mediante writ_verify_token inmediatamente antes de ejecutar la acción. Para una mayor seguridad, la decisión STEP_UP requiere que un patrocinador humano apruebe la solicitud a través de writ_grant. Cada decisión genera un recibo de auditoría a prueba de manipulaciones accesible mediante writ_receipts, lo que proporciona un historial claro de las acciones y autorizaciones del agente.
Qué puedes hacer con él
- 1Verificar permisos de escritura del agentePide al agente que compruebe si tiene permiso para realizar una acción de escritura específica antes de proceder.
- 2Asegurar operaciones sensibles con tokensUtiliza un token con límite de tiempo para garantizar que una operación de escritura autorizada siga siendo válida en el momento de la ejecución.
- 3Requerir intervención humana para tareas de riesgoActiva un proceso de aprobación manual cuando un agente intenta realizar una acción que requiere una decisión de step-up.
- 4Auditar el historial de decisiones del agenteRecupera un rastro detallado de todas las decisiones de autorización y resultados previos.
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 15
Detectado desde el READMEwrit_checkwrit_verify_tokenwrit_grantwrit_receiptswrit_policywrit_sandboxwrit_github_installationswrit_github_set_thresholdwrit_github_toggle_pr_commentswrit_manifestswrit_explain_receiptwrit_tenant_notify
| writ_check | — | |
| writ_verify_token | — | |
| writ_grant | — | |
| writ_receipts | — | |
| writ_policy | — | |
| writ_sandbox | — | |
| writ_github_installations | — | |
| writ_github_set_threshold | — | |
| writ_github_toggle_pr_comments | — | |
| writ_manifests | — | |
| writ_explain_receipt | — | |
| writ_tenant_notify | — |
Mostrar las 15 herramientasMostrar menos herramientas
writ_principalswrit_verbswrit_keys
| 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 12 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.
Tools
| Tool | Who | What |
|---|---|---|
writ_check |
agent | Decision + 90s purpose-bound token |
writ_verify_token |
agent | Point-of-action token verification |
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 15 herramientas, incluidas writ_check, writ_verify_token, writ_grant, writ_receipts, writ_policy.
¿Cómo funciona el bucle de verificación antes de la escritura?
El agente llama a writ_check para recibir una decisión de ALLOW, DENY o STEP_UP; un ALLOW proporciona un authToken de 90 segundos que luego se verifica mediante writ_verify_token antes de la ejecución.
¿Puedo probar Writ sin una API key?
Sí, puedes usar la herramienta writ_sandbox para obtener una demostración gratuita de 90 segundos sin necesidad de una clave.
¿Qué sucede si se devuelve una decisión 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.