Enforces commit-time policy checks for AI agent writes with ALLOW, DENY, or STEP_UP decisions and a tamper-evident audit log.
다른 이름 AvenueDAdmin/pywrit, writ-mcp
- 스타
- 2
- Tools
- 15
- 다운로드, 30일
- —
- 최신 버전
- 0.1.2
- 마지막 커밋
- 2026년 11월 13일
- 라이선스
- MIT
Writ MCP란?
Writ은(는) MCP server입니다. Enforces commit-time policy checks for AI agent writes with ALLOW, DENY, or STEP_UP decisions and a tamper-evident audit log. 15개 도구를 제공합니다. 예: writ_check, writ_verify_token, writ_grant.
프로젝트 README에서 생성된 요약
Writ MCP server 정보
Writ provides point-of-action control for AI agents by enforcing policy checks before any consequential write operation occurs. This MCP server uses a stdio transport to return ALLOW, DENY, or STEP_UP decisions, ensuring that agents operate within defined boundaries. It is designed for developers using MCP-compatible clients like Claude Desktop or Claude Code, requiring a WRIT_API_KEY for full functionality.
The system implements a check-before-write loop where the agent calls writ_check to receive a 90-second authToken. This token is then validated via writ_verify_token immediately before the action is executed. For higher security, the STEP_UP decision requires a human sponsor to approve the request through writ_grant. Every decision generates a tamper-evident audit receipt accessible via writ_receipts, providing a clear history of agent actions and authorizations.
활용 사례
- 1Verify agent write permissionsAsk the agent to check if it has permission to perform a specific write action before it proceeds.
- 2Secure sensitive operations with tokensUse a time-bound token to ensure an authorized write operation is still valid at the moment of execution.
- 3Require human intervention for risky tasksTrigger a manual approval process when an agent attempts an action that requires a step-up decision.
- 4Audit agent decision historyRetrieve a detailed trail of all previous authorization decisions and outcomes.
프로젝트의 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 도구 15
README에서 감지됨writ_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 | — |
도구 15개 모두 보기도구 수 줄이기
writ_principalswrit_verbswrit_keys
| 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월 12일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능통과
- 오픈 소스 라이선스 (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.
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.
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를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
Writ MCP는 어떤 도구를 제공하나요?
15개 도구를 제공합니다. 예: writ_check, writ_verify_token, writ_grant, writ_receipts, writ_policy.
How does the check-before-write loop work?
The agent calls writ_check to receive an ALLOW, DENY, or STEP_UP decision; an ALLOW provides a 90-second authToken which is then verified via writ_verify_token before execution.
Can I try Writ without an API key?
Yes, you can use the writ_sandbox tool for a free 90-second demo grant without needing a key.
What happens if a STEP_UP decision is returned?
A human sponsor must approve the action via writ_grant or the dashboard before the agent can proceed.