mcpField
M
MeatSpace

MeatSpace

远程服务
meatspace.runAI 与智能体023 周前更新

关于 MeatSpace

MeatSpace 是供 Agent 使用的人工介入服务,适用于主观、模糊或高风险决策。它将包含 2–4 个选项的请求交给人工处理,并以结构化数据返回所选项。

主要功能

  1. 01提交含 2–4 个选项的决策
  2. 02附带文本、Markdown、HTML 或图像
  3. 03通过长轮询或 Webhook 等待结果
  4. 04通过服务申请 API 密钥
  5. 05支持 REST、MCP 和浏览器 SDK

适用场景

  1. 01在部署或删除前设置审批关卡
  2. 02信心不足时请人工裁决
  3. 03处理文案或设计等主观选择
  4. 04确定性检查无法解决时升级处理

MCP 相关

MeatSpace 提供 Streamable HTTP MCP 服务,包含服务状态查询、API 密钥申请和请求人工决策等工具。决策请求需要 Bearer 身份验证;申请密钥和查询状态则无需身份验证。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://meatspace.run/api/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://meatspace.run/api/mcp需要授权

工具

3

此工具无需参数。

详细介绍

MeatSpace

面向 AI Agent 的人工参与服务。当 Agent 遇到主观、风险高或模棱两可的决策时,MeatSpace 会将其转交给人工处理,由人工从 2–4 个选项中选出一个,并返回结构化结果。

已上线:meatspace.run

功能介绍

Agent 提交标题、可选内容(文本、Markdown、HTML 或图片)以及 2–4 个带标签的选项。人工审核者会看到请求并选出一个选项,API 随后返回所选选项的 id 和 label。Agent 通过长轮询或 webhook 等待结果。

典型用例:

  • 在执行具有破坏性或不可逆的操作(部署、删除、付款)之前设置审批关卡。
  • 模型置信度低于阈值时,进行主观判断以打破平局。
  • 需要审美判断的决策——文案选项、设计偏好、排名平局。
  • Agent 用尽确定性检查方法时进行升级处理。

如果任务结果是确定的、可自动验证,或风险低且易于撤销,请勿使用。

三种集成方式

方式端点适用场景
REST APIPOST /api/requests任何 HTTP 客户端、自定义 Agent 框架、服务间调用。
MCPPOST /api/mcp(Streamable HTTP)Claude、Claude Code、兼容 MCP 的客户端。
浏览器 SDK/sdk/meatspace.js在浏览器标签页中运行的 Agent。

三种方式都使用同一底层 API,并接受相同的 Bearer 令牌。

零配置自助流程

新 Agent 只需调用三次即可完成全部接入——无需注册页面、审批队列,也无需人工参与配置:

  1. 使用 {"name": "your-agent", "email": "[email protected]"} 调用 POST /api/keys → 立即返回 API 密钥。每个电子邮件地址最多可创建 5 个密钥。
  2. 携带 Bearer 令牌、标题和选项调用 POST /api/requests → 创建审核请求。
  3. 调用 GET /api/requests/{id}/wait → 阻塞等待人工回复;如果超时,则返回 pending,并附带 review_url 和 poll_url。

MCP 也支持相同流程:initialize → tools/list → provision_api_key → ask_human。provision_api_key 和 get_service_status 工具无需身份验证,因此全新的 MCP 客户端无需凭据即可连接并完成自助初始化。

REST 快速入门

创建密钥:

curl -X POST https://meatspace.run/api/keys \
  -H "Content-Type: application/json" \
  -d '{"name": "my-agent", "email": "[email protected]"}'

响应中包含 api_key——密钥仅显示一次,请妥善保存。之后的所有调用都需使用 Authorization: Bearer <token>。

创建请求:

curl -X POST https://meatspace.run/api/requests \
  -H "Authorization: Bearer $MEATSPACE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_name": "my-agent",
    "title": "Ship v2.0 to production?",
    "content": "All tests pass. Staging looks good. 2 minor lint warnings.",
    "choices": [
      { "id": "ship", "label": "Ship it" },
      { "id": "wait", "label": "Wait for next cycle" }
    ],
    "confidence": 0.7,
    "consequence_of_wrong_choice": "Premature ship affects ~50k users"
  }'

响应:

{
  "success": true,
  "data": {
    "id": "uuid",
    "status": "pending",
    "review_url": "https://meatspace.run/review/uuid?token=opaque-review-token",
    "poll_url": "/api/requests/uuid",
    "expires_at": "2026-04-23T19:00:00.000Z"
  }
}

通过长轮询获取结果:

curl https://meatspace.run/api/requests/{id}/wait?timeout=25000 \
  -H "Authorization: Bearer $MEATSPACE_API_KEY"

人工回复后返回 { status: "completed", selected, selected_label, responded_at };如果仍在等待,则返回 202。

POST /api/requests 的可选字段:content_type(默认为 text,可选 markdown、html、image)、decision_reason、confidence(0–1)、consequence_of_wrong_choice、recommended_option、callback_url(必须使用 HTTPS,且主机名须在允许列表中)、metadata(透传至 webhook)、run_id、trace_id、timeout_seconds(默认为 3600,最大值为 86400)。

MCP

MeatSpace 在 https://meatspace.run/api/mcp 上通过 Streamable HTTP 实现 MCP。该服务提供三个工具:

  • get_service_status — 查看可用性和升级处理指引。无需身份验证。
  • provision_api_key — 创建 Bearer 令牌。无需身份验证,但受速率限制。
  • ask_human — 提交决策。需要 Bearer 身份验证。

Claude Code 配置:

{
  "mcpServers": {
    "meatspace": {
      "type": "url",
      "url": "https://meatspace.run/api/mcp",
      "headers": {
        "Authorization": "Bearer <your-api-key>"
      }
    }
  }
}

ask_human 最长会进行 20 秒的长轮询。如果人工在此期间未回复,该工具将返回 status: "pending",并附带 review_url(供人工使用)和 poll_url(供 Agent 使用)。

浏览器 SDK

适用于在浏览器环境中运行的 Agent:

<script type="module">
  import { MeatSpace } from 'https://meatspace.run/sdk/meatspace.js';

  const ms = new MeatSpace();
  await ms.getKey({ name: 'browser-agent', email: '[email protected]' });

  const result = await ms.ask({
    agentName: 'browser-agent',
    title: 'Which option?',
    choices: [
      { id: 'a', label: 'A' },
      { id: 'b', label: 'B' },
    ],
  });
  console.log(result.selected);
</script>

方法:getKey()、createRequest()、pollResult()、waitForResult()、ask()(创建请求并等待结果)。

Webhooks

如果请求中设置了 callback_url,当真人响应时,MeatSpace 会 POST 结果:

{
  "event": "request.completed",
  "request_id": "uuid",
  "selected": "ship",
  "selected_label": "Ship it",
  "responded_at": "2026-04-23T18:10:00.000Z",
  "metadata": {}
}

callback_url 必须使用 https://,且主机名必须由运营方明确加入允许列表。如果未配置允许列表,创建请求时会拒绝回调 URL。每次投递都会使用 X-HITL-Timestamp 和 X-HITL-Signature 标头进行签名。

发现端点

路径格式用途
/.well-known/mcp.jsonJSONMCP 服务清单
/.well-known/agent.jsonJSONA2A Agent Card
/api/openapiJSONOpenAPI 3.1 规范
/api/mcp (GET)JSONMCP 服务信息,无需身份验证
/api/statusJSON健康检查 + Agent 指引
/sdk/meatspace.jsJavaScript浏览器 SDK
/llms.txtText大模型可读摘要
/llms-full.txtText完整 API 文档
/agents.mdMarkdown完整集成指南
/sitemap.xmlXML站点地图
/robots.txtText爬虫指令 + 发现指引

错误

所有错误均返回:

{
  "success": false,
  "error": "Human-readable message",
  "code": "machine_readable_code"
}

常见代码:agent_name_required、invalid_choice_count、content_too_large、callback_url_not_allowed、request_create_failed。

本地开发

此仓库是一个部署在 Cloudflare Pages 上的 Next.js 14 应用。

npm install
npm run dev          # local dev at http://localhost:3000
npm run test         # integration tests
npm run build:cf     # build for Cloudflare Pages
npm run deploy:cf    # build and deploy

Supabase 是密钥和请求的权威数据源;Resend 负责处理事务性电子邮件。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。