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

pip install protowall

Requires Python 3.10+. Published as protowall on PyPI. Source on GitHub.

Authentication

  1. Log in to your ProtoWall dashboard
  2. Go to API Keys and create a new key
  3. Copy the key (it starts with pw_sk_ and is shown only once)
  4. 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 toolCLI equivalent
list_projectsprotowall projects
create_projectprotowall project create
send_inviteprotowall invite
revoke_accessprotowall revoke
get_audit_logprotowall audit
rotate_secretprotowall rotate-secret
get_project_usage Proprotowall usage
get_reviewer_engagement Proprotowall reviewer
list_reviewer_sessions Proprotowall sessions
summarize_reviewer_session Proprotowall summarize-session
list_previews Proprotowall previews
create_preview Proprotowall preview create
update_preview Proprotowall preview update
close_preview Proprotowall preview close
list_access_requestsprotowall requests
approve_access_requestprotowall request approve
decline_access_requestprotowall 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 GitHub

New to ProtoWall? Read the Setup Guide

Questions? Check the FAQ or email [email protected]