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)
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
persona_audience_synthesis transcript → themes + quotes + advisory handoff hint
persona_interview / persona_interview_history 1:1 with a persona from an archived memo (+ transcript)
upload_interview_image stimulus for a 1:1 interview (images only)
create_url_audit / get_url_audit deep-walk a live URL with your room's members, on desktop or mobile — queued, ~45–55 min
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 an archived memo by id — nothing writes new ones

Image arguments accept local file paths, https:// URLs, or base64.

create_url_audit queues a walk and, by default (wait=True), polls until it lands and returns the walk itself. One agent walks the whole page in a real browser, which takes 45–55 minutes — so pass wait=False and poll get_url_audit(walk_id) yourself if your host has a tool timeout under an hour, or if you have anything else to be getting on with.

Example prompts

The agent picks the right tool from your wording. Say "ask my room" / "what do they think" for the room tools, or "live page" / "walk this URL" for the URL tools.

URL walk — the panel walks the page in a real browser, on the screen you name:

Walk brand.com/landing on a phone with my Gen Z skincare room.

→ agent calls create_url_audit with device="mobile" and the seated members, waits out the walk (45–55 min) and returns it: the walker's own account of the page, every finding pinned to the screen it was found on, and one fix per finding in the order to do them. Leave the device out for a 1280px laptop.

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.14.0.tar.gz (53.3 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.14.0-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: priorrun_mcp-0.14.0.tar.gz
  • Upload date:
  • Size: 53.3 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.14.0.tar.gz
Algorithm Hash digest
SHA256 afa3503b84a04a3c8031d878223ca8afed573be5ec656e0030b52ee01604ebcc
MD5 dbf9b3f9c7354bd6bdf6e08cb0796fad
BLAKE2b-256 f0a3a1bb2f1ddd45c60d4e8d85e87104f741bd2013e7b15c8b27da49bdddb0d6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: priorrun_mcp-0.14.0-py3-none-any.whl
  • Upload date:
  • Size: 13.3 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.14.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8e67781eeb5245f3891a65472f9388c2ac993fb49b1226f0edf010f026cd206d
MD5 ac9299647bcf96271d4a4df612b56ae4
BLAKE2b-256 f060a673f1f973bef1db25c1d1c614470fcc389678846096b96da683234bbce0

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.14.0 This release

2 files

0.13.0

2 files

0.12.0

2 files

0.11.1

2 files

0.10.0

2 files

0.9.0

2 files

0.8.0

2 files

0.7.0

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

0.5.0

2 files

0.4.1

2 files

0.4.0

2 files

0.3.0

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

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