MCP Server
Connect AI assistants and agent frameworks to Crowdee via the Model Context Protocol.
The Crowdee API includes a Model Context Protocol (MCP) server. It lets AI coding assistants, agent frameworks, and any MCP-compatible client interact with your projects, pipelines, datasets, and crowdsourcing jobs without writing REST calls manually.
Endpoint
POST https://api.crowdee.ai/v2/mcpThe server uses the Streamable HTTP transport (@hono/mcp). Connect with any MCP client that supports this transport.
Authentication
Authentication is identical to the REST API. Pass your API key on every request:
X-API-Key: crw_YOUR_API_KEYTo target a specific organisation, add:
X-Organization-Id: YOUR_ORG_IDSee Authentication for instructions on generating API keys.
Connecting a client
Most MCP clients accept a server configuration block. Example for a generic HTTP MCP client:
{
"mcpServers": {
"crowdee": {
"type": "http",
"url": "https://api.crowdee.ai/v2/mcp",
"headers": {
"X-API-Key": "crw_YOUR_API_KEY"
}
}
}
}Verify the connection
curl -X POST https://api.crowdee.ai/v2/mcp \
-H "X-API-Key: crw_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'A successful response lists all 33 available tools.
Tools
The server exposes 33 tools grouped by domain:
Identity & organisation
| Tool | Description |
|---|---|
get_current_user | Returns the authenticated user and their active organisation. |
list_organizations | Lists all organisations the current user belongs to. |
Projects
| Tool | Description |
|---|---|
list_projects | Lists projects in the active organisation. Accepts limit / offset. |
get_project | Returns a single project by projectId. |
create_project | Creates a project. Requires name; accepts description and type (standard or research). |
update_project | Updates a project's name or description. |
list_project_files | Lists files attached to a project. Accepts limit / offset. |
Datasets
| Tool | Description |
|---|---|
list_datasets | Lists datasets in the active organisation. |
get_dataset | Returns a dataset with all its versions. |
create_dataset | Creates a dataset and an initial raw version. Requires name, internalId, and modality. |
delete_dataset | Deletes a dataset by datasetId. |
Verification pipelines
| Tool | Description |
|---|---|
list_pipeline_catalog | Returns all 14 built-in verification pipeline definitions including stage breakdowns and file/context requirements. |
run_verification_pipeline | Starts a verification run on a research project. Requires projectId, pipelineSlug, and fileIds; accepts contextId or inline contextData. Deducts credits from the organisation balance. |
list_verification_runs | Lists runs for a project. Accepts status filter and limit / offset. |
get_verification_run | Returns a run with full stage-by-stage breakdown and associated files. |
run_verification_pipeline performs the same credit deduction and context resolution as the REST endpoint POST /v2/projects/:id/verification-runs. The project must be of type research.
Language Technology pipelines
| Tool | Description |
|---|---|
list_lt_pipeline_catalog | Returns all 7 built-in LT pipeline definitions (transcription, OCR, NER, translation, language identification). |
run_lt_pipeline | Runs an LT pipeline on one or more project files — one run per file. Accepts optional contextData (e.g. { "target_language": "German" } for translation). |
get_lt_run | Returns an LT run record including the structured result payload (transcript, entities, translation, etc.). |
Crowdsourcing
| Tool | Description |
|---|---|
list_crowd_jobs | Lists jobs for a project. Accepts status filter and limit / offset. |
get_crowd_job | Returns a job with live slot statistics (assigned, submitted, timed-out, answers by status). |
create_crowd_job | Creates a crowdsourcing job. Requires projectId, name, title, description, and surveyTemplateVersionId. |
list_crowd_answers | Lists answers for a job. Accepts status filter and limit / offset. |
accept_crowd_answer | Accepts a pending answer by answerId. |
reject_crowd_answer | Rejects a pending answer by answerId with an optional reason. |
Content Gathering
| Tool | Description |
|---|---|
create_gathering_job | Creates a content-gathering crowd job: the crowd searches platforms/the web for items matching criteria (keywords, platforms, languages, content types). |
list_gathered_items | Lists items a crowd has gathered for a content-gathering job. Accepts reviewStatus filter and limit / offset. |
update_gathered_item | Accepts, rejects, or marks a gathered item as a duplicate by itemId. |
gathered_items_to_dataset | Converts a gathering job's reviewed items (with attached files) into a new dataset. |
AI Output Evaluation
| Tool | Description |
|---|---|
create_ai_output_evaluation | Requests a crowd panel to rate the transparency (clarity, evidence, actionability, bias risk) of a completed verification or Language Technology run. Auto-generates the crowd task. |
create_external_ai_output_evaluation | Requests a crowd panel to rate the transparency of an AI output from your own (non-Crowdee) AI system — pass modelName, verdict, explanation directly. Stores the submission using the input-data tables, then dispatches the same crowd evaluation as create_ai_output_evaluation. |
get_ai_output_evaluation_results | Gets individual crowd ratings and the aggregate transparency score for an evaluation batch. |
Continuous Monitoring
| Tool | Description |
|---|---|
create_monitoring_schedule | Creates a recurring schedule that periodically samples a completed run and dispatches an AI output evaluation for it, tracking drift over time. |
list_monitoring_runs | Lists the tick history for a monitoring schedule, including drift flags and aggregate scores. |
Resources
Two MCP resources expose static catalog data:
| URI | Description |
|---|---|
crowdee://pipelines/catalog | All 14 verification pipeline definitions as JSON. |
crowdee://lt-pipelines/catalog | All 7 LT pipeline definitions as JSON. |
Fetch a resource with the standard resources/read call:
curl -X POST https://api.crowdee.ai/v2/mcp \
-H "X-API-Key: crw_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"resources/read","params":{"uri":"crowdee://pipelines/catalog"},"id":2}'Example: run a verification pipeline
# 1. Find a research project
curl -X POST https://api.crowdee.ai/v2/mcp \
-H "X-API-Key: crw_..." -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"list_projects","arguments":{}},"id":1}'
# 2. Start a verification run
curl -X POST https://api.crowdee.ai/v2/mcp \
-H "X-API-Key: crw_..." -H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0","method":"tools/call",
"params":{
"name":"run_verification_pipeline",
"arguments":{
"projectId":"<projectId>",
"pipelineSlug":"verify-image-metadata",
"fileIds":["<fileId>"]
}
},
"id":2
}'
# 3. Poll for completion
curl -X POST https://api.crowdee.ai/v2/mcp \
-H "X-API-Key: crw_..." -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"get_verification_run","arguments":{"runId":"<runId>"}},"id":3}'How is this guide?
API Overview
Base URL, versioning, authentication, request format, and rate limiting.
Error Codes
HTTP status codes, error response shape, and how to handle common errors.