CLI & MCP Server
Manage projects, invites, and access from the terminal or from any MCP-compatible coding agent. Both ship in the same Python package.
Installation
Authentication
- Log in to your ProtoWall dashboard
- Go to API Keys and create a new key
- Copy the key (it starts with
pw_sk_and is shown only once) - Set it as an environment variable:
export PROTOWALL_API_KEY=pw_sk_your_key_here
You can revoke keys anytime from the dashboard. Revoking a key immediately blocks all CLI and MCP access using that key.
CLI commands
All output is JSON. Pipe to jq for formatting.
List projects
protowall projects
Project detail
protowall project <slug>
Create project
protowall project create
Prompts for name and prototype URL interactively.
Delete project
protowall project delete <slug>
List invites
protowall invites <slug>
Send invite
protowall invite <slug> <email>
Revoke access
protowall revoke <slug> <invite-id>
Query audit log
protowall audit <slug>
Rotate origin secret
protowall rotate-secret <slug>
Generates a new origin secret. Update the PROTOWALL_SECRET env var in your deployment after rotating.
Engagement analytics Pro
Project usage
protowall usage <slug> [7d|30d]
Project-wide reviewer engagement rollup. Static assets and your own preview traffic are filtered out.
Per-reviewer engagement
protowall reviewer <slug> <invite-id> [7d|30d]
Per-reviewer top routes, time-on-page, daily timeline, first/last seen.
List sessions (with cached session stories)
protowall sessions <slug> <invite-id>
Read-only — no API cost, no cap consumed. Returns sessions with their cached stories (or null if not generated).
Generate session story
protowall summarize-session <slug> <invite-id> <session-start>
Generates (or returns the cached) one-paragraph narrative of a session. Counts against the monthly cap (50/month, shared across dashboard, CLI, and MCP).
Project previews Pro
List previews
protowall previews <slug> [--open]
List parallel previews of a project. --open filters to currently-resolving ones.
Create preview
protowall preview create <slug> <suffix> <url> [--label=...] [--ref=...]
Creates a parallel preview at {slug}-{suffix}.proxy.protowall.app. Use --ref for upstream reconciliation (e.g. github:org/repo#42).
Update preview
protowall preview update <slug> <preview-id> [--url=...] [--label=...] [--ref=...]
Update prototype URL, label, or external_ref. The slug suffix is immutable.
Close preview
protowall preview close <slug> <preview-id>
Soft-close a preview when its PR merges or experiment ends. Idempotent. History stays queryable.
Access requests
List access requests
protowall requests <slug> [pending|approved|declined]
Strangers who landed on a project URL and clicked Request access. Filterable by status.
Approve request
protowall request approve <slug> <request-id>
Creates an Invite and sends the standard invite email. Hits the same per-project invite cap as protowall invite.
Decline request
protowall request decline <slug> <request-id>
Silent — no email back to the requester (privacy: don't leak project status).
Example: list projects and pipe to jq
protowall projects | jq '.[].slug'
MCP server
The same protowall package includes an MCP server (stdio transport). Any MCP-compatible agent can manage your ProtoWall projects directly.
Claude Code
Add to your project's .mcp.json:
{
"mcpServers": {
"protowall": {
"command": "protowall-mcp",
"env": {
"PROTOWALL_API_KEY": "pw_sk_your_key_here"
}
}
}
}
Cursor
Add to your .cursor/mcp.json:
{
"mcpServers": {
"protowall": {
"command": "protowall-mcp",
"env": {
"PROTOWALL_API_KEY": "pw_sk_your_key_here"
}
}
}
}
Available tools
| MCP tool | CLI equivalent |
|---|---|
list_projects | protowall projects |
create_project | protowall project create |
send_invite | protowall invite |
revoke_access | protowall revoke |
get_audit_log | protowall audit |
rotate_secret | protowall rotate-secret |
get_project_usage Pro | protowall usage |
get_reviewer_engagement Pro | protowall reviewer |
list_reviewer_sessions Pro | protowall sessions |
summarize_reviewer_session Pro | protowall summarize-session |
list_previews Pro | protowall previews |
create_preview Pro | protowall preview create |
update_preview Pro | protowall preview update |
close_preview Pro | protowall preview close |
list_access_requests | protowall requests |
approve_access_request | protowall request approve |
decline_access_request | protowall request decline |
REST API
The CLI and MCP server both wrap the REST API. If you want to build your own integration, the full OpenAPI 3.0 spec is available at:
GET /api/v1/openapi.json
Authenticate with Authorization: Bearer pw_sk_...
Open source
The CLI and MCP server are open source. Contributions and bug reports are welcome.
View on GitHubNew to ProtoWall? Read the Setup Guide
Questions? Check the FAQ or email [email protected]