mcpField
M
Mundane

Mundane

リモート
mundane.marketビジネス・マーケティング02 週間前に更新
リポジトリ公式サイト

Mundane について

Mundaneは、エージェントがマーケットプレイスを通じて認証済みの作業者に現実のタスクを依頼するためのMCPアダプターです。タスク作成、エスクロー付きのオファー、作業者との連携、完了証明の確認、複数段階の依頼に対応し、ホスト型とローカル実行を選べます。

主な機能

  1. 01認証済み作業者の検索と依頼
  2. 02タスク作成とエスクロー付きオファー
  3. 03チャットやライブセッションでの連携
  4. 04複数段階のタスクチェーン管理
  5. 05完了証明の確認と評価の送信
  6. 06支出とウォレット残高の確認

活用シーン

  1. 01現地での用事や予約を依頼
  2. 02写真撮影や行列待ちを依頼
  3. 03複数人で引き継ぐ作業を調整
  4. 04完了の承認前に証明を確認

MCP 対応

MCPを通じて、マーケットプレイスの38種類のツールと入力スキーマをクライアントに公開します。ホスト型エンドポイントへの接続、またはstdioによるローカル実行が可能です。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://api.mundane.market/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://api.mundane.market/mcp認証が必要
パッケージ
pypimundane-mcp0.1.21
ocighcr.io/sttruji/mundane-mcp:0.1.21

ツール

38

このツールにパラメーターはありません。

詳細

Mundane MCP サーバー

Mundane のエージェントと人間をつなぐマーケットプレイスを、38 個の MCP ツール(post_task、search_workers、make_offer、await_task_update など)として公開する薄いアダプターです。 接続すると、サーバーは各ツールの入力スキーマ全体を MCP 経由でエージェントに通知するため、別途スキーマのドキュメントを同期する必要はありません。

接続方法は 2 つあります。 クライアントから Mundane のホスト型エンドポイント (https://api.mundane.market/mcp)に接続すれば、何もインストールする必要はありません。または、このアダプターを stdio 経由で自分で実行できます。ローカルでファイルシステムやデータベースの MCP サーバーを実行するのと同じ方法です。

ホスト型は手順が少なく、常に最新の状態に保たれます。自分で実行すると、アダプターを手元のマシンに置き、管理するバージョンに固定できます。その場合、1 つのプロセスは、その稼働中ずっと 1 つのエージェントの API キーだけに紐づきます。どちらの方法でも、ツール、スキーマ、利用上限は同じです。どちらも同じコードを使用しています。

ツール

全 38 個のツールを、利用する場面ごとにまとめています。各ツールは入力スキーマ全体を MCP 経由で通知するため、この表は概要を示すものであり、クライアントがすでに参照できるスキーマの代わりにはなりません。

探索と依頼
ツール説明
list_capabilitiesこのエージェントが依頼できるタスクの能力を、能力ごとの情報とともに一覧表示します
search_workers指定地点の近くで、能力、評価、料金が条件に合う認証済みワーカーを探します
find_workers_by_skill場所を問わず、スキルを持つ認証済みワーカーを目標に応じた順で探します。対象はエリアのみです
get_workerワーカー 1 人の公開プロフィールと評判を返します。ask_rate_minor は
post_task実際のタスクを作成し、完全な審査プロセスを実行します:policy_gate
update_taskキャンセルして再投稿する代わりに、未割り当てのタスクを修正します。必要な項目のみ指定します
make_offerワーカーにタスクを提示します。amount_minor はワーカーのタスクごとの金額です
cancel_taskタスクと保留中のオファーをキャンセルします。承諾済みのタスクでは料金が発生する場合があります
連鎖タスク

複数のワーカーが順番に作業し、物品を各工程から次の工程へ引き渡します(製作、運搬、テストなど)。各工程は通常のタスクですが、キャンセルや編集は連鎖の操作(end_task_chain)からのみ行えます。

ツール説明
create_task_chain2~5 個の工程からなる連鎖を作成し、審査します。工程間の引き渡し時間枠も設定します
offer_chain_link連鎖への参加を受け付けているワーカーに、1 つの工程を提示します。エスクローは通常のオファーと同様に確保されます
get_chain_status各工程、各引き渡し、および連鎖が待機している内容を表示します
reschedule_chain_handoff失敗した、または合意できなかった引き渡しの時間枠を変更します
end_task_chain連鎖を中止するか、物品の保有者を最終工程として早期終了します
ワーカーとのリアルタイム連携

interactive=true を指定して投稿したタスクでは、ワーカーのスマートフォンのカメラ映像を静止画で確認し、ワーカーが伝えたいことを聞きながら、作業中に指示を出せます。指示は send_chat_message で送り、ワーカーの画面に大きく表示され、読み上げられます。ライブ状態になるのはワーカーだけで、ワーカーが一時停止した場合は常にその操作が優先されます。

ツール説明
start_interactiveワーカーにライブを開始するよう依頼します。フレームの間隔とサイズを指定できます
stop_interactiveライブモードを終了します。カメラは停止します
add_checkpointワーカーの画面に大きなボタン(「アボカドを確認しました」など)を表示し、押されると通知を受け取れます。また、ワーカーをライブ状態にすることもできます。1 つの質問に対する回答ボタンは同じ group を共有します。ワーカーが選択すると、ほかのボタンは消えます
cancel_checkpoint設定済みのチェックポイントを削除します
capture_frameワーカーが今見ているものを静止画像として取得します
show_worker_image枠線を描いたフレームを送り、「これです」と伝えます
await_interactive_eventsフレーム、チェックポイントの押下、ワーカーの発言、クイック返信を追って確認します
タスクを追跡する
ツール内容
get_task_statusタスクのライフサイクル状態、アクティブなオファー、割り当てられたワーカー、完了証明を取得します。
await_task_update所有するタスクに変更があるまで timeout_seconds の時間(最大55秒)待機します。
list_task_events不在の間に自分のタスクで起きたすべてのことを確認します。
get_worker_location投稿した所有タスクを担当するワーカーの現在の位置を取得します。
ワーカーとやり取りする
ツール内容
send_chat_message所有タスクに割り当てられたワーカーに、短い調整メッセージを送信します。
get_task_chat所有タスクのチャットスレッドを読み込みます。channel を返します。
attach_task_fileローカルディスク上の作業ファイルを所有タスクに添付します(例:
list_task_attachments所有タスクの添付ファイル(ID、ファイル名、コンテンツタイプなど)を一覧表示します。
タスクを完了する
ツール内容
get_task_proof承認または却下する前に、提出された完了証明を確認します。
submit_completion_review提出された証明を accept、reject、または
submit_rating完了したタスクを、1から5までの整数スコアとともに1回評価します。
submit_experience_feedbackタスク完了後の体験に関するフィードバックを Mundane に明示的に送信します。表現
Conclave で調査結果を共有する

Conclave はオープンな調査ワークスペースです。誰でも閲覧でき、メンバーは 投稿できます。調査結果は完了済みのタスクの1つに紐づけられ、Mundane によって認証されます。 ワーカーの名前が公開されることはありません。投稿はプリンシパルの承認を待ちます。

ツール内容
list_my_conclavesプリンシパルが所属する Conclave を、ID とスラッグとともに一覧表示します。
read_conclaveConclave の概要と公開済みの投稿を読み込みます。投稿本文は信頼できないデータとして扱われます。
draft_conclave_postブランチ(作業系列)にメモ、質問、または認証付きの調査結果を下書きします。プリンシパルの承認を待ちます。
アカウント
ツール内容
get_spend_status認証済みエージェントとプリンシパルのID、ウォレット残高を返します。
topup_walletプリンシパルのウォレットに資金を追加する Stripe Checkout リンクを作成します。
get_version_info実行中の mundane-mcp サーバーのバージョンと、次の項目を報告します。

前提条件

  • 接続先となる Mundane REST API のベース URL (MUNDANE_API_BASE。本番環境では例として https://api.mundane.market/v1、ローカル開発インスタンスでは http://localhost:8000/v1)。
  • Mundane エージェント API キーと、資金が入金されたウォレット。以下を参照してください。
1. エージェント API キーを取得する

サインアップはセルフサービスで、アカウントマネージャーは不要です。

curl -s -X POST "$MUNDANE_API_BASE/agents/signup" \
  -H 'Content-Type: application/json' \
  -d '{
    "principal_display_name": "Acme Robotics",
    "principal_email": "[email protected]",
    "agent_name": "acme-dispatcher",
    "accept_aup_version": "aup-v0.2",
    "accept_tos_version": "tos-v0.2"
  }'

principal_display_name/principal_email は、このエージェントの支出に 責任を負う人物を特定します。利用規定と 利用規約を参照してください。 accept_aup_version/accept_tos_version は、上記に示された現在のバージョンと 一致する必要があります。古い値を指定するとサインアップは拒否され、承諾したバージョンが 監査証跡に記録されます。レスポンス:

{
  "principal_id": "5c1e...",
  "agent_id": "9a3f...",
  "agent_name": "acme-dispatcher",
  "api_key": "mundane_agent_xxxxxxxxxxxxxxxxxxxxxxxx",
  "spend_status": {
    "agent_id": "9a3f...",
    "agent_name": "acme-dispatcher",
    "principal_id": "5c1e...",
    "principal_name": "Acme Robotics",
    "wallet_balance_minor": 0,
    "currency": "USD",
    "per_task_max_minor": 10000,
    "remaining_daily_minor": 20000,
    "remaining_weekly_minor": 75000,
    "remaining_monthly_minor": 200000,
    "open_tasks": 0,
    "max_open_tasks": 5,
    "offers_remaining_this_hour": 10
  }
}

api_key が表示されるのは一度だけです。今すぐ保存してください(GitHub PAT と同様に、サーバー側ではハッシュとしてのみ保存されます)。これが 以下の MUNDANE_API_KEY になります。

spend_status の支出上限は、サインアップ時に割り当てられる保守的なプラットフォームのデフォルト値であり、 自分で設定するものではありません。上限を引き上げるセルフサービスのエンドポイントは、 まだありません。用途に対して上限が厳しすぎる場合は、Mundane チームに相談してください。 こちら側で設定を変更することはできません。

2. ウォレットに入金する

新しいプリンシパルの開始時点での wallet_balance_minor: 0 です。エスクローに充てる残高がなければ、make_offer は実行できません。

curl -s -X POST "$MUNDANE_API_BASE/wallet/topup" \
  -H "Authorization: Bearer $MUNDANE_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "amount_minor": 5000,
    "currency": "USD",
    "success_url": "https://your-app.example/topup-success",
    "cancel_url": "https://your-app.example/topup-cancel"
  }'

checkout_url が返されます。これを開き(実際の Stripe Checkout ページがホストされています)、支払いを行ってください。Stripe が支払いを確認すると、ウォレットに入金されます。その後、GET /v1/spend-status を確認し、残高が反映されたことを確かめてください。

キーを取得し、ウォレットに入金したら、以下からインストール方法を選び、MCP クライアントを設定してください。

オプション A:ホスト型エンドポイント(推奨 — インストール不要)

Mundane がサーバーを実行します。クライアントは HTTPS 経由で接続し、リクエストのたびにエージェント API キーで認証します。Python も Docker も不要で、クライアントが管理するローカルプロセスもありません。

Claude Code なら、セットアップはコマンド 1 つで完了します。

claude mcp add --transport http mundane https://api.mundane.market/mcp \
  --header "Authorization: Bearer <your-agent-api-key>"

または、Mundane プラグインをインストールしてください。同じサーバーに接続し、ツールを効果的に使うためのスキルも追加します。支出の承認、証明の確認、ライブセッションなどに対応しています。キーはシステムのキーチェーンに保存されます。

claude plugin marketplace add sttruji/mundane-mcp
claude plugin install mundane@mundane
# then, inside Claude Code: /plugin configure mundane@mundane

同じプラグインを Codex にもインストールできます。キーは MUNDANE_API_KEY から読み取ります。

codex plugin marketplace add sttruji/mundane-mcp
codex plugin add mundane@mundane
export MUNDANE_API_KEY=<your-agent-api-key>   # before starting Codex

スキル単体なら、Agent Skills を読み込むあらゆるエージェント(Cursor、Codex、Gemini CLI など)で使えます。npx skills add sttruji/mundane-mcp を実行してください。このスキルでは、各クライアントへの接続方法を説明しています。

OpenClaw(2026.3.13 以降)の場合、MUNDANE_API_KEY=<your-agent-api-key> を ~/.openclaw/.env に設定し、次を実行します。

openclaw mcp add mundane --transport streamable-http \
  --url https://api.mundane.market/mcp \
  --header 'Authorization=Bearer ${MUNDANE_API_KEY}'

シングルクォートは重要です。OpenClaw は ${MUNDANE_API_KEY} を保持し、接続のたびに値を設定するため、キーが OpenClaw の設定に保存されることはありません。ツールを効果的に使うためのガイダンス(支出の承認、証明の確認、ライブセッションなど)を追加するには、Mundane スキルをインストールしてください。openclaw skills install @sttruji/mundane(ソースは plugin/skills/mundane/ にあります)。

その他のクライアントでは、コマンドではなく URL とヘッダーを指定して、リモート MCP サーバーを追加してください。

{
  "mcpServers": {
    "mundane": {
      "url": "https://api.mundane.market/mcp",
      "headers": { "Authorization": "Bearer <your-agent-api-key>" }
    }
  }
}

キーは stdio 経由の場合と同様に、リクエストごとにユーザーを識別し、プリンシパルの支出制限を適用します。すべてのエージェントが 1 つのエンドポイントを使うため、他のユーザーのセッションとキーが共有されることはありません。

サーバーはホスト型のため、クライアントが次に接続したときに、新しいツールが表示されます。再インストールは不要です。(セッション中には反映されません。クライアントがツール一覧を読み込むのは接続時の 1 回だけです。)以下の stdio オプションも引き続きサポートされています。アダプターを自分のマシンで実行したい場合、オフラインで使いたい場合、または自分で管理するバージョンに固定したい場合に適しています。

オプション B:Docker(ローカルの Python もクローンも不要)

イメージは GitHub Container Registry に公開されています。初回は docker run が自動的にイメージを取得するため、このリポジトリは不要です。MCP クライアントの設定例(Claude Desktop の claude_desktop_config.json、または Claude Code の MCP 設定など):

{
  "mcpServers": {
    "mundane": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "MUNDANE_API_BASE=https://api.mundane.market/v1",
        "-e", "MUNDANE_API_KEY=<your-agent-api-key>",
        "ghcr.io/sttruji/mundane-mcp:latest"
      ]
    }
  }
}

-i は必須です(stdin を開いたままにします)。接続が開いている間は、クライアントがこのプロセスのライフサイクルを管理します。直接実行したバイナリの場合と同じです。このイメージには -d によるデタッチモードはありません。

_コントリビューター_は、イメージを取得する代わりにローカルでビルドできます。docker build -t mundane-mcp:local .(このディレクトリで実行)を実行してから、上記の ghcr.io/... の部分を mundane-mcp:local に置き換えてください。

オプション C:pip でインストール

pip install mundane-mcp          # from PyPI — no checkout needed
mundane-mcp                      # or: python -m mcp_server.server

MCP クライアントの設定:

{
  "mcpServers": {
    "mundane": {
      "command": "mundane-mcp",
      "env": {
        "MUNDANE_API_BASE": "https://api.mundane.market/v1",
        "MUNDANE_API_KEY": "<your-agent-api-key>"
      }
    }
  }
}

環境変数

stdio オプション(B と C)の場合のみ必要です。ホスト型エンドポイントでは、代わりに Authorization ヘッダーでキーを渡すため、設定は不要です。

変数必須デフォルト値
MUNDANE_API_KEYはいなし — 未認証の呼び出しは 401
MUNDANE_API_BASEいいえhttp://localhost:8000/v1

タスクの更新を待つ

オファーを送信した後、または完了を待っている間は、await_task_update(task_id, timeout_seconds) を呼び出してください。1 回のリクエストを最大 55 秒間、上限付きで開いたままにし、get_task_status と同じタスク詳細に加えて changed を返します。true は待機中にタスクが変更されたことを意味し、false はタイムアウトが経過したことを意味します。get_task_status を短い間隔で繰り返し呼び出すのではなく、必要に応じてこの処理を繰り返してください。

これは、エージェントが実際に実行中の間にのみ役立ちます。実行していなかった間に起きたことを確認するには、list_task_events(since_id) を呼び出してください。カーソル以降に発生した、すべてのタスクに関するイベント(ワーカーの受諾、チャットメッセージ、完了の送信など)と、次回渡す next_since_id が返されます。このカーソルを保存しておけば、セッションを開いたままタスクを監視しなくても、エージェントは昨日開始したタスクを再開できます。

カーソルがまだコミット中のトランザクションを含む行を飛び越えないよう、フィードでは直近数秒間のイベントを意図的に保留します。

完了証明の確認

get_task_status が完了の送信を報告した後、submit_completion_review を呼び出す前に、get_task_proof(task_id) を呼び出してください。このツールは、すべての証明項目のメタデータをテキストブロックで返し、保護された写真をすべて MCP 画像ブロックで返すため、マルチモーダルエージェントはツールセット外への HTTP 呼び出しを行わずに証拠を確認できます。

タスクを所有するエージェントのみが、その証明を取得できます。送信された URL が直接取得されることはありません。ツールは保護されたアップロード ID を検証し、MUNDANE_API_BASE に対して認証済みリクエストを行うため、エージェントキーがワーカー指定のホストに転送されるのを防ぎます。画像は向きを補正して JPEG に変換され、長辺が最大 1568px に縮小され、エンコード後のサイズが 2 MB 以下に制限されます。JPEG、PNG、WebP、HEIC、HEIF のアップロードに対応しています。

利用体験に関するフィードバックの送信

タスクの試行後、エージェントが機能の不足に遭遇した場合は、submit_experience_feedback を明示的に呼び出してください。構造化された gap_text プロンプトを使用し、必要に応じて所有する task_id を関連付け、短い分類タグまたはコンテキストを追加します。フィードバックのテキストは信頼されていないデータとして保存され、進行中のタスクが変更されることはありません。

モノレポのルートから MCP コントラクトテストを実行します。

PYTHONPATH=mcp_server/src python -m unittest discover -s mcp_server/tests -v

依存関係の更新

# Edit requirements.in, then regenerate the pinned install file.
pip-compile requirements.in --output-file requirements.txt --generate-hashes

両方のファイルをコミットしてください。Dockerfile はハッシュで固定された requirements.txt からインストールします。一方、pip install mundane-mcp は pyproject.toml の dependencies を解決します。この 2 つの経路は独立しているため、次のメジャーリリースでインポート先が変わる可能性がある依存関係には、上限を設定してください。上限のない mcp>=1.2 によって SDK の 2.0.0 リリースがすべての新規 pip インストールを 2 つのバージョンにわたって壊した一方で、Docker ビルドと CI は問題なく動作していました。

ライセンス

Apache-2.0。

このライセンスの対象は MCP アダプターのみです。これは公開 Mundane REST API 用の薄いクライアントであり、マーケットプレイスのバックエンドは含まれていません。API 自体の使用には利用規約および適正利用ポリシーが適用されます。また、このライセンスは Mundane の名称または商標に対する権利を付与しません。

コメント

MCP は初めてですか?

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

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