Writ MCPとは
WritはMCPサーバーです。 AIエージェントによる書き込み操作に対して、ALLOW、DENY、またはSTEP_UPの判定を行い、改ざん防止機能付きの監査ログを強制します。. 17個のツールを提供しており、writ_check, writ_verify_token, writ_leaseなどがあります。
プロジェクトのREADMEから生成された概要
Writ MCP server について
このMCP serverは、ポリシーゲートを通じてAIエージェントによる重大なアクションを制御することを可能にします。エージェントが書き込みを実行する前に許可をリクエストし、ALLOW、DENY、またはSTEP_UPといった判定を受け取る仕組みを提供します。このプロセスにより、すべての操作がセキュリティと責任の所在を明確にするための、改ざん防止機能付きの監査レシートによって裏付けられます。
開発者は、stdioトランスポートを使用して、Claude Desktop、Claude Code、または汎用的なMCPクライアントにこれを統合できます。サーバーのセットアップにはWRIT_API_KEYが必要であり、権限の管理や取り消しを行う場合はオプションでWRIT_SPONSOR_TOKENを使用します。ワークフローでは、90秒間のauthTokenを取得するためのwrit_checkや、使い捨てのリースを使用してゲート付きリクエストを実行するためのwrit_executeといった特定のツールを使用します。
単純な権限チェックに加えて、このサーバーにはGitHub Appのインストール管理、しきい値の設定、テナントプリンシパルの表示を行うための管理ツールが含まれています。また、APIキーなしでテストできるサンドボックスモードも用意されており、誰でもデモ用の書き込み動詞を使用してwrit_checkツールを試すことができます。
できること
- 1ゲート付き書き込み権限の強制機密性の高いファイルやデータベースのエントリを修正する前に、エージェントに権限を確認させます。
- 2リスクの高いタスクへの人間による承認の要求STEP_UPの判定が発生した場合に、手動レビューをトリガーするようエージェントに指示します。
- 3エージェントの決定履歴の監査過去のすべての認可決定とその結果の要約をリクエストします。
- 4ゲート付きAPIリクエストの安全な実行エージェントに認可トークンを使い捨てのリースに変換させ、特定のアップストリームリクエストを実行させます。
プロジェクトの README から作成されています。すべてのユースケースは、その引用と照らし合わせて確認されています。
Writ MCPのインストール方法
フォーマット検証日 2026年11月10日Claude CodeにWrit MCPをインストール
$ claude mcp add --env WRIT_API_KEY=<YOUR_WRIT_API_KEY> --env WRIT_SPONSOR_TOKEN=<YOUR_WRIT_SPONSOR_TOKEN> writ -- uvx writ-mcpCursorにWrit MCPをインストール
~/.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>"
}
}
}
}VS CodeにWrit MCPをインストール
.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>"
}
}
}
}Claude DesktopにWrit MCPをインストール
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>"
}
}
}
}CodexにWrit MCPをインストール
~/.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>"
Gemini CLIにWrit MCPをインストール
~/.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>"
}
}
}
}Writ MCPツール 17
READMEから検出writ_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 | — |
17個のツールをすべて表示ツールを折りたたむ
writ_explain_receiptwrit_tenant_notifywrit_principalswrit_verbswrit_keys
| writ_explain_receipt | — | |
| writ_tenant_notify | — | |
| writ_principals | — | |
| writ_verbs | — | |
| writ_keys | — |
設定
WRIT_API_KEY必須シークレットWrit API key (get one free at https://withwrit.com)
WRIT_SPONSOR_TOKENシークレットWrit sponsor token, only required for sponsor tools (grant, revoke, reinstate)
WRIT_BASE_URLOptional custom Writ API base URL (default: https://api.withwrit.com)
| 名前 | 説明 | 種類 |
|---|---|---|
| WRIT_API_KEY | Writ API key (get one free at https://withwrit.com) | 必須シークレット |
| WRIT_SPONSOR_TOKEN | Writ sponsor token, only required for sponsor tools (grant, revoke, reinstate) | シークレット |
| WRIT_BASE_URL | Optional custom Writ API base URL (default: https://api.withwrit.com) |
自動チェック
実行日 2026年11月13日詳細レポート →自動チェックに合格しました。これはセキュリティ監査ではありません。コードを読み、サーバーに必要最小限のアクセス権を与えてください。 チェックの仕組み
- ソースリポジトリがリンクされており、アクセス可能合格
- オープンソースライセンス (OSI)合格
- 過去1年以内にコミットまたはリリースあり合格
- パッケージ名が有名なパッケージに酷似していない合格
- リモートエンドポイントがHTTPSを使用未チェック
- 破壊的なツールがラベル付けされている合格
- モデルへの隠れた指示がない合格
- パッケージと依存関係に重大なアドバイザリがない合格
README
GitHubで見るwrit-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.
Writ MCPのよくある質問
Writ MCPをClaude Codeに追加するには
ターミナルでclaude mcp add --env WRIT_API_KEY=<YOUR_WRIT_API_KEY> --env WRIT_SPONSOR_TOKEN=<YOUR_WRIT_SPONSOR_TOKEN> writ -- uvx writ-mcpを実行します。すべてのプロジェクトで利用するには--scope userを追加します。
Writ MCPをCursorに追加するには
~/.cursor/mcp.jsonを開き、上記のインストールセクションに示すCursor設定を使ってmcpServersの下にサーバーを追加します。
Writ MCPが提供するツールは
17個のツールを提供しており、writ_check, writ_verify_token, writ_lease, writ_execute, writ_grantなどがあります。
書き込みチェックの結果としてどのような判定がありますか?
エージェントはALLOW、DENY、またはSTEP_UPの判定を受け取ります。
APIキーなしでWritをテストする方法はありますか?
writ_sandboxツールを使用すると、90秒間の無料デモ権限を利用できます。
STEP_UPの判定が発生した場合はどうなりますか?
エージェントが処理を続行するには、人間がスポンサーとしてwrit_grantまたはダッシュボード経由でアクションを承認する必要があります。