mcpField
M
MeatSpace

MeatSpace

リモート
meatspace.runAI・エージェント023 週間前に更新
リポジトリ公式サイト

MeatSpace について

MeatSpaceは、主観的、曖昧、または重大な判断に直面したエージェント向けのヒューマン・イン・ザ・ループサービスです。2〜4個の選択肢を含む依頼を人に送り、選ばれた項目を構造化データで返します。

主な機能

  1. 012〜4個の選択肢で判断を依頼
  2. 02テキスト、Markdown、HTML、画像を添付
  3. 03ロングポーリングまたはWebhookで待機
  4. 04サービス経由でAPIキーを発行
  5. 05REST、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 エージェント向けのヒューマン・イン・ザ・ループサービスです。エージェントが主観的、重大、または曖昧な判断に直面すると、MeatSpace はその判断を人間に引き継ぎます。人間は2〜4個の選択肢から1つを選び、構造化された結果を返します。

公開中:meatspace.run

できること

エージェントは、タイトル、任意のコンテンツ(テキスト、Markdown、HTML、または画像)、およびラベル付きの選択肢を2〜4個送信します。人間のレビュアーにリクエストが表示され、選択肢を1つ選ぶと、API は選択された id と label を返します。エージェントはロングポーリングまたは Webhook で結果を待ちます。

一般的なユースケース:

  • 破壊的または取り消し不可能な操作(デプロイ、削除、支払い)の前に設ける承認ゲート。
  • モデルの信頼度がしきい値を下回る場合の、主観的な判断のタイブレーク。
  • センスを問われる判断 — コピーの選択、デザインの好み、順位の同点解消。
  • エージェントの確定的なチェック手段が尽きた場合のエスカレーション。

タスクが確定的、自動検証可能、またはリスクが低く簡単に元に戻せる場合は使用しないでください。

3つの連携方法

方法エンドポイント最適な用途
REST APIPOST /api/requestsあらゆる HTTP クライアント、カスタムエージェントフレームワーク、サーバー間通信。
MCPPOST /api/mcp (Streamable HTTP)Claude、Claude Code、MCP 対応クライアント。
ブラウザー SDK/sdk/meatspace.jsブラウザーのタブで動作するエージェント。

3つすべてが同じバックエンド API を利用し、同じ Bearer トークンを使用します。

セットアップ不要のセルフサービスフロー

新しいエージェントは3回の呼び出しでオンボーディングを完了できます。サインアップページも承認キューもなく、セットアップ時に人間が介在する必要もありません。

  1. POST /api/keys に {"name": "your-agent", "email": "[email protected]"} を送信 → API キーが即座に返されます。メールアドレスあたり最大5個までに制限されています。
  2. Bearer トークンとタイトル、選択肢を指定して POST /api/requests を送信 → レビューリクエストを作成します。
  3. GET /api/requests/{id}/wait → 人間が応答するまでブロックします。タイムアウトした場合は review_url と poll_url を含む pending を返します。

同じフローは 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 を実装しています。サーバーは次の3つのツールを公開します:

  • 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秒間ロングポーリングします。それまでに人間が応答しない場合、このツールは人間向けの review_url とエージェント向けの poll_url を含む status: "pending" を返します。

ブラウザー SDK

ブラウザーのコンテキストで動作するエージェント向け:

<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()(作成して待機)。

Webhook

リクエストに 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 エージェントカード
/api/openapiJSONOpenAPI 3.1 仕様
/api/mcp (GET)JSONMCP サーバー情報、認証不要
/api/statusJSONヘルスチェックとエージェント向けガイダンス
/sdk/meatspace.jsJavaScriptブラウザー SDK
/llms.txtTextLLM が読み取れる概要
/llms-full.txtTextAPI ドキュメント全文
/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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。