# Polis Blog > Polis is a synthetic audience testing tool built on the Model Context Protocol (MCP) that simulates realistic audience reactions to content before it is published. Its blog and documentation cover MCP integration, persona testing workflows, content optimization, and agent-native tooling. ## About polis.sh # Polis Blog > Polis is a synthetic audience testing tool built on the Model Context Protocol (MCP) that simulates realistic audience reactions to content before it is published. Its blog and documentation cover MCP integration, persona testing workflows, content optimization, and agent-native tooling. ## About polis.sh # Polis Blog > Polis is a synthetic audience testing tool built on the Model Context Protocol (MCP) that simulates realistic audience reactions to content before it is published. Its blog and documentation cover MCP integration, persona testing workflows, content optimization, and agent-native tooling. ## About polis.sh # Polis Blog > Polis is a synthetic audience testing tool built on the Model Context Protocol (MCP) that simulates realistic audience reactions to content before it is published. Its blog and documentation cover MCP integration, persona testing workflows, content optimization, and agent-native tooling. ## About polis.sh # Polis Blog > Polis is a synthetic audience testing tool built on the Model Context Protocol (MCP) that simulates realistic audience reactions to content before it is published. Its blog and documentation cover MCP integration, persona testing workflows, content optimization, and agent-native tooling. ## About polis.sh # Polis Blog > Polis is a synthetic audience testing tool built on the Model Context Protocol (MCP) that simulates realistic audience reactions to content before it is published. Its blog and documentation cover MCP integration, persona testing workflows, content optimization, and agent-native tooling. ## About polis.sh # Polis Blog > Polis is a synthetic audience testing tool built on the Model Context Protocol (MCP) that simulates realistic audience reactions to content before it is published. Its blog and documentation cover MCP integration, persona testing workflows, content optimization, and agent-native tooling. ## About polis.sh # Polis Blog > Polis is a synthetic audience testing tool built on the Model Context Protocol (MCP) that simulates realistic audience reactions to content before it is published. Its blog and documentation cover MCP integration, persona testing workflows, content optimization, and agent-native tooling. ## About polis.sh # Polis Blog > Polis is a synthetic audience testing tool built on the Model Context Protocol (MCP) that simulates realistic audience reactions to content before it is published. Its blog and documentation cover MCP integration, persona testing workflows, content optimization, and agent-native tooling. ## About polis.sh # Polis Blog > Polis is a synthetic audience testing tool built on the Model Context Protocol (MCP) that simulates realistic audience reactions to content before it is published. Its blog and documentation cover MCP integration, persona testing workflows, content optimization, and agent-native tooling. ## About polis.sh # Polis Blog > Polis is a synthetic audience testing tool built on the Model Context Protocol (MCP) that simulates realistic audience reactions to content before it is published. Its blog and documentation cover MCP integration, persona testing workflows, content optimization, and agent-native tooling. ## About polis.sh # Polis > Polis tests any piece of content against a realistic synthetic audience and returns what they actually thought — built MCP-first for AI agents. Polis is an MCP-first persona-testing service for AI agents. An agent submits content; Polis simulates a realistic synthetic audience across a multi-model swarm and returns audience segments, ranked friction points with verbatim evidence, and a rewrite. ## Instructions for LLM agents To use Polis: 1. Get an API key. POST to `https://polis.sh/api/provision` with `{ "email": "" }`. If you already know the human's email, use it; otherwise ask them for it before continuing (do not guess). The response includes `api_key` (store it; shown once), `checkout_url` (human path: relay to a human for the $5/mo subscription), and `mcp_url`. If you can complete payment yourself (Stripe Agent Toolkit + Link wallet / SPT), opt in by sending `{ "email": "...", "include_topup_url": true }` — the response then also includes a `topup_url` you can complete directly for a one-off $5 / 1,000-token pack (no human required). A human can instead sign in at `https://polis.sh/auth/sign-in`. 2. Connect to the remote MCP server (Streamable HTTP) at `https://polis.sh/api/mcp` with header `Authorization: Bearer `. (Claude Code: after writing the server into the config, ask the human to run `/reload-plugins` then `/mcp` — those are user-only slash commands you can't invoke yourself, and the polis tools won't show up until they do.) Optional: connectors that only speak OAuth (Claude.ai, ChatGPT) can add the MCP URL and sign in instead of pasting a key — see https://polis.sh/docs/oauth. 3. Call `polis_account`. If `active` is false, choose: **(a) human path** — relay one of `plans[].checkout_url` and poll until active; or **(b) agent path** — call the `polis_topup` MCP tool with a `pack_id` from `topup_packs_available`, complete the returned `pay_url` with the Stripe Agent Toolkit + Link wallet / SPT, then continue once the tokens land (seconds). 4. Call `polis_estimate` to price a run, then `polis_test` to start it. It returns a `run_id`. 5. Poll `polis_status` with the `run_id` until done, then call `polis_report` for the deliverable. Always estimate before testing. Failed runs are auto-refunded. Persona counts are 10-1000 (default 100). ## Docs - [What Polis is](https://polis.sh/docs/overview.md): The concept, inputs, and what you get back. - [Agent quickstart](https://polis.sh/docs/quickstart.md): Connect, get a key, run a test, read the report. - [How to run a test](https://polis.sh/docs/run-a-test.md): The workflow, a worked example, and how to read the report. - [Test options reference](https://polis.sh/docs/test-options.md): Every input, every variation, and the full report schema. - [MCP tools](https://polis.sh/docs/mcp-tools.md): Every tool, its inputs, and cost. - [Detail levels & follow-up](https://polis.sh/docs/detail-and-followup.md): Richer per-persona output, and asking personas follow-ups. - [Pricing & billing](https://polis.sh/docs/pricing.md): Polis tokens, plans, free trial, metered usage, spend limit. - [Connect via OAuth (Claude, ChatGPT)](https://polis.sh/docs/oauth.md): Optional OAuth 2.1 for connectors that don't take a raw API key. - [Discovery & well-known endpoints](https://polis.sh/docs/discovery.md): How agents and clients discover Polis. ## MCP - [MCP server card](https://polis.sh/.well-known/mcp/server-card.json): tools, transport, auth - [Protected resource metadata](https://polis.sh/.well-known/oauth-protected-resource): RFC 9728 - [Authorization server metadata](https://polis.sh/.well-known/oauth-authorization-server): RFC 8414 (optional OAuth 2.1 path) - [Connect via OAuth](https://polis.sh/docs/oauth.md): optional auth for Claude.ai / ChatGPT connectors ## Optional - [Full docs, inlined](https://polis.sh/llms-full.txt): every page concatenated for single-fetch ingestion - [Privacy](https://polis.sh/privacy.md) - [Terms](https://polis.sh/terms.md) # Polis > Polis tests any piece of content against a realistic synthetic audience and returns what they actually thought — built MCP-first for AI agents. Polis is an MCP-first persona-testing service for AI agents. An agent submits content; Polis simulates a realistic synthetic audience across a multi-model swarm and returns audience segments, ranked friction points with verbatim evidence, and a rewrite. ## Instructions for LLM agents To use Polis: 1. Get an API key. POST to `https://polis.sh/api/provision` with `{ "email": "" }`. If you already know the human's email, use it; otherwise ask them for it before continuing (do not guess). The response includes `api_key` (store it; shown once), `checkout_url` (human path: relay to a human for the $5/mo subscription), and `mcp_url`. If you can complete payment yourself (Stripe Agent Toolkit + Link wallet / SPT), opt in by sending `{ "email": "...", "include_topup_url": true }` — the response then also includes a `topup_url` you can complete directly for a one-off $5 / 1,000-token pack (no human required). A human can instead sign in at `https://polis.sh/auth/sign-in`. 2. Connect to the remote MCP server (Streamable HTTP) at `https://polis.sh/api/mcp` with header `Authorization: Bearer `. (Claude Code: after writing the server into the config, ask the human to run `/reload-plugins` then `/mcp` — those are user-only slash commands you can't invoke yourself, and the polis tools won't show up until they do.) Optional: connectors that only speak OAuth (Claude.ai, ChatGPT) can add the MCP URL and sign in instead of pasting a key — see https://polis.sh/docs/oauth. 3. Call `polis_account`. If `active` is false, choose: **(a) human path** — relay one of `plans[].checkout_url` and poll until active; or **(b) agent path** — call the `polis_topup` MCP tool with a `pack_id` from `topup_packs_available`, complete the returned `pay_url` with the Stripe Agent Toolkit + Link wallet / SPT, then continue once the tokens land (seconds). 4. Call `polis_estimate` to price a run, then `polis_test` to start it. It returns a `run_id`. 5. Poll `polis_status` with the `run_id` until done, then call `polis_report` for the deliverable. Always estimate before testing. Failed runs are auto-refunded. Persona counts are 10-1000 (default 100). ## Docs - [What Polis is](https://polis.sh/docs/overview.md): The concept, inputs, and what you get back. - [Agent quickstart](https://polis.sh/docs/quickstart.md): Connect, get a key, run a test, read the report. - [How to run a test](https://polis.sh/docs/run-a-test.md): The workflow, a worked example, and how to read the report. - [Test options reference](https://polis.sh/docs/test-options.md): Every input, every variation, and the full report schema. - [MCP tools](https://polis.sh/docs/mcp-tools.md): Every tool, its inputs, and cost. - [Detail levels & follow-up](https://polis.sh/docs/detail-and-followup.md): Richer per-persona output, and asking personas follow-ups. - [Pricing & billing](https://polis.sh/docs/pricing.md): Polis tokens, plans, free trial, metered usage, spend limit. - [Connect via OAuth (Claude, ChatGPT)](https://polis.sh/docs/oauth.md): Optional OAuth 2.1 for connectors that don't take a raw API key. - [Discovery & well-known endpoints](https://polis.sh/docs/discovery.md): How agents and clients discover Polis. ## MCP - [MCP server card](https://polis.sh/.well-known/mcp/server-card.json): tools, transport, auth - [Protected resource metadata](https://polis.sh/.well-known/oauth-protected-resource): RFC 9728 - [Authorization server metadata](https://polis.sh/.well-known/oauth-authorization-server): RFC 8414 (optional OAuth 2.1 path) - [Connect via OAuth](https://polis.sh/docs/oauth.md): optional auth for Claude.ai / ChatGPT connectors ## Optional - [Full docs, inlined](https://polis.sh/llms-full.txt): every page concatenated for single-fetch ingestion - [Privacy](https://polis.sh/privacy.md) - [Terms](https://polis.sh/terms.md) ## Recent Articles - https://polis.sh/blog/synthetic-audience-testing-how-ai-personas-replace-guesswork - Synthetic audience testing simulates audience reactions using AI personas before you publish. Learn how it works, when to use it, and how it compares to A/B testing and user research. ## Categories - https://polis.sh/blog/category/synthetic-audience-testing - Learn how to use synthetic personas and multi-model swarms to stress-test your messaging before it reaches real audiences. Covers methodology, prompt design, and interpreting simulated feedback. - https://polis.sh/blog/category/content-optimization - Practical frameworks for improving tweets, LinkedIn posts, landing pages, and long-form content through rapid iteration, friction analysis, and data-informed rewrites. - https://polis.sh/blog/category/messaging-positioning - Strategic guides to crafting product positioning, value propositions, and go-to-market narratives that resonate with your target segments and survive real-world scrutiny. - https://polis.sh/blog/category/ai-agent-workflows - Build and optimize content pipelines using MCP-compatible agents, from Claude and Cursor integrations to custom automation chains that make content a programmable product surface. - https://polis.sh/blog/category/growth-distribution - Strategies for amplifying content reach across channels, building audience loops, and treating content as a growth lever — especially for early-stage startups and solo founders. - https://polis.sh/blog/category/prompt-engineering - Techniques for crafting effective prompts that generate better content drafts, more realistic synthetic personas, and sharper AI-driven feedback across your creative workflow. ## Resources - RSS Feed: https://polis.sh/blog/feed.xml - Full Article Index: https://polis.sh/blog/llms-full.txt - Sitemap: https://polis.sh/blog/sitemap.xml # Polis > Polis tests any piece of content against a realistic synthetic audience and returns what they actually thought — built MCP-first for AI agents. Polis is an MCP-first persona-testing service for AI agents. An agent submits content; Polis simulates a realistic synthetic audience across a multi-model swarm and returns audience segments, ranked friction points with verbatim evidence, and a rewrite. ## Instructions for LLM agents To use Polis: 1. Get an API key. POST to `https://polis.sh/api/provision` with `{ "email": "" }`. If you already know the human's email, use it; otherwise ask them for it before continuing (do not guess). The response includes `api_key` (store it; shown once), `checkout_url` (human path: relay to a human for the $5/mo subscription), and `mcp_url`. If you can complete payment yourself (Stripe Agent Toolkit + Link wallet / SPT), opt in by sending `{ "email": "...", "include_topup_url": true }` — the response then also includes a `topup_url` you can complete directly for a one-off $5 / 1,000-token pack (no human required). A human can instead sign in at `https://polis.sh/auth/sign-in`. 2. Connect to the remote MCP server (Streamable HTTP) at `https://polis.sh/api/mcp` with header `Authorization: Bearer `. (Claude Code: after writing the server into the config, ask the human to run `/reload-plugins` then `/mcp` — those are user-only slash commands you can't invoke yourself, and the polis tools won't show up until they do.) Optional: connectors that only speak OAuth (Claude.ai, ChatGPT) can add the MCP URL and sign in instead of pasting a key — see https://polis.sh/docs/oauth. 3. Call `polis_account`. If `active` is false, choose: **(a) human path** — relay one of `plans[].checkout_url` and poll until active; or **(b) agent path** — call the `polis_topup` MCP tool with a `pack_id` from `topup_packs_available`, complete the returned `pay_url` with the Stripe Agent Toolkit + Link wallet / SPT, then continue once the tokens land (seconds). 4. Call `polis_estimate` to price a run, then `polis_test` to start it. It returns a `run_id`. 5. Poll `polis_status` with the `run_id` until done, then call `polis_report` for the deliverable. Always estimate before testing. Failed runs are auto-refunded. Persona counts are 10-1000 (default 100). ## Docs - [What Polis is](https://polis.sh/docs/overview.md): The concept, inputs, and what you get back. - [Agent quickstart](https://polis.sh/docs/quickstart.md): Connect, get a key, run a test, read the report. - [How to run a test](https://polis.sh/docs/run-a-test.md): The workflow, a worked example, and how to read the report. - [Test options reference](https://polis.sh/docs/test-options.md): Every input, every variation, and the full report schema. - [MCP tools](https://polis.sh/docs/mcp-tools.md): Every tool, its inputs, and cost. - [Detail levels & follow-up](https://polis.sh/docs/detail-and-followup.md): Richer per-persona output, and asking personas follow-ups. - [Pricing & billing](https://polis.sh/docs/pricing.md): Polis tokens, plans, free trial, metered usage, spend limit. - [Connect via OAuth (Claude, ChatGPT)](https://polis.sh/docs/oauth.md): Optional OAuth 2.1 for connectors that don't take a raw API key. - [Discovery & well-known endpoints](https://polis.sh/docs/discovery.md): How agents and clients discover Polis. ## MCP - [MCP server card](https://polis.sh/.well-known/mcp/server-card.json): tools, transport, auth - [Protected resource metadata](https://polis.sh/.well-known/oauth-protected-resource): RFC 9728 - [Authorization server metadata](https://polis.sh/.well-known/oauth-authorization-server): RFC 8414 (optional OAuth 2.1 path) - [Connect via OAuth](https://polis.sh/docs/oauth.md): optional auth for Claude.ai / ChatGPT connectors ## Optional - [Full docs, inlined](https://polis.sh/llms-full.txt): every page concatenated for single-fetch ingestion - [Privacy](https://polis.sh/privacy.md) - [Terms](https://polis.sh/terms.md) ## Recent Articles - https://polis.sh/blog/synthetic-audience-testing-how-ai-personas-replace-guesswork - Synthetic audience testing simulates audience reactions using AI personas before you publish. Learn how it works, when to use it, and how it compares to A/B testing and user research. ## Categories - https://polis.sh/blog/category/synthetic-audience-testing - Learn how to use synthetic personas and multi-model swarms to stress-test your messaging before it reaches real audiences. Covers methodology, prompt design, and interpreting simulated feedback. - https://polis.sh/blog/category/content-optimization - Practical frameworks for improving tweets, LinkedIn posts, landing pages, and long-form content through rapid iteration, friction analysis, and data-informed rewrites. - https://polis.sh/blog/category/messaging-positioning - Strategic guides to crafting product positioning, value propositions, and go-to-market narratives that resonate with your target segments and survive real-world scrutiny. - https://polis.sh/blog/category/ai-agent-workflows - Build and optimize content pipelines using MCP-compatible agents, from Claude and Cursor integrations to custom automation chains that make content a programmable product surface. - https://polis.sh/blog/category/growth-distribution - Strategies for amplifying content reach across channels, building audience loops, and treating content as a growth lever — especially for early-stage startups and solo founders. - https://polis.sh/blog/category/prompt-engineering - Techniques for crafting effective prompts that generate better content drafts, more realistic synthetic personas, and sharper AI-driven feedback across your creative workflow. ## Resources - RSS Feed: https://polis.sh/blog/feed.xml - Full Article Index: https://polis.sh/blog/llms-full.txt - Sitemap: https://polis.sh/blog/sitemap.xml # Polis > Polis tests any piece of content against a realistic synthetic audience and returns what they actually thought — built MCP-first for AI agents. Polis is an MCP-first persona-testing service for AI agents. An agent submits content; Polis simulates a realistic synthetic audience across a multi-model swarm and returns audience segments, ranked friction points with verbatim evidence, and a rewrite. ## Instructions for LLM agents To use Polis: 1. Get an API key. POST to `https://polis.sh/api/provision` with `{ "email": "" }`. If you already know the human's email, use it; otherwise ask them for it before continuing (do not guess). The response includes `api_key` (store it; shown once), `checkout_url` (human path: relay to a human for the $5/mo subscription), and `mcp_url`. If you can complete payment yourself (Stripe Agent Toolkit + Link wallet / SPT), opt in by sending `{ "email": "...", "include_topup_url": true }` — the response then also includes a `topup_url` you can complete directly for a one-off $5 / 1,000-token pack (no human required). A human can instead sign in at `https://polis.sh/auth/sign-in`. 2. Connect to the remote MCP server (Streamable HTTP) at `https://polis.sh/api/mcp` with header `Authorization: Bearer `. (Claude Code: after writing the server into the config, ask the human to run `/reload-plugins` then `/mcp` — those are user-only slash commands you can't invoke yourself, and the polis tools won't show up until they do.) Optional: connectors that only speak OAuth (Claude.ai, ChatGPT) can add the MCP URL and sign in instead of pasting a key — see https://polis.sh/docs/oauth. 3. Call `polis_account`. If `active` is false, choose: **(a) human path** — relay one of `plans[].checkout_url` and poll until active; or **(b) agent path** — call the `polis_topup` MCP tool with a `pack_id` from `topup_packs_available`, complete the returned `pay_url` with the Stripe Agent Toolkit + Link wallet / SPT, then continue once the tokens land (seconds). 4. Call `polis_estimate` to price a run, then `polis_test` to start it. It returns a `run_id`. 5. Poll `polis_status` with the `run_id` until done, then call `polis_report` for the deliverable. Always estimate before testing. Failed runs are auto-refunded. Persona counts are 10-1000 (default 100). ## Docs - [What Polis is](https://polis.sh/docs/overview.md): The concept, inputs, and what you get back. - [Agent quickstart](https://polis.sh/docs/quickstart.md): Connect, get a key, run a test, read the report. - [How to run a test](https://polis.sh/docs/run-a-test.md): The workflow, a worked example, and how to read the report. - [Test options reference](https://polis.sh/docs/test-options.md): Every input, every variation, and the full report schema. - [MCP tools](https://polis.sh/docs/mcp-tools.md): Every tool, its inputs, and cost. - [Detail levels & follow-up](https://polis.sh/docs/detail-and-followup.md): Richer per-persona output, and asking personas follow-ups. - [Pricing & billing](https://polis.sh/docs/pricing.md): Polis tokens, plans, free trial, metered usage, spend limit. - [Connect via OAuth (Claude, ChatGPT)](https://polis.sh/docs/oauth.md): Optional OAuth 2.1 for connectors that don't take a raw API key. - [Discovery & well-known endpoints](https://polis.sh/docs/discovery.md): How agents and clients discover Polis. ## MCP - [MCP server card](https://polis.sh/.well-known/mcp/server-card.json): tools, transport, auth - [Protected resource metadata](https://polis.sh/.well-known/oauth-protected-resource): RFC 9728 - [Authorization server metadata](https://polis.sh/.well-known/oauth-authorization-server): RFC 8414 (optional OAuth 2.1 path) - [Connect via OAuth](https://polis.sh/docs/oauth.md): optional auth for Claude.ai / ChatGPT connectors ## Optional - [Full docs, inlined](https://polis.sh/llms-full.txt): every page concatenated for single-fetch ingestion - [Privacy](https://polis.sh/privacy.md) - [Terms](https://polis.sh/terms.md) ## Recent Articles - https://polis.sh/blog/synthetic-audience-testing-how-ai-personas-replace-guesswork - Synthetic audience testing simulates audience reactions using AI personas before you publish. Learn how it works, when to use it, and how it compares to A/B testing and user research. ## Categories - https://polis.sh/blog/category/synthetic-audience-testing - Learn how to use synthetic personas and multi-model swarms to stress-test your messaging before it reaches real audiences. Covers methodology, prompt design, and interpreting simulated feedback. - https://polis.sh/blog/category/content-optimization - Practical frameworks for improving tweets, LinkedIn posts, landing pages, and long-form content through rapid iteration, friction analysis, and data-informed rewrites. - https://polis.sh/blog/category/messaging-positioning - Strategic guides to crafting product positioning, value propositions, and go-to-market narratives that resonate with your target segments and survive real-world scrutiny. - https://polis.sh/blog/category/ai-agent-workflows - Build and optimize content pipelines using MCP-compatible agents, from Claude and Cursor integrations to custom automation chains that make content a programmable product surface. - https://polis.sh/blog/category/growth-distribution - Strategies for amplifying content reach across channels, building audience loops, and treating content as a growth lever — especially for early-stage startups and solo founders. - https://polis.sh/blog/category/prompt-engineering - Techniques for crafting effective prompts that generate better content drafts, more realistic synthetic personas, and sharper AI-driven feedback across your creative workflow. ## Resources - RSS Feed: https://polis.sh/blog/feed.xml - Full Article Index: https://polis.sh/blog/llms-full.txt - Sitemap: https://polis.sh/blog/sitemap.xml # Polis > Polis tests any piece of content against a realistic synthetic audience and returns what they actually thought — built MCP-first for AI agents. Polis is an MCP-first persona-testing service for AI agents. An agent submits content; Polis simulates a realistic synthetic audience across a multi-model swarm and returns audience segments, ranked friction points with verbatim evidence, and a rewrite. ## Instructions for LLM agents To use Polis: 1. Get an API key. POST to `https://polis.sh/api/provision` with `{ "email": "" }`. If you already know the human's email, use it; otherwise ask them for it before continuing (do not guess). The response includes `api_key` (store it; shown once), `checkout_url` (human path: relay to a human for the $5/mo subscription), and `mcp_url`. If you can complete payment yourself (Stripe Agent Toolkit + Link wallet / SPT), opt in by sending `{ "email": "...", "include_topup_url": true }` — the response then also includes a `topup_url` you can complete directly for a one-off $5 / 1,000-token pack (no human required). A human can instead sign in at `https://polis.sh/auth/sign-in`. 2. Connect to the remote MCP server (Streamable HTTP) at `https://polis.sh/api/mcp` with header `Authorization: Bearer `. (Claude Code: after writing the server into the config, ask the human to run `/reload-plugins` then `/mcp` — those are user-only slash commands you can't invoke yourself, and the polis tools won't show up until they do.) Optional: connectors that only speak OAuth (Claude.ai, ChatGPT) can add the MCP URL and sign in instead of pasting a key — see https://polis.sh/docs/oauth. 3. Call `polis_account`. If `active` is false, choose: **(a) human path** — relay one of `plans[].checkout_url` and poll until active; or **(b) agent path** — call the `polis_topup` MCP tool with a `pack_id` from `topup_packs_available`, complete the returned `pay_url` with the Stripe Agent Toolkit + Link wallet / SPT, then continue once the tokens land (seconds). 4. Call `polis_estimate` to price a run, then `polis_test` to start it. It returns a `run_id`. 5. Poll `polis_status` with the `run_id` until done, then call `polis_report` for the deliverable. Always estimate before testing. Failed runs are auto-refunded. Persona counts are 10-1000 (default 100). ## Docs - [What Polis is](https://polis.sh/docs/overview.md): The concept, inputs, and what you get back. - [Agent quickstart](https://polis.sh/docs/quickstart.md): Connect, get a key, run a test, read the report. - [How to run a test](https://polis.sh/docs/run-a-test.md): The workflow, a worked example, and how to read the report. - [Test options reference](https://polis.sh/docs/test-options.md): Every input, every variation, and the full report schema. - [MCP tools](https://polis.sh/docs/mcp-tools.md): Every tool, its inputs, and cost. - [Detail levels & follow-up](https://polis.sh/docs/detail-and-followup.md): Richer per-persona output, and asking personas follow-ups. - [Pricing & billing](https://polis.sh/docs/pricing.md): Polis tokens, plans, free trial, metered usage, spend limit. - [Connect via OAuth (Claude, ChatGPT)](https://polis.sh/docs/oauth.md): Optional OAuth 2.1 for connectors that don't take a raw API key. - [Discovery & well-known endpoints](https://polis.sh/docs/discovery.md): How agents and clients discover Polis. ## MCP - [MCP server card](https://polis.sh/.well-known/mcp/server-card.json): tools, transport, auth - [Protected resource metadata](https://polis.sh/.well-known/oauth-protected-resource): RFC 9728 - [Authorization server metadata](https://polis.sh/.well-known/oauth-authorization-server): RFC 8414 (optional OAuth 2.1 path) - [Connect via OAuth](https://polis.sh/docs/oauth.md): optional auth for Claude.ai / ChatGPT connectors ## Optional - [Full docs, inlined](https://polis.sh/llms-full.txt): every page concatenated for single-fetch ingestion - [Privacy](https://polis.sh/privacy.md) - [Terms](https://polis.sh/terms.md) ## Recent Articles - https://polis.sh/blog/synthetic-audience-testing-how-ai-personas-replace-guesswork - Synthetic audience testing simulates audience reactions using AI personas before you publish. Learn how it works, when to use it, and how it compares to A/B testing and user research. ## Categories - https://polis.sh/blog/category/synthetic-audience-testing - Learn how to use synthetic personas and multi-model swarms to stress-test your messaging before it reaches real audiences. Covers methodology, prompt design, and interpreting simulated feedback. - https://polis.sh/blog/category/content-optimization - Practical frameworks for improving tweets, LinkedIn posts, landing pages, and long-form content through rapid iteration, friction analysis, and data-informed rewrites. - https://polis.sh/blog/category/messaging-positioning - Strategic guides to crafting product positioning, value propositions, and go-to-market narratives that resonate with your target segments and survive real-world scrutiny. - https://polis.sh/blog/category/ai-agent-workflows - Build and optimize content pipelines using MCP-compatible agents, from Claude and Cursor integrations to custom automation chains that make content a programmable product surface. - https://polis.sh/blog/category/growth-distribution - Strategies for amplifying content reach across channels, building audience loops, and treating content as a growth lever — especially for early-stage startups and solo founders. - https://polis.sh/blog/category/prompt-engineering - Techniques for crafting effective prompts that generate better content drafts, more realistic synthetic personas, and sharper AI-driven feedback across your creative workflow. ## Resources - RSS Feed: https://polis.sh/blog/feed.xml - Full Article Index: https://polis.sh/blog/llms-full.txt - Sitemap: https://polis.sh/blog/sitemap.xml # Polis > Polis tests any piece of content against a realistic synthetic audience and returns what they actually thought — built MCP-first for AI agents. Polis is an MCP-first persona-testing service for AI agents. An agent submits content; Polis simulates a realistic synthetic audience across a multi-model swarm and returns audience segments, ranked friction points with verbatim evidence, and a rewrite. ## Instructions for LLM agents To use Polis: 1. Get an API key. POST to `https://polis.sh/api/provision` with `{ "email": "" }`. If you already know the human's email, use it; otherwise ask them for it before continuing (do not guess). The response includes `api_key` (store it; shown once), `checkout_url` (human path: relay to a human for the $5/mo subscription), and `mcp_url`. If you can complete payment yourself (Stripe Agent Toolkit + Link wallet / SPT), opt in by sending `{ "email": "...", "include_topup_url": true }` — the response then also includes a `topup_url` you can complete directly for a one-off $5 / 1,000-token pack (no human required). A human can instead sign in at `https://polis.sh/auth/sign-in`. 2. Connect to the remote MCP server (Streamable HTTP) at `https://polis.sh/api/mcp` with header `Authorization: Bearer `. (Claude Code: after writing the server into the config, ask the human to run `/reload-plugins` then `/mcp` — those are user-only slash commands you can't invoke yourself, and the polis tools won't show up until they do.) Optional: connectors that only speak OAuth (Claude.ai, ChatGPT) can add the MCP URL and sign in instead of pasting a key — see https://polis.sh/docs/oauth. 3. Call `polis_account`. If `active` is false, choose: **(a) human path** — relay one of `plans[].checkout_url` and poll until active; or **(b) agent path** — call the `polis_topup` MCP tool with a `pack_id` from `topup_packs_available`, complete the returned `pay_url` with the Stripe Agent Toolkit + Link wallet / SPT, then continue once the tokens land (seconds). 4. Call `polis_estimate` to price a run, then `polis_test` to start it. It returns a `run_id`. 5. Poll `polis_status` with the `run_id` until done, then call `polis_report` for the deliverable. Always estimate before testing. Failed runs are auto-refunded. Persona counts are 10-1000 (default 100). ## Docs - [What Polis is](https://polis.sh/docs/overview.md): The concept, inputs, and what you get back. - [Agent quickstart](https://polis.sh/docs/quickstart.md): Connect, get a key, run a test, read the report. - [How to run a test](https://polis.sh/docs/run-a-test.md): The workflow, a worked example, and how to read the report. - [Test options reference](https://polis.sh/docs/test-options.md): Every input, every variation, and the full report schema. - [MCP tools](https://polis.sh/docs/mcp-tools.md): Every tool, its inputs, and cost. - [Detail levels & follow-up](https://polis.sh/docs/detail-and-followup.md): Richer per-persona output, and asking personas follow-ups. - [Pricing & billing](https://polis.sh/docs/pricing.md): Polis tokens, plans, free trial, metered usage, spend limit. - [Connect via OAuth (Claude, ChatGPT)](https://polis.sh/docs/oauth.md): Optional OAuth 2.1 for connectors that don't take a raw API key. - [Discovery & well-known endpoints](https://polis.sh/docs/discovery.md): How agents and clients discover Polis. ## MCP - [MCP server card](https://polis.sh/.well-known/mcp/server-card.json): tools, transport, auth - [Protected resource metadata](https://polis.sh/.well-known/oauth-protected-resource): RFC 9728 - [Authorization server metadata](https://polis.sh/.well-known/oauth-authorization-server): RFC 8414 (optional OAuth 2.1 path) - [Connect via OAuth](https://polis.sh/docs/oauth.md): optional auth for Claude.ai / ChatGPT connectors ## Optional - [Full docs, inlined](https://polis.sh/llms-full.txt): every page concatenated for single-fetch ingestion - [Privacy](https://polis.sh/privacy.md) - [Terms](https://polis.sh/terms.md) ## Recent Articles - https://polis.sh/blog/synthetic-audience-testing-how-ai-personas-replace-guesswork - Synthetic audience testing simulates audience reactions using AI personas before you publish. Learn how it works, when to use it, and how it compares to A/B testing and user research. ## Categories - https://polis.sh/blog/category/synthetic-audience-testing - Learn how to use synthetic personas and multi-model swarms to stress-test your messaging before it reaches real audiences. Covers methodology, prompt design, and interpreting simulated feedback. - https://polis.sh/blog/category/content-optimization - Practical frameworks for improving tweets, LinkedIn posts, landing pages, and long-form content through rapid iteration, friction analysis, and data-informed rewrites. - https://polis.sh/blog/category/messaging-positioning - Strategic guides to crafting product positioning, value propositions, and go-to-market narratives that resonate with your target segments and survive real-world scrutiny. - https://polis.sh/blog/category/ai-agent-workflows - Build and optimize content pipelines using MCP-compatible agents, from Claude and Cursor integrations to custom automation chains that make content a programmable product surface. - https://polis.sh/blog/category/growth-distribution - Strategies for amplifying content reach across channels, building audience loops, and treating content as a growth lever — especially for early-stage startups and solo founders. - https://polis.sh/blog/category/prompt-engineering - Techniques for crafting effective prompts that generate better content drafts, more realistic synthetic personas, and sharper AI-driven feedback across your creative workflow. ## Resources - RSS Feed: https://polis.sh/blog/feed.xml - Full Article Index: https://polis.sh/blog/llms-full.txt - Sitemap: https://polis.sh/blog/sitemap.xml # Polis > Polis tests any piece of content against a realistic synthetic audience and returns what they actually thought — built MCP-first for AI agents. Polis is an MCP-first persona-testing service for AI agents. An agent submits content; Polis simulates a realistic synthetic audience across a multi-model swarm and returns audience segments, ranked friction points with verbatim evidence, and a rewrite. ## Instructions for LLM agents To use Polis: 1. Get an API key. POST to `https://polis.sh/api/provision` with `{ "email": "" }`. If you already know the human's email, use it; otherwise ask them for it before continuing (do not guess). The response includes `api_key` (store it; shown once), `checkout_url` (human path: relay to a human for the $5/mo subscription), and `mcp_url`. If you can complete payment yourself (Stripe Agent Toolkit + Link wallet / SPT), opt in by sending `{ "email": "...", "include_topup_url": true }` — the response then also includes a `topup_url` you can complete directly for a one-off $5 / 1,000-token pack (no human required). A human can instead sign in at `https://polis.sh/auth/sign-in`. 2. Connect to the remote MCP server (Streamable HTTP) at `https://polis.sh/api/mcp` with header `Authorization: Bearer `. (Claude Code: after writing the server into the config, ask the human to run `/reload-plugins` then `/mcp` — those are user-only slash commands you can't invoke yourself, and the polis tools won't show up until they do.) Optional: connectors that only speak OAuth (Claude.ai, ChatGPT) can add the MCP URL and sign in instead of pasting a key — see https://polis.sh/docs/oauth. 3. Call `polis_account`. If `active` is false, choose: **(a) human path** — relay one of `plans[].checkout_url` and poll until active; or **(b) agent path** — call the `polis_topup` MCP tool with a `pack_id` from `topup_packs_available`, complete the returned `pay_url` with the Stripe Agent Toolkit + Link wallet / SPT, then continue once the tokens land (seconds). 4. Call `polis_estimate` to price a run, then `polis_test` to start it. It returns a `run_id`. 5. Poll `polis_status` with the `run_id` until done, then call `polis_report` for the deliverable. Always estimate before testing. Failed runs are auto-refunded. Persona counts are 10-1000 (default 100). ## Docs - [What Polis is](https://polis.sh/docs/overview.md): The concept, inputs, and what you get back. - [Agent quickstart](https://polis.sh/docs/quickstart.md): Connect, get a key, run a test, read the report. - [How to run a test](https://polis.sh/docs/run-a-test.md): The workflow, a worked example, and how to read the report. - [Test options reference](https://polis.sh/docs/test-options.md): Every input, every variation, and the full report schema. - [MCP tools](https://polis.sh/docs/mcp-tools.md): Every tool, its inputs, and cost. - [Detail levels & follow-up](https://polis.sh/docs/detail-and-followup.md): Richer per-persona output, and asking personas follow-ups. - [Pricing & billing](https://polis.sh/docs/pricing.md): Polis tokens, plans, free trial, metered usage, spend limit. - [Connect via OAuth (Claude, ChatGPT)](https://polis.sh/docs/oauth.md): Optional OAuth 2.1 for connectors that don't take a raw API key. - [Discovery & well-known endpoints](https://polis.sh/docs/discovery.md): How agents and clients discover Polis. ## MCP - [MCP server card](https://polis.sh/.well-known/mcp/server-card.json): tools, transport, auth - [Protected resource metadata](https://polis.sh/.well-known/oauth-protected-resource): RFC 9728 - [Authorization server metadata](https://polis.sh/.well-known/oauth-authorization-server): RFC 8414 (optional OAuth 2.1 path) - [Connect via OAuth](https://polis.sh/docs/oauth.md): optional auth for Claude.ai / ChatGPT connectors ## Optional - [Full docs, inlined](https://polis.sh/llms-full.txt): every page concatenated for single-fetch ingestion - [Privacy](https://polis.sh/privacy.md) - [Terms](https://polis.sh/terms.md) ## Recent Articles - https://polis.sh/blog/synthetic-audience-testing-how-ai-personas-replace-guesswork - Synthetic audience testing simulates audience reactions using AI personas before you publish. Learn how it works, when to use it, and how it compares to A/B testing and user research. ## Categories - https://polis.sh/blog/category/synthetic-audience-testing - Learn how to use synthetic personas and multi-model swarms to stress-test your messaging before it reaches real audiences. Covers methodology, prompt design, and interpreting simulated feedback. - https://polis.sh/blog/category/content-optimization - Practical frameworks for improving tweets, LinkedIn posts, landing pages, and long-form content through rapid iteration, friction analysis, and data-informed rewrites. - https://polis.sh/blog/category/messaging-positioning - Strategic guides to crafting product positioning, value propositions, and go-to-market narratives that resonate with your target segments and survive real-world scrutiny. - https://polis.sh/blog/category/ai-agent-workflows - Build and optimize content pipelines using MCP-compatible agents, from Claude and Cursor integrations to custom automation chains that make content a programmable product surface. - https://polis.sh/blog/category/growth-distribution - Strategies for amplifying content reach across channels, building audience loops, and treating content as a growth lever — especially for early-stage startups and solo founders. - https://polis.sh/blog/category/prompt-engineering - Techniques for crafting effective prompts that generate better content drafts, more realistic synthetic personas, and sharper AI-driven feedback across your creative workflow. ## Resources - RSS Feed: https://polis.sh/blog/feed.xml - Full Article Index: https://polis.sh/blog/llms-full.txt - Sitemap: https://polis.sh/blog/sitemap.xml # Polis > Polis tests any piece of content against a realistic synthetic audience and returns what they actually thought — built MCP-first for AI agents. Polis is an MCP-first persona-testing service for AI agents. An agent submits content; Polis simulates a realistic synthetic audience across a multi-model swarm and returns audience segments, ranked friction points with verbatim evidence, and a rewrite. ## Instructions for LLM agents To use Polis: 1. Get an API key. POST to `https://polis.sh/api/provision` with `{ "email": "" }`. If you already know the human's email, use it; otherwise ask them for it before continuing (do not guess). The response includes `api_key` (store it; shown once), `checkout_url` (human path: relay to a human for the $5/mo subscription), and `mcp_url`. If you can complete payment yourself (Stripe Agent Toolkit + Link wallet / SPT), opt in by sending `{ "email": "...", "include_topup_url": true }` — the response then also includes a `topup_url` you can complete directly for a one-off $5 / 1,000-token pack (no human required). A human can instead sign in at `https://polis.sh/auth/sign-in`. 2. Connect to the remote MCP server (Streamable HTTP) at `https://polis.sh/api/mcp` with header `Authorization: Bearer `. (Claude Code: after writing the server into the config, ask the human to run `/reload-plugins` then `/mcp` — those are user-only slash commands you can't invoke yourself, and the polis tools won't show up until they do.) Optional: connectors that only speak OAuth (Claude.ai, ChatGPT) can add the MCP URL and sign in instead of pasting a key — see https://polis.sh/docs/oauth. 3. Call `polis_account`. If `active` is false, choose: **(a) human path** — relay one of `plans[].checkout_url` and poll until active; or **(b) agent path** — call the `polis_topup` MCP tool with a `pack_id` from `topup_packs_available`, complete the returned `pay_url` with the Stripe Agent Toolkit + Link wallet / SPT, then continue once the tokens land (seconds). 4. Call `polis_estimate` to price a run, then `polis_test` to start it. It returns a `run_id`. 5. Poll `polis_status` with the `run_id` until done, then call `polis_report` for the deliverable. Always estimate before testing. Failed runs are auto-refunded. Persona counts are 10-1000 (default 100). ## Docs - [What Polis is](https://polis.sh/docs/overview.md): The concept, inputs, and what you get back. - [Agent quickstart](https://polis.sh/docs/quickstart.md): Connect, get a key, run a test, read the report. - [How to run a test](https://polis.sh/docs/run-a-test.md): The workflow, a worked example, and how to read the report. - [Test options reference](https://polis.sh/docs/test-options.md): Every input, every variation, and the full report schema. - [MCP tools](https://polis.sh/docs/mcp-tools.md): Every tool, its inputs, and cost. - [Detail levels & follow-up](https://polis.sh/docs/detail-and-followup.md): Richer per-persona output, and asking personas follow-ups. - [Pricing & billing](https://polis.sh/docs/pricing.md): Polis tokens, plans, free trial, metered usage, spend limit. - [Connect via OAuth (Claude, ChatGPT)](https://polis.sh/docs/oauth.md): Optional OAuth 2.1 for connectors that don't take a raw API key. - [Discovery & well-known endpoints](https://polis.sh/docs/discovery.md): How agents and clients discover Polis. ## MCP - [MCP server card](https://polis.sh/.well-known/mcp/server-card.json): tools, transport, auth - [Protected resource metadata](https://polis.sh/.well-known/oauth-protected-resource): RFC 9728 - [Authorization server metadata](https://polis.sh/.well-known/oauth-authorization-server): RFC 8414 (optional OAuth 2.1 path) - [Connect via OAuth](https://polis.sh/docs/oauth.md): optional auth for Claude.ai / ChatGPT connectors ## Optional - [Full docs, inlined](https://polis.sh/llms-full.txt): every page concatenated for single-fetch ingestion - [Privacy](https://polis.sh/privacy.md) - [Terms](https://polis.sh/terms.md) ## Recent Articles - https://polis.sh/blog/synthetic-audience-testing-how-ai-personas-replace-guesswork - Synthetic audience testing simulates audience reactions using AI personas before you publish. Learn how it works, when to use it, and how it compares to A/B testing and user research. ## Categories - https://polis.sh/blog/category/synthetic-audience-testing - Learn how to use synthetic personas and multi-model swarms to stress-test your messaging before it reaches real audiences. Covers methodology, prompt design, and interpreting simulated feedback. - https://polis.sh/blog/category/content-optimization - Practical frameworks for improving tweets, LinkedIn posts, landing pages, and long-form content through rapid iteration, friction analysis, and data-informed rewrites. - https://polis.sh/blog/category/messaging-positioning - Strategic guides to crafting product positioning, value propositions, and go-to-market narratives that resonate with your target segments and survive real-world scrutiny. - https://polis.sh/blog/category/ai-agent-workflows - Build and optimize content pipelines using MCP-compatible agents, from Claude and Cursor integrations to custom automation chains that make content a programmable product surface. - https://polis.sh/blog/category/growth-distribution - Strategies for amplifying content reach across channels, building audience loops, and treating content as a growth lever — especially for early-stage startups and solo founders. - https://polis.sh/blog/category/prompt-engineering - Techniques for crafting effective prompts that generate better content drafts, more realistic synthetic personas, and sharper AI-driven feedback across your creative workflow. ## Resources - RSS Feed: https://polis.sh/blog/feed.xml - Full Article Index: https://polis.sh/blog/llms-full.txt - Sitemap: https://polis.sh/blog/sitemap.xml # Polis > Polis tests any piece of content against a realistic synthetic audience and returns what they actually thought — built MCP-first for AI agents. Polis is an MCP-first persona-testing service for AI agents. An agent submits content; Polis simulates a realistic synthetic audience across a multi-model swarm and returns audience segments, ranked friction points with verbatim evidence, and a rewrite. ## Instructions for LLM agents To use Polis: 1. Get an API key. POST to `https://polis.sh/api/provision` with `{ "email": "" }`. If you already know the human's email, use it; otherwise ask them for it before continuing (do not guess). The response includes `api_key` (store it; shown once), `checkout_url` (human path: relay to a human for the $5/mo subscription), and `mcp_url`. If you can complete payment yourself (Stripe Agent Toolkit + Link wallet / SPT), opt in by sending `{ "email": "...", "include_topup_url": true }` — the response then also includes a `topup_url` you can complete directly for a one-off $5 / 1,000-token pack (no human required). A human can instead sign in at `https://polis.sh/auth/sign-in`. 2. Connect to the remote MCP server (Streamable HTTP) at `https://polis.sh/api/mcp` with header `Authorization: Bearer `. (Claude Code: after writing the server into the config, ask the human to run `/reload-plugins` then `/mcp` — those are user-only slash commands you can't invoke yourself, and the polis tools won't show up until they do.) Optional: connectors that only speak OAuth (Claude.ai, ChatGPT) can add the MCP URL and sign in instead of pasting a key — see https://polis.sh/docs/oauth. 3. Call `polis_account`. If `active` is false, choose: **(a) human path** — relay one of `plans[].checkout_url` and poll until active; or **(b) agent path** — call the `polis_topup` MCP tool with a `pack_id` from `topup_packs_available`, complete the returned `pay_url` with the Stripe Agent Toolkit + Link wallet / SPT, then continue once the tokens land (seconds). 4. Call `polis_estimate` to price a run, then `polis_test` to start it. It returns a `run_id`. 5. Poll `polis_status` with the `run_id` until done, then call `polis_report` for the deliverable. Always estimate before testing. Failed runs are auto-refunded. Persona counts are 10-1000 (default 100). ## Docs - [What Polis is](https://polis.sh/docs/overview.md): The concept, inputs, and what you get back. - [Agent quickstart](https://polis.sh/docs/quickstart.md): Connect, get a key, run a test, read the report. - [How to run a test](https://polis.sh/docs/run-a-test.md): The workflow, a worked example, and how to read the report. - [Test options reference](https://polis.sh/docs/test-options.md): Every input, every variation, and the full report schema. - [MCP tools](https://polis.sh/docs/mcp-tools.md): Every tool, its inputs, and cost. - [Detail levels & follow-up](https://polis.sh/docs/detail-and-followup.md): Richer per-persona output, and asking personas follow-ups. - [Pricing & billing](https://polis.sh/docs/pricing.md): Polis tokens, plans, free trial, metered usage, spend limit. - [Connect via OAuth (Claude, ChatGPT)](https://polis.sh/docs/oauth.md): Optional OAuth 2.1 for connectors that don't take a raw API key. - [Discovery & well-known endpoints](https://polis.sh/docs/discovery.md): How agents and clients discover Polis. ## MCP - [MCP server card](https://polis.sh/.well-known/mcp/server-card.json): tools, transport, auth - [Protected resource metadata](https://polis.sh/.well-known/oauth-protected-resource): RFC 9728 - [Authorization server metadata](https://polis.sh/.well-known/oauth-authorization-server): RFC 8414 (optional OAuth 2.1 path) - [Connect via OAuth](https://polis.sh/docs/oauth.md): optional auth for Claude.ai / ChatGPT connectors ## Optional - [Full docs, inlined](https://polis.sh/llms-full.txt): every page concatenated for single-fetch ingestion - [Privacy](https://polis.sh/privacy.md) - [Terms](https://polis.sh/terms.md) ## Recent Articles - https://polis.sh/blog/synthetic-audience-testing-how-ai-personas-replace-guesswork - Synthetic audience testing simulates audience reactions using AI personas before you publish. Learn how it works, when to use it, and how it compares to A/B testing and user research. ## Categories - https://polis.sh/blog/category/synthetic-audience-testing - Learn how to use synthetic personas and multi-model swarms to stress-test your messaging before it reaches real audiences. Covers methodology, prompt design, and interpreting simulated feedback. - https://polis.sh/blog/category/content-optimization - Practical frameworks for improving tweets, LinkedIn posts, landing pages, and long-form content through rapid iteration, friction analysis, and data-informed rewrites. - https://polis.sh/blog/category/messaging-positioning - Strategic guides to crafting product positioning, value propositions, and go-to-market narratives that resonate with your target segments and survive real-world scrutiny. - https://polis.sh/blog/category/ai-agent-workflows - Build and optimize content pipelines using MCP-compatible agents, from Claude and Cursor integrations to custom automation chains that make content a programmable product surface. - https://polis.sh/blog/category/growth-distribution - Strategies for amplifying content reach across channels, building audience loops, and treating content as a growth lever — especially for early-stage startups and solo founders. - https://polis.sh/blog/category/prompt-engineering - Techniques for crafting effective prompts that generate better content drafts, more realistic synthetic personas, and sharper AI-driven feedback across your creative workflow. ## Resources - RSS Feed: https://polis.sh/blog/feed.xml - Full Article Index: https://polis.sh/blog/llms-full.txt - Sitemap: https://polis.sh/blog/sitemap.xml # Polis > Polis tests any piece of content against a realistic synthetic audience and returns what they actually thought — built MCP-first for AI agents. Polis is an MCP-first persona-testing service for AI agents. An agent submits content; Polis simulates a realistic synthetic audience across a multi-model swarm and returns audience segments, ranked friction points with verbatim evidence, and a rewrite. ## Instructions for LLM agents To use Polis: 1. Get an API key. POST to `https://polis.sh/api/provision` with `{ "email": "" }`. If you already know the human's email, use it; otherwise ask them for it before continuing (do not guess). The response includes `api_key` (store it; shown once), `checkout_url` (human path: relay to a human for the $5/mo subscription), and `mcp_url`. If you can complete payment yourself (Stripe Agent Toolkit + Link wallet / SPT), opt in by sending `{ "email": "...", "include_topup_url": true }` — the response then also includes a `topup_url` you can complete directly for a one-off $5 / 1,000-token pack (no human required). A human can instead sign in at `https://polis.sh/auth/sign-in`. 2. Connect to the remote MCP server (Streamable HTTP) at `https://polis.sh/api/mcp` with header `Authorization: Bearer `. (Claude Code: after writing the server into the config, ask the human to run `/reload-plugins` then `/mcp` — those are user-only slash commands you can't invoke yourself, and the polis tools won't show up until they do.) Optional: connectors that only speak OAuth (Claude.ai, ChatGPT) can add the MCP URL and sign in instead of pasting a key — see https://polis.sh/docs/oauth. 3. Call `polis_account`. If `active` is false, choose: **(a) human path** — relay one of `plans[].checkout_url` and poll until active; or **(b) agent path** — call the `polis_topup` MCP tool with a `pack_id` from `topup_packs_available`, complete the returned `pay_url` with the Stripe Agent Toolkit + Link wallet / SPT, then continue once the tokens land (seconds). 4. Call `polis_estimate` to price a run, then `polis_test` to start it. It returns a `run_id`. 5. Poll `polis_status` with the `run_id` until done, then call `polis_report` for the deliverable. Always estimate before testing. Failed runs are auto-refunded. Persona counts are 10-1000 (default 100). ## Docs - [What Polis is](https://polis.sh/docs/overview.md): The concept, inputs, and what you get back. - [Agent quickstart](https://polis.sh/docs/quickstart.md): Connect, get a key, run a test, read the report. - [How to run a test](https://polis.sh/docs/run-a-test.md): The workflow, a worked example, and how to read the report. - [Test options reference](https://polis.sh/docs/test-options.md): Every input, every variation, and the full report schema. - [MCP tools](https://polis.sh/docs/mcp-tools.md): Every tool, its inputs, and cost. - [Detail levels & follow-up](https://polis.sh/docs/detail-and-followup.md): Richer per-persona output, and asking personas follow-ups. - [Pricing & billing](https://polis.sh/docs/pricing.md): Polis tokens, plans, free trial, metered usage, spend limit. - [Connect via OAuth (Claude, ChatGPT)](https://polis.sh/docs/oauth.md): Optional OAuth 2.1 for connectors that don't take a raw API key. - [Discovery & well-known endpoints](https://polis.sh/docs/discovery.md): How agents and clients discover Polis. ## MCP - [MCP server card](https://polis.sh/.well-known/mcp/server-card.json): tools, transport, auth - [Protected resource metadata](https://polis.sh/.well-known/oauth-protected-resource): RFC 9728 - [Authorization server metadata](https://polis.sh/.well-known/oauth-authorization-server): RFC 8414 (optional OAuth 2.1 path) - [Connect via OAuth](https://polis.sh/docs/oauth.md): optional auth for Claude.ai / ChatGPT connectors ## Optional - [Full docs, inlined](https://polis.sh/llms-full.txt): every page concatenated for single-fetch ingestion - [Privacy](https://polis.sh/privacy.md) - [Terms](https://polis.sh/terms.md) ## Recent Articles - https://polis.sh/blog/synthetic-audience-testing-how-ai-personas-replace-guesswork - Synthetic audience testing simulates audience reactions using AI personas before you publish. Learn how it works, when to use it, and how it compares to A/B testing and user research. ## Categories - https://polis.sh/blog/category/synthetic-audience-testing - Learn how to use synthetic personas and multi-model swarms to stress-test your messaging before it reaches real audiences. Covers methodology, prompt design, and interpreting simulated feedback. - https://polis.sh/blog/category/content-optimization - Practical frameworks for improving tweets, LinkedIn posts, landing pages, and long-form content through rapid iteration, friction analysis, and data-informed rewrites. - https://polis.sh/blog/category/messaging-positioning - Strategic guides to crafting product positioning, value propositions, and go-to-market narratives that resonate with your target segments and survive real-world scrutiny. - https://polis.sh/blog/category/ai-agent-workflows - Build and optimize content pipelines using MCP-compatible agents, from Claude and Cursor integrations to custom automation chains that make content a programmable product surface. - https://polis.sh/blog/category/growth-distribution - Strategies for amplifying content reach across channels, building audience loops, and treating content as a growth lever — especially for early-stage startups and solo founders. - https://polis.sh/blog/category/prompt-engineering - Techniques for crafting effective prompts that generate better content drafts, more realistic synthetic personas, and sharper AI-driven feedback across your creative workflow. ## Resources - RSS Feed: https://polis.sh/blog/feed.xml - Full Article Index: https://polis.sh/blog/llms-full.txt - Sitemap: https://polis.sh/blog/sitemap.xml # Polis > Polis tests any piece of content against a realistic synthetic audience and returns what they actually thought — built MCP-first for AI agents. Polis is an MCP-first persona-testing service for AI agents. An agent submits content; Polis simulates a realistic synthetic audience across a multi-model swarm and returns audience segments, ranked friction points with verbatim evidence, and a rewrite. ## Instructions for LLM agents To use Polis: 1. Get an API key. POST to `https://polis.sh/api/provision` with `{ "email": "" }`. If you already know the human's email, use it; otherwise ask them for it before continuing (do not guess). The response includes `api_key` (store it; shown once), `checkout_url` (human path: relay to a human for the $5/mo subscription), and `mcp_url`. If you can complete payment yourself (Stripe Agent Toolkit + Link wallet / SPT), opt in by sending `{ "email": "...", "include_topup_url": true }` — the response then also includes a `topup_url` you can complete directly for a one-off $5 / 1,000-token pack (no human required). A human can instead sign in at `https://polis.sh/auth/sign-in`. 2. Connect to the remote MCP server (Streamable HTTP) at `https://polis.sh/api/mcp` with header `Authorization: Bearer `. (Claude Code: after writing the server into the config, ask the human to run `/reload-plugins` then `/mcp` — those are user-only slash commands you can't invoke yourself, and the polis tools won't show up until they do.) Optional: connectors that only speak OAuth (Claude.ai, ChatGPT) can add the MCP URL and sign in instead of pasting a key — see https://polis.sh/docs/oauth. 3. Call `polis_account`. If `active` is false, choose: **(a) human path** — relay one of `plans[].checkout_url` and poll until active; or **(b) agent path** — call the `polis_topup` MCP tool with a `pack_id` from `topup_packs_available`, complete the returned `pay_url` with the Stripe Agent Toolkit + Link wallet / SPT, then continue once the tokens land (seconds). 4. Call `polis_estimate` to price a run, then `polis_test` to start it. It returns a `run_id`. 5. Poll `polis_status` with the `run_id` until done, then call `polis_report` for the deliverable. Always estimate before testing. Failed runs are auto-refunded. Persona counts are 10-1000 (default 100). ## Docs - [What Polis is](https://polis.sh/docs/overview.md): The concept, inputs, and what you get back. - [Agent quickstart](https://polis.sh/docs/quickstart.md): Connect, get a key, run a test, read the report. - [How to run a test](https://polis.sh/docs/run-a-test.md): The workflow, a worked example, and how to read the report. - [Test options reference](https://polis.sh/docs/test-options.md): Every input, every variation, and the full report schema. - [MCP tools](https://polis.sh/docs/mcp-tools.md): Every tool, its inputs, and cost. - [Detail levels & follow-up](https://polis.sh/docs/detail-and-followup.md): Richer per-persona output, and asking personas follow-ups. - [Pricing & billing](https://polis.sh/docs/pricing.md): Polis tokens, plans, free trial, metered usage, spend limit. - [Connect via OAuth (Claude, ChatGPT)](https://polis.sh/docs/oauth.md): Optional OAuth 2.1 for connectors that don't take a raw API key. - [Discovery & well-known endpoints](https://polis.sh/docs/discovery.md): How agents and clients discover Polis. ## MCP - [MCP server card](https://polis.sh/.well-known/mcp/server-card.json): tools, transport, auth - [Protected resource metadata](https://polis.sh/.well-known/oauth-protected-resource): RFC 9728 - [Authorization server metadata](https://polis.sh/.well-known/oauth-authorization-server): RFC 8414 (optional OAuth 2.1 path) - [Connect via OAuth](https://polis.sh/docs/oauth.md): optional auth for Claude.ai / ChatGPT connectors ## Optional - [Full docs, inlined](https://polis.sh/llms-full.txt): every page concatenated for single-fetch ingestion - [Privacy](https://polis.sh/privacy.md) - [Terms](https://polis.sh/terms.md) ## Recent Articles - https://polis.sh/blog/synthetic-audience-testing-how-ai-personas-replace-guesswork - Synthetic audience testing simulates audience reactions using AI personas before you publish. Learn how it works, when to use it, and how it compares to A/B testing and user research. ## Categories - https://polis.sh/blog/category/synthetic-audience-testing - Learn how to use synthetic personas and multi-model swarms to stress-test your messaging before it reaches real audiences. Covers methodology, prompt design, and interpreting simulated feedback. - https://polis.sh/blog/category/content-optimization - Practical frameworks for improving tweets, LinkedIn posts, landing pages, and long-form content through rapid iteration, friction analysis, and data-informed rewrites. - https://polis.sh/blog/category/messaging-positioning - Strategic guides to crafting product positioning, value propositions, and go-to-market narratives that resonate with your target segments and survive real-world scrutiny. - https://polis.sh/blog/category/ai-agent-workflows - Build and optimize content pipelines using MCP-compatible agents, from Claude and Cursor integrations to custom automation chains that make content a programmable product surface. - https://polis.sh/blog/category/growth-distribution - Strategies for amplifying content reach across channels, building audience loops, and treating content as a growth lever — especially for early-stage startups and solo founders. - https://polis.sh/blog/category/prompt-engineering - Techniques for crafting effective prompts that generate better content drafts, more realistic synthetic personas, and sharper AI-driven feedback across your creative workflow. ## Resources - RSS Feed: https://polis.sh/blog/feed.xml - Full Article Index: https://polis.sh/blog/llms-full.txt - Sitemap: https://polis.sh/blog/sitemap.xml