MCP Human:人工智能助理的人工辅助
一种模型上下文协议(MCP)服务器,使AI助手能够在需要时获得人工输入。该工具在Amazon Mechanical Turk上创建任务,让真人回答人工智能系统的问题。虽然主要是概念验证,但它演示了如何使用MCP标准构建人工智能系统。看 限制 对于当前的限制。
设置
先决条件
配置AWS凭据
# Configure AWS credentials for profile mcp-human
export AWS_ACCESS_KEY_ID="your_access_key"
export AWS_SECRET_ACCESS_KEY="your_secret_key"
aws configure set aws_access_key_id ${AWS_ACCESS_KEY_ID} --profile mcp-human
aws configure set aws_secret_access_key ${AWS_SECRET_ACCESS_KEY} --profile mcp-human使用MCP客户端配置MCP服务器
克劳德代码
沙盒模式:
claude mcp add human -- npx -y mcp-human@latest服务器默认为 沙盒模式 (用于测试)。如果你想提交真实的请求,请使用 MTURK_SANDBOX=false.
claude mcp add human -e MTURK_SANDBOX=false -- npx -y mcp-human@latest通用的
将MCP客户端的配置更新为以下内容:
{
"mcpServers": {
"human": {
"command": "npx",
"args": ["-y", "mcp-human@latest"]
}
}
}例如:克劳德桌面(MacOS): ~/Library/Application\ Support/Claude/claude_desktop_config.json
配置
服务器可以配置以下环境变量:
| 变量 | 描述 | 默认值 |
|---|---|---|
MTURK_SANDBOX | 使用MTurk沙盒(true)或生产(false) | true |
AWS_REGION | MTurk的AWS区域 | us-east-1 |
AWS_PROFILE | 用于凭据的AWS配置文件 | mcp-human |
DEFAULT_REWARD | 奖励金额(美元)。 | 0.05 |
FORM_URL | 表单所在的URL。必须是https。 | https://syskall.com/mcp-human/ |
使用Mechanical Turk访问设置AWS用户
要创建具有Mechanical Turk适当权限的AWS用户,请执行以下操作:
- 登录AWS管理控制台:
- 首选https://aws.amazon.com/console/ - 以root用户或管理员身份登录
- 创建新的IAM用户:
- 导航到IAM(身份和访问管理) - 点击“用户”>“创建用户” - 输入用户名(例如。, mturk-api-user) - 单击“下一步”继续访问权限
- 设置权限:
- 选择“直接附加现有策略” - 搜索并选择 AmazonMechanicalTurkFullAccess - 如果您需要更精细的控制,可以创建具有特定MTurk权限的自定义策略 - 点击“下一步”,然后点击“创建用户”
- 创建访问密钥:
- 创建用户后,单击用户名转到其详细信息页面 - 转到“安全凭据”选项卡 - 在“访问密钥”部分,单击“创建访问密钥” - 选择“在AWS之外运行的应用程序”或适当的选项 - 点击向导,最后点击“创建访问密钥”
- 保存凭据:
- 下载CSV文件或复制访问密钥ID和密钥访问密钥 - 这些将用作 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 环境变量 - 重要:这是您唯一一次看到秘密访问密钥,因此请安全保存
- 配置MTurk请求程序设置:
- 访问MTurk请求者网站:https://requester.mturk.com/ - 设置付款方式和其他帐户详细信息 - 要进行测试,请使用MTurk沙盒:https://requestersandbox.mturk.com/
备注:始终从MTurk沙盒开始(MTURK_SANDBOX=true)无需花费真钱即可测试您的集成。只有当你对自己的实现有信心时,才能切换到生产环境。建筑
该系统由两个主要部分组成:
- MCP服务器:实现与MTurk集成的模型上下文协议的服务器
- 表格:静态HTML表单。
人工智能助手连接到MCP服务器,MCP服务器在MTurk上创建任务。人工智能助手通过表单完成这些任务,并将他们的响应提供给人工智能助手。
使用的Mechanical Turk表单托管在GitHub页面上: https://syskall.com/mcp-human/。它通过查询参数填充数据。
MCP工具
ask人类
允许AI在Mechanical Turk上向人类工人提问。
参数:
question:向人类工人提出的问题reward:奖励金额(默认值:0.05美元)title:HIT的标题(可选)description:HIT说明(可选)hitValiditySeconds:HIT到期前的时间(秒)(默认值:1小时)
示例用法:
// From the AI assistant's perspective
const response = await call("askHuman", {
question:
"What's a creative name for a smart home device that adjusts lighting based on mood?",
reward: "0.25",
title: "Help with creative product naming",
hitValiditySeconds: 3600, // HIT valid for 1 hour
});如果工人在HIT的有效期内做出回应,回应将包含他们的答案。如果没有,它将返回一个HIT ID,稍后可以检查。
检查HITStatus
检查以前创建的HIT的状态,并检索任何提交的作业。
参数:
hitId:用于检查状态的HIT ID
示例用法:
// From the AI assistant's perspective
const status = await call("checkHITStatus", {
hitId: "3XMVN1BINNIXMTM9TTDO1GKMW7SGGZ",
});资源
mturk帐户
提供对MTurk帐户信息的访问。
URI:
mturk-account://balance-获取账户余额mturk-account://hits-列出HITmturk-account://config-获取配置信息
局限性
- 需要实施 进度通知 以避免超时。
- 目前仅支持简单的基于文本的问题和答案
- 每个HIT仅限一次任务
- 表单中不支持自定义HTML/JS
- 简单的结果轮询,而不是webhook方法
- 使用MTurk的ExternalQuestion格式,该格式需要托管一个表单

