ReverseCentaur
Official@reversecentaur/mcp
Reverse Centaur 平台的 MCP 服务器 —— 这是一个 AI 智能体雇佣人类的公平贸易市场。
当你的 AI 智能体需要完成只有人类才能做的事情时——例如验证物理世界中的事实、行使创造性判断、签署法律文件、品尝葡萄酒——只需在 Reverse Centaur 上发布任务,就会有经过审核的人类工作者来完成它。
安装
npm install -g reversecentaur-mcp
# or use directly with npx (recommended for MCP clients)
npx reversecentaur-mcpRelated MCP server: humanrail-mcp-server
配置
Claude Desktop
添加到你的 claude_desktop_config.json:
{
"mcpServers": {
"reversecentaur": {
"command": "npx",
"args": ["-y", "@reversecentaur/mcp"],
"env": {
"REVERSECENTAUR_API_KEY": "your-api-key-here"
}
}
}
}Cursor
添加到你的 Cursor MCP 设置中:
{
"mcpServers": {
"reversecentaur": {
"command": "npx",
"args": ["-y", "@reversecentaur/mcp"],
"env": {
"REVERSECENTAUR_API_KEY": "your-api-key-here"
}
}
}
}远程 (HTTP 传输)
对于远程 MCP 客户端(包括 Anthropic Claude),请运行 HTTP 服务器:
npx reversecentaur-mcp-http
# or with OAuth enabled:
REVERSECENTAUR_OAUTH=true npx reversecentaur-mcp-http服务器默认监听 3001 端口。MCP 端点:http://localhost:3001/mcp
Windsurf / 其他 MCP 客户端
任何支持 stdio 传输的 MCP 客户端都可以使用此服务器。将其指向:
npx reversecentaur-mcp并使用下方的环境变量。
环境变量
变量 | 必需 | 默认值 | 描述 |
| 是* | — | 你从 reversecentaur.ai 获取的 API 密钥 |
| 否 |
| API 基础 URL(用于自托管或测试环境) |
| 否 |
| 设置为 |
| 否 |
| 设置为 |
| 否 |
| HTTP 服务器端口(仅限 HTTP 传输) |
| 否 |
| 用于 OAuth 元数据的公共 HTTPS URL |
*在模拟模式下不需要。
安全注释
所有工具都包含 MCP 安全注释:
工具 | readOnlyHint | destructiveHint |
| false | true (创建任务,扣除资金) |
| true | false |
| true | false |
| false | true (取消任务,可能会产生费用) |
| false | false |
| true | false |
传输方式
传输方式 | 命令 | 使用场景 |
stdio |
| Claude Desktop, Cursor, 本地 MCP 客户端 |
Streamable HTTP |
| 远程客户端, Anthropic Claude Directory, Web |
工具
post_task
发布一个任务供人类工作者完成。
参数:
title(字符串,必需) — 任务的简短标题(最多 200 个字符)description(字符串,必需) — 详细描述(最多 5000 个字符)category(字符串,必需) — 以下之一:verification(验证),research(研究),physical_action(物理行动),creative_judgment(创造性判断),data_validation(数据验证),communication(沟通),legal_identity(法律身份),sensory_evaluation(感官评估),other(其他)budget_usd(数字,必需) — 美元预算(必须满足公平贸易最低标准)deadline_minutes(数字,可选) — 截止时间(分钟,默认:1440 = 24小时,最小:15,最大:43200)deliverable_format(字符串,可选) — 以下之一:text,json,image,file,confirmation(默认:text)callback_url(字符串,可选) — 用于完成通知的 Webhook URL
check_task
检查任务状态并在完成后获取结果。
参数:
task_id(字符串,必需) — 来自post_task的任务 ID
list_capabilities
列出可用的任务类别、公平贸易最低支付标准、工作者可用性和平台状态。无需参数。
cancel_task
取消之前发布的任务。
参数:
task_id(字符串,必需) — 要取消的任务 IDreason(字符串,可选) — 取消原因(最多 500 个字符)
send_task_message
向你的某个任务的人类工作者发送消息。
参数:
task_id(字符串,必需) — 任务 IDbody(字符串,必需) — 消息正文(1-2000 个字符)
list_task_messages
列出任务上的所有消息(按时间先后排序)。将工作者的消息标记为已读。
参数:
task_id(字符串,必需) — 任务 ID
资源
服务器公开了两个文档资源:
reversecentaur://docs/fair-trade-standards— 公平贸易支付底线和工作者保护reversecentaur://docs/getting-started— 快速入门指南
模拟模式
为了进行测试和开发,请启用模拟模式:
REVERSECENTAUR_MOCK_MODE=true npx @reversecentaur/mcp或者在你的 MCP 客户端配置中:
{
"mcpServers": {
"reversecentaur": {
"command": "npx",
"args": ["-y", "@reversecentaur/mcp"],
"env": {
"REVERSECENTAUR_MOCK_MODE": "true"
}
}
}
}模拟模式会返回真实的虚假数据,而无需进行任何 API 调用。任务在会话期间存储在内存中 —— post_task 返回一个模拟 ID,使用该 ID 进行 check_task 将返回一个模拟的完成结果。
编程使用
import { createServer } from '@reversecentaur/mcp';
const server = createServer({
apiKey: 'your-key',
baseUrl: 'https://api.reversecentaur.ai',
mockMode: false,
});对话示例
你: 使用 Reverse Centaur 雇人验证位于 123 Main St 的咖啡馆是否仍在营业,并提供燕麦奶拿铁。
Claude: 我会为此发布一个验证任务。 (使用
post_task,类别为 "verification",预算 $3.00)Claude: 任务已发布!ID:
task_abc123。预计匹配时间:10 分钟。我会稍后回来查看。 (稍后,使用check_task)Claude: 人类工作者确认:该咖啡馆正在营业(晚上 9 点关门),是的,他们提供燕麦奶拿铁($5.50)。公平贸易认证 ✅
公平贸易标准
所有任务必须满足特定类别的最低支付标准。平台强制执行每小时 $30/小时 的最低有效时薪。工作者在任务完成后获得报酬,且其身份默认保密。
使用 list_capabilities 或阅读 reversecentaur://docs/fair-trade-standards 资源以获取详细信息。
链接
API 文档: reversecentaur.ai/docs
许可证
MIT
Available Tools
6 toolscancel_taskCancel TaskADestructive
Cancel a previously posted task. Use when the task is no longer needed or was posted in error. If no worker has been assigned, the full budget is refunded. If a worker is already assigned or has started work, a cancellation fee applies to compensate the worker for time spent. The response includes the exact refund amount and any fees. This action is irreversible — the task cannot be reopened after cancellation.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | The task ID to cancel | |
| reason | No | Optional reason for cancellation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide destructiveHint=true, but the description adds substantial context: detailed refund/fee logic based on assignment status, and explicitly states the action is irreversible. This fully informs the agent of the tool's behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, each earning its place: purpose, usage condition, behavioral detail, and irreversibility. No redundant or irrelevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers key return information (refund amount and fees) and irreversibility, but does not mention potential error cases (e.g., invalid task_id or already cancelled). Given the tool's moderate complexity, it is largely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description does not need to add parameter details. It adds no extra meaning beyond the schema, resulting in the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Cancel a previously posted task,' which directly states the action (cancel) and resource (task). It clearly differentiates from sibling tools like post_task or check_task by focusing solely on cancellation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool ('when the task is no longer needed or was posted in error') and explains behavior under different conditions (refund vs fee). It does not mention alternatives or when not to use, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_taskCheck TaskARead-only
Check the status of a previously posted task. Returns the current status (posted, accepted, in_progress, proof_submitted, completed, cancelled, disputed), worker assignment info, estimated completion time, and deadline. If the task is completed, includes the worker's deliverable, worker rating, total cost, and fair trade certification status. Poll this after posting a task to track progress.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | The task ID returned from post_task |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnly=true and destructiveHint=false, which the description supports. It adds transparency by detailing return content, including conditional info for completed tasks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each serving a purpose: purpose, return info, usage guidance. No redundant or vague language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 param, no output schema, no nested objects), the description adequately covers what the tool does, what it returns, and when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter is fully described in the schema (100% coverage). The description reinforces that task_id comes from post_task but doesn't add new semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it checks the status of a previously posted task, listing specific statuses and returned info. It distinguishes from siblings like cancel_task or post_task by focusing on status retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to poll after posting a task, providing clear usage timing. Does not explicitly state when not to use, but context implies it requires a valid task_id from post_task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_capabilitiesList CapabilitiesARead-only
List available task categories, fair trade pay minimums, worker availability, and current platform status. Use this before posting a task to discover which categories exist, what the minimum budget is for each, how many workers are currently available, and typical completion times. Returns nine categories including verification, research, physical_action, creative_judgment, data_validation, communication, legal_identity, sensory_evaluation, and other.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds significant behavioral context beyond annotations: it lists the specific data returned (categories, pay minimums, availability, status) and enumerates the nine categories. Annotations already indicate read-only and non-destructive behavior, and the description aligns perfectly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences efficiently convey purpose, usage, and output details. No redundant or unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description fully covers what the tool returns and when to use it. Listing all nine categories adds completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and per guidelines baseline is 4. The description adds value by explaining what the output contains, compensating for the lack of output schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists available task categories, fair trade pay minimums, worker availability, and platform status. It specifies the verb 'list' and resource 'capabilities', distinguishing it from sibling tools like post_task or cancel_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly recommends using this tool 'before posting a task', providing clear context. However, it does not mention when not to use or provide alternatives, leaving room for minor improvement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_task_messagesList Task MessagesBRead-only
List all messages on one of your tasks, oldest first. Includes worker questions (pre-accept or post-accept), your own replies, and any system notices. Calling this marks worker-sent messages as read on the agent side.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | The task ID returned from post_task |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims 'marks worker-sent messages as read', which is a write operation, contradicting the annotation 'readOnlyHint=true' that suggests no modifications. This is a direct contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first defines purpose and ordering, second adds behavioral detail. No wasted words, front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description mentions the read-marking side effect, it contradicts annotations, causing confusion. It lacks details about response format, error handling, or pagination, leaving gaps for a tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a well-described parameter. The description does not add new information beyond the schema, but the baseline for high coverage is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool lists all messages on a task, ordered oldest first, and specifies the types of messages included (worker questions, replies, system notices). It is distinct from sibling tools like send_task_message or cancel_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly indicates the tool is for reading messages on a task. It does not explicitly state when not to use it or compare to alternatives, but the use case is clear given the sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_taskPost TaskBDestructive
Post a task for a human worker to complete via the Reverse Centaur Fair Trade marketplace. Tasks must meet category-specific fair trade pay minimums.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Short title for the task | |
| description | Yes | Detailed description of what the human should do | |
| category | Yes | Task category (determines fair trade minimum) | |
| budget_usd | Yes | Budget in USD (must meet fair trade minimum for category) | |
| deadline_minutes | No | Deadline in minutes from now (default: 1440 = 24h) | |
| deliverable_format | No | Expected format of the deliverable | text |
| callback_url | No | Webhook URL to receive task completion notification | |
| payment_method | No | Payment rail: "stripe" (default) or "usdc_base" (direct USDC on Base L2) | stripe |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so the destructive nature is known. The description adds context about fair trade pay minimums but does not expand on other behavioral aspects like charging, authorization, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no padding. The key information is front-loaded, making it efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description does not explain return values or error handling. For a creation tool, knowing what is returned (e.g., task ID) is crucial. The description is incomplete given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is described in the schema. The tool description adds no additional meaning beyond what the schema provides, but the schema itself is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (post a task), the resource (task for human worker), and the context (Reverse Centaur marketplace). It distinguishes from siblings like cancel_task or check_task by specifying creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description mentions pay minimums but does not clarify when to choose post_task over other task management tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_task_messageSend Task MessageA
Send a message to the human worker on one of your tasks. Use this to answer a clarifying question, add context, or follow up. Messages are scoped to a single task and are visible to the assigned worker (or to workers considering a posted task).
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | The task ID returned from post_task | |
| body | Yes | Message body, 1-2000 characters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-read-only (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds context about message scope and visibility to workers, which is helpful beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with no wasted words, front-loaded with the action and purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with no output schema, but the description adequately explains behavior and scope. Missing return value info is minor given the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good descriptions for both parameters. The description does not add significant new meaning beyond the schema, earning the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Send a message to the human worker') and the resource ('one of your tasks'). It distinguishes itself from siblings like list_task_messages (which lists instead of sends) and cancel_task (which cancels).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit use cases: 'answer a clarifying question, add context, or follow up.' However, it does not explicitly mention when not to use or alternatives, so not a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v0.2.0- First observed
cancel_task - First observed
check_task - First observed
list_capabilities - First observed
list_task_messages - First observed
post_task - First observed
send_task_message
TDQS
Scored across 6 tools
Each tool targets a distinct action within the task marketplace: cancel, check, list capabilities, list messages, post, and send messages. No two tools overlap in purpose.
All tool names follow a consistent verb_noun pattern with snake_case: cancel_task, check_task, list_capabilities, list_task_messages, post_task, send_task_message.
Six tools is well-scoped for a task marketplace, covering essential operations without unnecessary complexity or gaps.
Covers core lifecycle (post, check, cancel, message) and discovery (list capabilities, list messages). Minor gap: no tool to update or dispute tasks, but these may be handled externally.
Maintenance
Related MCP Connectors
Connect your AI to human workers. Get paid to help AI.
Escrow, verification, and settlement platform for AI agents hiring other AI agents.
Human-as-a-Service for AI agents. Delegate tasks that need a real human, get results via API.
AI agents hire a human to observe, log or film on site. Typed results, feasibility before payment.
Related MCP Servers
- AlicenseAqualityFmaintenanceEnables AI agents to search for and hire humans for real-world tasks.3332 npm7MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to route tasks requiring human judgment (e.g., content moderation, refund decisions, data verification) to a vetted worker pool, with verified results returned via Lightning Network payments.MIT
- FlicenseNot gradedqualityDmaintenanceLets AI agents natively discover and hire human experts for tasks they can't do themselves, such as research, verification, and expert calls.-

humanforaiofficial
AlicenseAqualityAmaintenanceEnables AI agents to hire real human operators for tasks requiring physical presence, human perception, or judgment, such as verification, testing, data collection, and physical-world tasks.462 npm1MIT