Skip to main content

CrowdOS MCP Server

Simulated focus groups as agent-callable tools. Connects AI agents (Claude Desktop, Cursor, Cline, LangGraph, CrewAI, and any other Model Context Protocol host) to CrowdOS, so they can run simulated public-opinion research with a single tool call.

Every plan can use it — Free, Pro and Max — at that plan's limits on the web. Enterprise accounts get every tool.

What this gives you

> Run a focus group on whether companies should mandate 4-day weeks.
   Use 200 people from the us_general_population preset.

[tool: run_focus_group]
{
  "id": "ad4b3736-...",
  "sentiment_summary": {
    "positive_pct": 71.5, "negative_pct": 18.0, "neutral_pct": 10.5,
    "positive": 143, "negative": 36, "neutral": 21
  },
  "total_responses": 200,
  "billing": { "actual_cents": 400 }
}

Two ways to connect

Hosted (no install). Add https://api.crowdos.ai/mcp as a remote MCP server in any client that supports them (claude.ai connectors, Cursor, agent frameworks). OAuth-capable clients sign in and approve on first connect; the grant shows up as a revocable key under Account → MCP keys. Header-based clients pass Authorization: Bearer crowd_....

This package (stdio, for desktop hosts). Since 1.0.0 the package is a thin relay to that same hosted endpoint: it holds no tools of its own, so the tools, limits and checks your agent sees are exactly the ones your key has there, and a new tool reaches you without an upgrade.

pip install crowdos-mcp

Then create an MCP key at https://crowdos.ai/account/api-keys (any plan can).

Claude Desktop

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

{
  "mcpServers": {
    "crowdos": {
      "command": "crowdos-mcp",
      "env": {
        "CROWDOS_API_KEY": "crowd_..."
      }
    }
  }
}

Restart Claude Desktop; the CrowdOS tools appear in the tool picker.

Cursor / Cline

Same shape in their MCP-server settings: command crowdos-mcp, env CROWDOS_API_KEY.

Tools, and who gets them

Tool What it does Plans
run_focus_group Simulated poll on a topic — sentiment + quotes Every plan
run_debate Multi-round simulated debate — convergence + key arguments Every plan
compare_options Simulated A/B test on text options — leaderboard + winner Every plan
test_pricing Van Westendorp / Gabor-Granger pricing study Pro, Max, Enterprise
rank_items MaxDiff (best-worst scaling) on 4-200 items Pro, Max, Enterprise
pretest_questions Pretest 1-40 draft survey questions before fielding them Enterprise
estimate_reach Preview how broad a custom_audience filter is (free) Every plan
preview_cost Cents + seconds before running (free) Every plan
list_demographic_presets The audience templates Every plan
get_simulation Fetch a study you ran Every plan
cancel_simulation Stop a running study (releases the wallet reservation) Every plan
crowd_sample Browse the public crowd (sanitized) Every plan
list_panels / get_panel / delete_panel Saved panels — the same respondents across runs Enterprise

test_pricing and rank_items need Pro or Max because their smallest panels (50 and 100 respondents) are larger than Free's limit — the same rule as the web app.

Limits by plan

Free Pro Max Enterprise
Respondents per study 20 500 1,000 750 (Pro) / 2,000 (Max)
compare_options options 3 5 10 5 (Pro) / 10 (Max)
Requests per minute 5 30 120 per plan
Monthly spend ceiling (list price) $5 $500 $2,500 per plan or agreement
Results totals totals totals totals, or respondent-level with the add-on

On Free, Pro and Max the tools also take the web's 17 answer languages, and image_url and the saved-panel arguments are Enterprise-only. The hosted endpoint checks every call before it runs (an off-plan call comes back as not_on_your_plan or over_plan_cap, naming the limit to retry with), and the API checks it again.

Studies draw down your CrowdOS wallet at the same per-respondent prices as the web app; every run returns billing.actual_cents. Top up at https://crowdos.ai/account/billing.

  1. list_demographic_presets — if the user didn't pick an audience, propose one.
  2. estimate_reach (free) — when using custom_audience. A small audience is not a blocked one: the panel is still delivered at the size you ask for, with every respondent matching the filter. Pass several related interest tags (they are OR-matched) rather than one.
  3. preview_cost — the cents and seconds before committing.
  4. Confirm with the user, then run.

Run tools block 5-120 s depending on panel size, and stream progress: when your host sends a progressToken (the default), it shows "47/200 respondents" live. If a call fails after the study launched, the error carries sim_id and recoverable: true — call get_simulation in 30-60 s rather than re-running, which would launch and bill a second study.

Errors

Failures come back as a typed envelope (isError set on the MCP result). The error field is one of:

error When Agent action
auth_error 401 / 403 — a missing, revoked or disabled key Get a fresh key
not_on_your_plan The tool or argument isn't on this account's plan Use what the plan offers, or upgrade
over_plan_cap Panel larger than the plan's limit Retry with the limit in the message
validation_error A bad request (or one caught before sending) Fix the request
insufficient_funds Wallet drained Top up at top_up_url
not_found A sim_id / panel_id that is missing or not yours Check the id
rate_limited 429 Wait retry_after seconds
quota_exceeded Monthly spend ceiling reached Wait for the 1st, or upgrade
simulation_failed The study failed Inspect sim_id; try a smaller run
stream_disconnected / timeout The connection dropped after launch get_simulation(sim_id) later — do not re-run
server_error / request_failed 5xx, or the endpoint unreachable Retry with backoff
configuration_error CROWDOS_API_KEY unset Fix the host config

Configuration

Env var Default Required
CROWDOS_API_KEY — yes
CROWDOS_MCP_URL https://api.crowdos.ai/mcp no
CROWDOS_API_BASE_URL — no (older name: <base>/mcp is used when set)

Versioning

Semver. 1.0.0 made the package a relay, so the tool surface is now the hosted endpoint's and follows the API's own deploys; the package itself changes only when the relay does.

Releasing: tag a commit already on main — git tag mcp-v<version> && git push origin mcp-v<version> — and .github/workflows/publish-mcp.yml builds and publishes to PyPI over Trusted Publishing. The run stops before building if the tag, pyproject.toml and __init__.py disagree, if the tests fail, or if the built server does not start on the installed SDK.

Changelog

  • 1.0.0 — the package relays to https://api.crowdos.ai/mcp instead of calling the REST API itself: tools, limits and checks come from the hosted endpoint for your key's account. Every plan can use it (the REST API is for Enterprise accounts since Oct 10, 2026). Progress notifications and the sim_id on a dropped stream are relayed. New CROWDOS_MCP_URL.
  • 0.12.x — the last releases that called the REST API directly.

License

MIT.

Issues / questions

Email hello@motifmotion.sg. Setup guide: https://crowdos.ai/mcp.

Metadata

Release files for crowdos-mcp 1.0.0

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

Source distribution (sdist)

Source distribution for crowdos-mcp 1.0.0
File Size Uploaded
crowdos_mcp-1.0.0.tar.gz 11.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for crowdos-mcp 1.0.0
File Interpreter ABI Platform
crowdos_mcp-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 22.4 kB

Release files / crowdos_mcp-1.0.0.tar.gz

Download URL crowdos_mcp-1.0.0.tar.gz
Size 11.4 kB
Tags Source
SHA-256 checksum
How to use checksums
28c04610332ea71e16dece3f46bd19b29b2e769d804d66d4fb9b22b74b4444e1
BLAKE2b-256 checksum
How to use checksums
a7f467078e0c91e74bd796ef8125d364cc95668829e50fe756f6e66e59ae55cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / crowdos_mcp-1.0.0-py3-none-any.whl

Download URL crowdos_mcp-1.0.0-py3-none-any.whl
Size 11.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
88278bf1bfa497bdde00650f156366cec96db7702ba0bb6412e75f4e0add52b0
BLAKE2b-256 checksum
How to use checksums
afe5d8052e26bf7a60f1443b523a4eaa74e23936a189e8430be16d316779d328
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.12.6

2 release files

0.12.5

2 release files

0.12.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.1.0

2 release 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