AI人工辅助服务

一个通过Amazon Mechanical Turk实现AI系统获取人类输入的MCP协议服务器,适用于需要人类介入的AI辅助系统开发。

  • by olalonde
  • JavaScript
  • 本地部署
  • 26 星标
  • 更新于
在 GitHub 查看 olalonde/mcp-human

使用说明

MCP Human:人工智能助理的人工辅助

一种模型上下文协议(MCP)服务器,使AI助手能够在需要时获得人工输入。该工具在Amazon Mechanical Turk上创建任务,让真人回答人工智能系统的问题。虽然主要是概念验证,但它演示了如何使用MCP标准构建人工智能系统。看 限制 对于当前的限制。

设置

先决条件

  • Node.js 16+
  • 具有MTurk权限的AWS凭据。看 说明如下.
  • AWS-CLI (建议用于设置aws凭据)

配置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用户,请执行以下操作:

  1. 登录AWS管理控制台:

    • 首选https://aws.amazon.com/console/
    • 以root用户或管理员身份登录
  2. 创建新的IAM用户:

    • 导航到IAM(身份和访问管理)
    • 点击“用户”>“创建用户”
    • 输入用户名(例如。, mturk-api-user)
    • 单击“下一步”继续访问权限
  3. 设置权限:

    • 选择“直接附加现有策略”
    • 搜索并选择 AmazonMechanicalTurkFullAccess
    • 如果您需要更精细的控制,可以创建具有特定MTurk权限的自定义策略
    • 点击“下一步”,然后点击“创建用户”
  4. 创建访问密钥:

    • 创建用户后,单击用户名转到其详细信息页面
    • 转到“安全凭据”选项卡
    • 在“访问密钥”部分,单击“创建访问密钥”
    • 选择“在AWS之外运行的应用程序”或适当的选项
    • 点击向导,最后点击“创建访问密钥”
  5. 保存凭据:

    • 下载CSV文件或复制访问密钥ID和密钥访问密钥
    • 这些将用作 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 环境变量
    • 重要:这是您唯一一次看到秘密访问密钥,因此请安全保存
  6. 配置MTurk请求程序设置:

    • 访问MTurk请求者网站:https://requester.mturk.com/
    • 设置付款方式和其他帐户详细信息
    • 要进行测试,请使用MTurk沙盒:https://requestersandbox.mturk.com/

备注:始终从MTurk沙盒开始(MTURK_SANDBOX=true)无需花费真钱即可测试您的集成。只有当你对自己的实现有信心时,才能切换到生产环境。

建筑

该系统由两个主要部分组成:

  1. MCP服务器:实现与MTurk集成的模型上下文协议的服务器
  2. 表格:静态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 -列出HIT
  • mturk-account://config -获取配置信息

局限性

  • 需要实施 进度通知 以避免超时。
  • 目前仅支持简单的基于文本的问题和答案
  • 每个HIT仅限一次任务
  • 表单中不支持自定义HTML/JS
  • 简单的结果轮询,而不是webhook方法
  • 使用MTurk的ExternalQuestion格式,该格式需要托管一个表单