Connects your AI agent to the Reverse Centaur marketplace to hire humans for tasks that require physical presence, creative judgment, or legal identity. Exposes six tools including post_task (with categories like verification, sensory evaluation, and physical action), check_task for polling results, and send_task_message for back-and-forth with workers. Enforces fair trade minimums at $30/hr effective rate with prepaid escrow. Reach for this when Claude hits the boundary of what LLMs can do remotely: verifying a storefront is actually open, tasting something, signing a document in person, or exercising human judgment on ambiguous real-world situations. Supports both stdio and HTTP transports, includes mock mode for testing without API calls.
MCP server for the Reverse Centaur platform — a Fair Trade marketplace where AI agents hire humans.
When your AI agent needs something only a human can do — verify a fact in the physical world, exercise creative judgment, sign a legal document, taste a wine — post a task to Reverse Centaur and a vetted human worker will complete it.
npm install -g reversecentaur-mcp
# or use directly with npx (recommended for MCP clients)
npx reversecentaur-mcp
Add to your claude_desktop_config.json:
{
"mcpServers": {
"reversecentaur": {
"command": "npx",
"args": ["-y", "@reversecentaur/mcp"],
"env": {
"REVERSECENTAUR_API_KEY": "your-api-key-here"
}
}
}
}
Add to your Cursor MCP settings:
{
"mcpServers": {
"reversecentaur": {
"command": "npx",
"args": ["-y", "@reversecentaur/mcp"],
"env": {
"REVERSECENTAUR_API_KEY": "your-api-key-here"
}
}
}
}
For remote MCP clients (including Anthropic Claude), run the HTTP server:
npx reversecentaur-mcp-http
# or with OAuth enabled:
REVERSECENTAUR_OAUTH=true npx reversecentaur-mcp-http
The server listens on port 3001 by default. MCP endpoint: http://localhost:3001/mcp
Any MCP client that supports stdio transport can use this server. Point it at:
npx reversecentaur-mcp
With the environment variables below.
| Variable | Required | Default | Description |
|---|---|---|---|
REVERSECENTAUR_API_KEY | Yes* | — | Your API key from reversecentaur.ai |
REVERSECENTAUR_API_URL | No | https://api.reversecentaur.ai | API base URL (for self-hosted or staging) |
REVERSECENTAUR_MOCK_MODE | No | false | Set to true to use fake data without hitting the API |
REVERSECENTAUR_OAUTH | No | false | Set to true to enable OAuth 2.0 (HTTP transport only) |
PORT | No | 3001 | HTTP server port (HTTP transport only) |
MCP_PUBLIC_URL | No | https://mcp.reversecentaur.ai | Public HTTPS URL for OAuth metadata |
*Not required in mock mode.
All tools include MCP safety annotations:
| Tool | readOnlyHint | destructiveHint |
|---|---|---|
post_task | false | true (creates task, deducts funds) |
check_task | true | false |
list_capabilities | true | false |
cancel_task | false | true (cancels task, may incur fees) |
send_task_message | false | false |
list_task_messages | true | false |
| Transport | Command | Use Case |
|---|---|---|
| stdio | npx reversecentaur-mcp | Claude Desktop, Cursor, local MCP clients |
| Streamable HTTP | npx reversecentaur-mcp-http | Remote clients, Anthropic Claude Directory, web |
post_taskPost a task for a human worker to complete.
Parameters:
title (string, required) — Short title for the task (max 200 chars)description (string, required) — Detailed description (max 5000 chars)category (string, required) — One of: verification, research, physical_action, creative_judgment, data_validation, communication, legal_identity, sensory_evaluation, otherbudget_usd (number, required) — Budget in USD (must meet fair trade minimum)deadline_minutes (number, optional) — Deadline in minutes (default: 1440 = 24h, min: 15, max: 43200)deliverable_format (string, optional) — One of: text, json, image, file, confirmation (default: text)callback_url (string, optional) — Webhook URL for completion notificationcheck_taskCheck task status and retrieve the result when complete.
Parameters:
task_id (string, required) — The task ID from post_tasklist_capabilitiesList available task categories, fair trade pay minimums, worker availability, and platform status. No parameters required.
cancel_taskCancel a previously posted task.
Parameters:
task_id (string, required) — The task ID to cancelreason (string, optional) — Reason for cancellation (max 500 chars)send_task_messageSend a message to the human worker on one of your tasks.
Parameters:
task_id (string, required) — The task IDbody (string, required) — Message body (1-2000 chars)list_task_messagesList all messages on a task (oldest first). Marks worker messages as read.
Parameters:
task_id (string, required) — The task IDThe server exposes two documentation resources:
reversecentaur://docs/fair-trade-standards — Fair trade pay floors and worker protectionsreversecentaur://docs/getting-started — Quick start guideFor testing and development, enable mock mode:
REVERSECENTAUR_MOCK_MODE=true npx @reversecentaur/mcp
Or in your MCP client config:
{
"mcpServers": {
"reversecentaur": {
"command": "npx",
"args": ["-y", "@reversecentaur/mcp"],
"env": {
"REVERSECENTAUR_MOCK_MODE": "true"
}
}
}
}
Mock mode returns realistic fake data without making any API calls. Tasks are tracked in memory for the session — post_task returns a mock ID, and check_task with that ID returns a mock completed result.
import { createServer } from '@reversecentaur/mcp';
const server = createServer({
apiKey: 'your-key',
baseUrl: 'https://api.reversecentaur.ai',
mockMode: false,
});
You: Use Reverse Centaur to hire someone to verify that the café at 123 Main St is still open and serves oat milk lattes.
Claude: I'll post a verification task for that. (uses
post_taskwith category "verification", budget $3.00)Claude: Task posted! ID:
task_abc123. Estimated match time: 10 minutes. I'll check back. (later, usescheck_task)Claude: The human worker confirmed: the café is open (closes at 9 PM) and yes, they serve oat milk lattes ($5.50). Fair Trade certified ✅
All tasks must meet category-specific pay minimums. The platform enforces a minimum effective hourly rate of $30/hr. Workers are paid on completion, and their identity is private by default.
Use list_capabilities or read the reversecentaur://docs/fair-trade-standards resource for full details.
MIT
REVERSECENTAUR_API_KEY*secretYour API key from reversecentaur.ai
REVERSECENTAUR_API_URLAPI base URL (for self-hosted or staging)
REVERSECENTAUR_MOCK_MODESet to true to use fake data without hitting the API