Applique des contrôles de politique lors de la validation des commits pour les écritures d'agents IA avec des décisions ALLOW, DENY ou STEP_UP et un journal d'audit infalsifiable.
Aussi connu sous AvenueDAdmin/pywrit, writ-mcp
- Étoiles
- 2
- Outils
- 15
- Téléchargements, 30 jours
- —
- Dernière version
- 0.1.2
- Dernier commit
- 13 nov. 2026
- Licence
- MIT
Qu'est-ce que Writ MCP ?
Writ est un serveur MCP. Applique des contrôles de politique lors de la validation des commits pour les écritures d'agents IA avec des décisions ALLOW, DENY ou STEP_UP et un journal d'audit infalsifiable. Il expose 15 outils, comme writ_check, writ_verify_token, writ_grant.
Résumé généré à partir du README du projet
À propos du MCP server Writ
Writ offre un contrôle au moment de l'action pour les agents IA en imposant des contrôles de politique avant toute opération d'écriture conséquente. Ce MCP server utilise un transport stdio pour renvoyer des décisions ALLOW, DENY ou STEP_UP, garantissant que les agents opèrent dans des limites définies. Il est conçu pour les développeurs utilisant des clients compatibles MCP comme Claude Desktop ou Claude Code, et nécessite une WRIT_API_KEY pour une fonctionnalité complète.
Le système implémente une boucle de vérification avant écriture où l'agent appelle writ_check pour recevoir un authToken de 90 secondes. Ce jeton est ensuite validé via writ_verify_token immédiatement avant l'exécution de l'action. Pour une sécurité accrue, la décision STEP_UP nécessite qu'un sponsor humain approuve la requête via writ_grant. Chaque décision génère un reçu d'audit infalsifiable accessible via writ_receipts, fournissant un historique clair des actions et des autorisations de l'agent.
Ce que vous pouvez faire avec
- 1Vérifier les permissions d'écriture de l'agentDemandez à l'agent de vérifier s'il a la permission d'effectuer une action d'écriture spécifique avant de continuer.
- 2Sécuriser les opérations sensibles avec des jetonsUtilisez un jeton à durée limitée pour garantir qu'une opération d'écriture autorisée est toujours valide au moment de l'exécution.
- 3Exiger une intervention humaine pour les tâches risquéesDéclenchez un processus d'approbation manuelle lorsqu'un agent tente une action nécessitant une décision STEP_UP.
- 4Auditer l'historique des décisions de l'agentRécupérez une trace détaillée de toutes les décisions d'autorisation et de leurs résultats précédents.
Extrait du README du projet. Chaque cas d'utilisation est vérifié par rapport à une citation du document.
Comment installer Writ MCP
Formats vérifiés le 10 nov. 2026Installer Writ MCP dans Claude Code
$ claude mcp add --env WRIT_API_KEY=<YOUR_WRIT_API_KEY> --env WRIT_SPONSOR_TOKEN=<YOUR_WRIT_SPONSOR_TOKEN> writ -- uvx writ-mcpInstaller Writ MCP dans 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>"
}
}
}
}Installer Writ MCP dans 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>"
}
}
}
}Installer Writ MCP dans 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>"
}
}
}
}Installer Writ MCP dans 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>"
Installer Writ MCP dans 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>"
}
}
}
}Outils MCP Writ 15
Détectés depuis le 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 | — |
Afficher les 15 outilsAfficher moins d'outils
writ_principalswrit_verbswrit_keys
| writ_principals | — | |
| writ_verbs | — | |
| writ_keys | — |
Configuration
WRIT_API_KEYRequisSecretWrit API key (get one free at https://withwrit.com)
WRIT_SPONSOR_TOKENSecretWrit sponsor token, only required for sponsor tools (grant, revoke, reinstate)
WRIT_BASE_URLOptional custom Writ API base URL (default: https://api.withwrit.com)
| Nom | Description | Type |
|---|---|---|
| WRIT_API_KEY | Writ API key (get one free at https://withwrit.com) | RequisSecret |
| WRIT_SPONSOR_TOKEN | Writ sponsor token, only required for sponsor tools (grant, revoke, reinstate) | Secret |
| WRIT_BASE_URL | Optional custom Writ API base URL (default: https://api.withwrit.com) |
Vérifications automatisées
Exécuté le 12 nov. 2026Rapport complet →A passé nos vérifications automatisées. Il ne s'agit pas d'un audit de sécurité : lisez le code et donnez au serveur l'accès le plus restreint dont il a besoin. Fonctionnement des vérifications
- Dépôt source lié et accessibleRéussi
- Licence open source (OSI)Réussi
- Commit ou version publiée au cours de l'année écouléeRéussi
- Nom du package non proche d'un package populaireRéussi
- L'endpoint distant utilise HTTPSNon vérifié
- Les outils destructifs sont étiquetésRéussi
- Aucune instruction cachée destinée au modèleRéussi
- Aucun avis critique dans le paquet ni ses dépendancesRéussi
README
Voir sur 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.
Questions sur Writ MCP
Comment ajouter Writ MCP à Claude Code ?
Exécutez claude mcp add --env WRIT_API_KEY=<YOUR_WRIT_API_KEY> --env WRIT_SPONSOR_TOKEN=<YOUR_WRIT_SPONSOR_TOKEN> writ -- uvx writ-mcp dans votre terminal. Ajoutez --scope user pour le rendre disponible dans tous les projets.
Comment ajouter Writ MCP à Cursor ?
Ouvrez ~/.cursor/mcp.json et ajoutez le serveur sous mcpServers, avec la configuration Cursor indiquée dans la section d'installation ci-dessus.
Quels outils Writ MCP fournit-il ?
Il expose 15 outils, dont writ_check, writ_verify_token, writ_grant, writ_receipts, writ_policy.
Comment fonctionne la boucle de vérification avant écriture ?
L'agent appelle writ_check pour recevoir une décision ALLOW, DENY ou STEP_UP ; un ALLOW fournit un authToken de 90 secondes qui est ensuite vérifié via writ_verify_token avant l'exécution.
Puis-je essayer Writ sans clé API ?
Oui, vous pouvez utiliser l'outil writ_sandbox pour une démo gratuite de 90 secondes sans avoir besoin d'une clé.
Que se passe-t-il si une décision STEP_UP est renvoyée ?
Un sponsor humain doit approuver l'action via writ_grant ou le tableau de bord avant que l'agent ne puisse continuer.