mcpField
P
Prolific Mcp Server

Prolific Mcp Server

Local
github.com/prolific-ossScience & Education3Updated 5w ago

About Prolific Mcp Server

Prolific Mcp Server connects LLM agents to the Prolific API for researchers managing participant studies and data collection. It covers study creation and lifecycle, submissions, exports, and webhooks; publishing a study can incur real charges.

Key features

  1. 01Create and manage studies
  2. 02Check participant eligibility
  3. 03Review and approve submissions
  4. 04Manage data collections and exports
  5. 05Configure webhook subscriptions

Use cases

  1. 01Estimate eligible participant counts
  2. 02Create, pause, or resume a study
  3. 03Approve study submissions in bulk
  4. 04Export collection or demographic data

MCP support

Exposes Prolific API operations as tools for MCP clients, including study, submission, collection, and webhook management. The server uses a Prolific API token; publishing a study triggers real spending.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"prolific": {
"command": "uvx",
"args": [
"prolific-mcp"
],
"env": {
"PROLIFIC_TOKEN": "<PROLIFIC_TOKEN>"
}
}
}
}
Run commanduvx prolific-mcp
Environment variables to set
PROLIFIC_TOKENSecret

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypiprolific-mcp

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

prolific-mcp

CI Known Vulnerabilities

A Model Context Protocol server bridging LLM agents to the Prolific public API. Built with FastMCP.

Listed on the official MCP Registry — discoverable from Claude Desktop, Cursor, Claude Code, and other MCP-aware clients.

Warning

publish_study spends real money. Once a study is published on Prolific, participants can start it immediately and you are charged for their work. Treat any LLM-driven invocation as a real spend: review the study draft and reward before approving the tool call. There is no sandbox mode — the same endpoint is used in production.

What it does

Exposes a small set of tools so an LLM can help a researcher design and launch a study on Prolific:

ToolProlific endpoint
get_filtersGET /api/v1/filters/
get_filter_setsGET /api/v1/filter-sets/
create_filter_setPOST /api/v1/filter-sets/
get_eligibility_countPOST /api/v1/eligibility-count/
list_workspacesGET /api/v1/workspaces/
list_projectsGET /api/v1/workspaces/{workspace_id}/projects/
list_studiesGET /api/v1/studies/
view_studyGET /api/v1/studies/{id}/
create_studyPOST /api/v1/studies/
publish_studyPOST /api/v1/studies/{id}/transition/
pause_studyPOST /api/v1/studies/{id}/transition/
resume_studyPOST /api/v1/studies/{id}/transition/
stop_studyPOST /api/v1/studies/{id}/transition/
list_submissionsGET /api/v1/studies/{id}/submissions/
get_submission_countsGET /api/v1/studies/{id}/submissions/counts/
bulk_approve_submissionsPOST /api/v1/submissions/bulk-approve/
list_collectionsGET /api/v1/data-collection/collections
view_collectionGET /api/v1/data-collection/collections/{id}
preview_collection(no Prolific endpoint — returns a deterministic app preview URL)
create_collectionPOST /api/v1/data-collection/collections
update_collectionPUT /api/v1/data-collection/collections/{id}/
export_collectionPOST /api/v1/data-collection/collections/{id}/export
get_collection_export_statusGET /api/v1/data-collection/collections/{id}/export/{export_id}
export_study_demographicsPOST /api/v1/studies/{id}/demographic-export/
list_webhook_event_typesGET /api/v1/hooks/event-types/
ensure_webhook_secretGET /api/v1/hooks/secrets/ (existence only — see note below)
create_webhook_secretPOST /api/v1/hooks/secrets/
create_webhook_subscriptionPOST /api/v1/hooks/subscriptions/ + confirm
list_webhook_subscriptionsGET /api/v1/hooks/subscriptions
update_webhook_subscriptionPATCH /api/v1/hooks/subscriptions/{id}/
delete_webhook_subscriptionDELETE /api/v1/hooks/subscriptions/{id}/
list_webhook_eventsGET /api/v1/hooks/subscriptions/{id}/events/
get_capabilities(local — no Prolific endpoint; reports server version, target API URL, and registered tools)

Note

Webhook secrets are handled deliberately narrowly. create_webhook_secret is the only tool in this repo that returns sensitive material, and only once, on first creation for a workspace — there's no tool to list or re-fetch an existing secret's value, since that value would then sit in the LLM's context on every read. If a workspace already has a secret and you need to see its value again (e.g. to reconfigure a receiver), that's prolific hook secrets -w <workspace_id> via the CLI, not MCP.

Requirements

Quickstart

Install and run from PyPI with uv:

export PROLIFIC_TOKEN=your_token_here
uvx prolific-mcp

Or from a checkout:

uv sync
export PROLIFIC_TOKEN=your_token_here
uv run prolific-mcp

The server defaults to stdio and is intended to be launched by an MCP client (Claude Desktop, Cursor, etc.).

Local development (HTTP mode)

Stdio gives the client ownership of the process, which hides server logs. For local iteration, run over streamable HTTP instead so logs stream to your terminal:

PROLIFIC_TOKEN=your_token_here uv run prolific-mcp --http
# server listens on http://127.0.0.1:8765/mcp

# register it with Claude Code in another terminal:
claude mcp add prolific --transport http http://127.0.0.1:8765/mcp

Override host/port with --host / --port if 8765 is in use.

Environment variables

VariableRequiredDefaultDescription
PROLIFIC_TOKENyes—Prolific API token, sent as Authorization: Token …
PROLIFIC_URLnohttps://api.prolific.comBase URL of the Prolific API
PROLIFIC_APPLICATION_URLnohttps://app.prolific.comBase URL of the Prolific web app, used for preview_collection's link

Use with MCP clients

Claude Desktop

Each GitHub Release attaches a .mcpb bundle per platform (darwin-arm64, darwin-x86_64, linux-x86_64, windows-x86_64). Download the file for your platform and open it — Claude Desktop will show an install dialog and prompt for your PROLIFIC_TOKEN.

To configure manually instead, add the server to your Claude Desktop config:

{
  "mcpServers": {
    "prolific": {
      "command": "uvx",
      "args": ["prolific-mcp"],
      "env": { "PROLIFIC_TOKEN": "your_token_here" }
    }
  }
}
Claude Code
claude mcp add prolific \
  -e PROLIFIC_TOKEN=your_token_here \
  -- uvx prolific-mcp

To pin a specific version, replace uvx prolific-mcp with uvx prolific-mcp==<version>.

Codex CLI

Add to ~/.codex/config.toml:

[mcp_servers.prolific]
command = "uvx"
args = ["prolific-mcp"]
env = { PROLIFIC_TOKEN = "your_token_here" }

Restart Codex (or start a new session) to pick it up.

Cursor and other MCP-aware clients

Most clients accept the same command / args / env shape shown in the Claude Desktop JSON above.

Development

uv sync
uv run pytest          # tests
uv run mypy            # type-check
uv run ruff check .    # lint
uv run ruff format .   # format

Docker

docker build -t mcp/prolific .
docker run -i --rm -e PROLIFIC_TOKEN=$PROLIFIC_TOKEN mcp/prolific

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.