Skip to main content

protoface-mcp

MCP server for Protoface media generation: discover models, submit async generation runs, and collect outputs — from Codex, Claude Code, Cursor, or any MCP client. 17 tools over the Protoface API; realtime sessions/avatars and website embeds are intentionally out of scope.

Install

Requires uv and a Protoface API key (create one).

Codex — add to ~/.codex/config.toml:

[mcp_servers.protoface]
command = "uvx"
args = ["protoface-mcp"]
env_vars = ["PROTOFACE_API_KEY"]

with PROTOFACE_API_KEY=sk_live_... exported in your shell.

Claude Code — add to .mcp.json (project) or ~/.claude.json (personal):

{
  "mcpServers": {
    "protoface": {
      "command": "uvx",
      "args": ["protoface-mcp"],
      "env": { "PROTOFACE_API_KEY": "sk_live_..." }
    }
  }
}

Then ask your agent to generate something:

Using Protoface, generate a 5-second video of a lighthouse at dusk.

The companion skill (skills/protoface-media/SKILL.md in this repo, published to the docs site) teaches agents the workflow: read the model's input schema first, check quota, submit, poll, collect outputs.

Tools

Group Tools
Runs submit_run, get_run_status, get_run, cancel_run, list_runs, list_run_events
Models list_models, get_model (input contracts live here)
Assets upload_asset, list_assets, get_asset, download_asset, delete_asset
Spend & health get_usage_summary, list_billing_plans, get_quota_limits, get_status

Run statuses: queuedrunningcompleted / failed / canceled. Poll the cheap get_run_status, not get_run. Pass an idempotency_key to submit_run when retrying so a duplicate never double-spends.

Set PROTOFACE_BASE_URL to point at staging instead of https://api.protoface.com.

Development

uv run pytest packages/mcp        # drift + tool tests

tests/test_tool_coverage.py enforces spec parity: every media-generation operationId in apispec/openapi.json must have a tool. The wheel bundles the workspace SDK (protoface/...) so installs have no private dependencies — the protoface PyPI name belongs to an unrelated package, so it must never appear in dependencies.

Release: push a protoface-mcp-vX.Y.Z tag matching packages/mcp/pyproject.toml (see .github/workflows/publish-mcp.yml).

Release files for protoface-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for protoface-mcp 0.1.0
File Interpreter ABI Platform
protoface_mcp-0.1.0-py3-none-any.whl Python 3 none any Details

Release files / protoface_mcp-0.1.0-py3-none-any.whl

Download URL protoface_mcp-0.1.0-py3-none-any.whl
Size 29.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7621327dc7f9297b442f003c7832e957b39f0406fefc5af51d8f08bf7ec7e5a8
BLAKE2b-256 checksum
How to use checksums
76a143bd8a96c61a2a87214b674dae50aa55bd5343f7cc2a1cc21b74b805735c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

0.1.0 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page