Run Prior.Run audience simulations from Claude Desktop, Claude Code, Cursor, or any MCP-compatible agent.
Project description
priorrun-mcp
MCP server for Prior.Run — run synthetic-audience simulations on design variants and ad creatives 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
| Tool | What it does |
|---|---|
create_design_review |
single design review |
create_design_compare |
two design variants head-to-head |
create_ads_single |
single ad creative evaluation |
create_ads_compare |
two ad creatives head-to-head |
create_creative_from_fieldnotes |
3 ad creative variants (quote / editorial / bold graphic) generated from a focus-group's field notes — no memo required |
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 "landing page" / "design compare" / "variant" for the design tools.
Design compare — evaluates the page itself (layout, hierarchy, CTA clarity, conversion readiness):
Run a Prior.Run design compare on ~/desktop/landing-a.png vs
~/desktop/landing-b.png targeting the gen_z audience template. Hypothesis:
the warmer palette will lift click-through.
→ agent calls create_design_compare, full page-level synthesis, burns 1 analysis credit.
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
- Product: prior.run
- API docs: prior.run/docs/api
- MCP docs: prior.run/docs/mcp
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file priorrun_mcp-0.6.2.tar.gz.
File metadata
- Download URL: priorrun_mcp-0.6.2.tar.gz
- Upload date:
- Size: 50.7 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a637486c62aba334c2b885a568e380c5d402cfa9b7080eae66a74061731c375
|
|
| MD5 |
f8dfd87779e92e1d7320f1bfa6632fdc
|
|
| BLAKE2b-256 |
53528d64f1000c0a159d15eecdbe1402977f546757bd74bdf09fbf944be269dd
|
File details
Details for the file priorrun_mcp-0.6.2-py3-none-any.whl.
File metadata
- Download URL: priorrun_mcp-0.6.2-py3-none-any.whl
- Upload date:
- Size: 10.5 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b71d0cdb237529072ee14c9c51a2d508f8d82f32ba2dc85e6c183c1ae4ec926
|
|
| MD5 |
f5a4ddeb3c79e4c0d46fd73343c80fe6
|
|
| BLAKE2b-256 |
fd86164c31a9ef99f21fff6d980cd14b3e419fdaede5c544633d266aa71bcf67
|