Skip to main content

priorrun-mcp

MCP server for Prior.Run — run focus-group rooms and deep tests on ad creatives and live pages from Claude Desktop, Claude Code, Codex, Gemini CLI, Cursor, Windsurf, Cline, Zed, or any MCP-compatible agent.

Install

Requires Python 3.11+. Install uv if you don't have it.

uvx priorrun-mcp

That's it — uvx fetches and runs the server on demand.

Configure

Grab an API key from prior.run/settings, then register the server with your agent host.

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "prior-run": {
      "command": "uvx",
      "args": ["priorrun-mcp"],
      "env": {
        "PRIORRUN_API_KEY": "pr_live_xxxxxxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

Claude Code

~/.claude/mcp.json (global) or .mcp.json in a project root:

{
  "mcpServers": {
    "prior-run": {
      "command": "uvx",
      "args": ["priorrun-mcp"],
      "env": { "PRIORRUN_API_KEY": "pr_live_..." }
    }
  }
}

Codex (OpenAI)

~/.codex/config.toml — TOML, not JSON:

[mcp_servers.prior-run]
command = "uvx"
args = ["priorrun-mcp"]

[mcp_servers.prior-run.env]
PRIORRUN_API_KEY = "pr_live_..."

Gemini CLI

~/.gemini/settings.json:

{
  "mcpServers": {
    "prior-run": {
      "command": "uvx",
      "args": ["priorrun-mcp"],
      "env": { "PRIORRUN_API_KEY": "pr_live_..." }
    }
  }
}

Cursor

~/.cursor/mcp.json (global) or .cursor/mcp.json (per-project):

{
  "mcpServers": {
    "prior-run": {
      "command": "uvx",
      "args": ["priorrun-mcp"],
      "env": { "PRIORRUN_API_KEY": "pr_live_..." }
    }
  }
}

Windsurf / Cline / Zed / other MCP hosts

All modern MCP hosts share the same mcpServers JSON shape used by Claude Code. Drop the same block into the host's MCP config file — check the host's docs for the exact path.

Tools

Room-first, mirroring the web app: every deep run starts from a focus-group room. Flow: list_custom_audiencespersona_audience_panel (seats the members) → persona_audience_ask (fast) → deep-run via a create_* tool with custom_audience_id + panel_member_indices (the seated members, both required).

Tool What it does
persona_audience_panel open the focus-group room — seats the members
persona_audience_ask ask the whole room one question (fast, + actions, @-targeting)
upload_room_image upload stimulus for a room ask (image ≤ 8 MB, or mp4/mov/webm video ≤ 100 MB)
persona_audience_verdict stat-sig A/B verdict over the full audience pool (99% CI) — images, pages, hooks, or videos
dismiss_room_member replace one seated member with a fresh draw
reset_room clear / swap / new room reset
create_room_thread / rename_room_thread campaign threads
get_room_turns server-side room transcript + field notes
interview_room_member / get_member_interview_history 1:1 with a single room member
create_room_brief distill a thread into a ship-ready creative brief
persona_audience_synthesis transcript → themes + quotes + advisory handoff hint
persona_interview / persona_interview_history 1:1 with a memo persona (+ transcript)
upload_interview_image stimulus for a memo interview (images only)
create_ads_single deep-test a single ad creative with your room
create_ads_compare two ad creatives head-to-head with your room
ads_inspiration_apply / ads_inspiration_get paired inspiration drafts from an ads memo
create_url_audit deep-walk a live URL with your room's members
create_url_compare two live URLs head-to-head with your room's members
create_creative_from_fieldnotes 3 ad creative variants (quote / editorial / bold graphic) generated from a focus-group's field notes — no memo required
create_mood / get_mood_job / list_mood_reports / get_mood / list_mood_cohorts / regenerate_mood / spawn_mood_audiences Mood of the Internet pipeline
list_audience_templates / list_custom_audiences / rename_custom_audience / delete_custom_audience audience management
get_memo fetch status + full memo JSON by id
wait_for_memo block until synthesis completes

Image arguments accept local file paths, https:// URLs, or base64. Create tools default to wait=True — the agent gets the completed memo in one tool call.

Example prompts

The agent picks the right tool from your wording. Say "ad creative" / "creative compare" / name a platform (Meta/TikTok/Google) for the ads tools, or "live page" / "walk this URL" for the URL tools.

Ads compare — evaluates the creative as it would appear in-feed (scroll-stop, hook clarity, brand recall), platform-aware:

Run a Prior.Run ads compare on ~/desktop/creative-a.jpg vs
~/desktop/creative-b.jpg. Campaign context: Gen Z skincare awareness on TikTok.

→ agent calls create_ads_compare with run_platform="tiktok", ads-specific synthesis (scroll-stop, hook, brand recall, no landing-page critique).

Both return a completed memo (~90s) with verdict, audience quotes, and a memo URL.

Environment variables

Variable Required Default Notes
PRIORRUN_API_KEY yes pr_live_... format. Generate at prior.run/settings.
PRIORRUN_API_BASE no https://api.prior.run Override for staging or local dev.

Links

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

priorrun_mcp-0.12.0.tar.gz (54.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

priorrun_mcp-0.12.0-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

Details for the file priorrun_mcp-0.12.0.tar.gz.

File metadata

  • Download URL: priorrun_mcp-0.12.0.tar.gz
  • Upload date:
  • Size: 54.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for priorrun_mcp-0.12.0.tar.gz
Algorithm Hash digest
SHA256 009e420689e659284995f9cd88c858f8bae6d9c2dcf91476abbb4c11b64cd333
MD5 a61c10b643ebfcd212c4aaed1d278160
BLAKE2b-256 30948b26cb17e6f228aff34042603d51a88080339bfec431a0b1564c1e7f0e84

See more details on using hashes here.

File details

Details for the file priorrun_mcp-0.12.0-py3-none-any.whl.

File metadata

  • Download URL: priorrun_mcp-0.12.0-py3-none-any.whl
  • Upload date:
  • Size: 14.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for priorrun_mcp-0.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 93a88b62d48ce89012f28f84d6082405f1fd890817cd5a7f9d2ff906230866e7
MD5 0f426504dc514c57817fb3a2626921b9
BLAKE2b-256 7e41126597eae5209954d4ffe94bd8533bf1532dcb218d4cb08401bbbd57ce56

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page