ドキュメント · 04

SDK と MCP.

MCP サーバーは二つあります。一つはクラウド、もう一つはお使いのコンピューター上です。SDK も二つあります。エージェントが動く場所に最も近いものを選んでください。

どれが必要ですか

次のことをエージェントにさせたい場合使うもの
どこからでも、クラウドのファイル、スレッド、アカウントを扱うホスト型 MCP サーバー
お使いのコンピューターに接続した機械を、ローカルの付与の範囲で動かすローカル MCP リレー、commandagi mcp
自分のプログラムから CommandAGI を script で操作するTypeScript または Python SDK

三つとも、プリンシパルとして認証します。どれも、付与を作成したり広げたりはできません。付与は、必ず人の操作です。

ホスト型 MCP サーバー

https://api.commandagi.com/mcp です。Streamable HTTP を使い、ステートレスで、JSON で応答します。API キー(cagi_…)で認証します。キーは、ワークベンチのアカウント メニューの API キー から作成します。

shell
claude mcp add --transport http commandagi https://api.commandagi.com/mcp \
  --header "Authorization: Bearer cagi_YOUR_KEY"

三百を超える、多数のツールを公開しています。スレッド(list_threads、create_thread、send_message、get_thread)、ファイル(list_drive、read_drive_file、write_drive_file)、アカウント(whoami、get_credits、list_models)、コード(run_code)、ホスト型サイト(create_site、deploy_site)、取引(trade_venues、trade_order、trade_account、trade_cancel)、ペアリングしたホスト(list_hosts、host_call)があります。必要なツールは search_tools で探せます。

ローカル MCP リレー

ホストを実行しているコンピューターでは、commandagi mcp が stdio の MCP サーバーです。ホスト自身のエンドポイントへ中継します。エージェントのホスト資格情報は、環境変数またはファイルで渡してください。引数として渡してはいけません。

shell
claude mcp add commandagi -e COMMANDAGI_CREDENTIAL=cagp_… -- commandagi mcp
# or
claude mcp add commandagi -- commandagi mcp \
  --credential-file ~/.config/claude/commandagi.credential

資格情報がなければ、クライアントは読み取って表示することはできますが、操作はできません。ホストのエンドポイントは loopback だけで応答し、Web ページの origin を持つリクエストを拒否します。同じ制御ツールは、Authorization: Bearer <credential> を付けた POST /control/<tool> の通常の HTTP でも呼べます。

ローカル ツール

グループツール
プロジェクトとワールドget_project、project_status、list_worlds、get_world、save_world、list_devices、get_device
ファイルread_file、write_file(ファイルの付与のもと)、graph_query、graph_search
コードとシミュレーションevaluate_code(サンドボックス、ネットワークなし)、sim_trials
開いているワークベンチlist_panes、open_file、show_world、thread_read、thread_say
制御list_grants、list_units、open_channel、arm、run_program、send_command、read_channel、stop、close_channel
他のホストlist_hosts、host_call
アウトリーチoutreach_apps、outreach_identify、outreach_start、outreach_send、outreach_reply、outreach_outcome、outreach_due、outreach_advance、outreach_status
市場market_venues、market_order、market_account、market_cancel

制御ツールは、エージェントと常設の権限付与 のすべての規則に従います。各ツールには、付与の中で対応する動詞が必要です。stop はどの付与でも使えます。すべての操作は、送信される前に記録されます。

TypeScript SDK

shell
npm i commandagi        # Node 22 or later
typescript
import { CommandAGI } from "commandagi";

const cagi = new CommandAGI(); // reads COMMANDAGI_API_KEY
const { threadId } = (await cagi.threads.create({
  intent: "Summarise this week's robotics news",
})) as { threadId: string };
await cagi.threads.send(threadId, "Add a link for each one.");

commandagi コマンドは、別のパッケージ @commandagi/host(npm install -g @commandagi/host)です。これは ローカル ホスト でもあります。commandagi whoami、commandagi threads create --intent "…"、commandagi call <tool> --json '{…}' を使えます。単独で実行すると、対話型のターミナルが開きます。ソース: github.com/CommandAGI/commandagi-sdk-typescript。

Python SDK

shell
pip install commandagi      # Python 3.9 or later
uv pip install commandagi   # an environment uv manages (in a uv project: uv add commandagi)
python
from commandagi import CommandAGI

cagi = CommandAGI()  # reads COMMANDAGI_API_KEY
with cagi.launch("simulation/warehouse") as world:
    world.sim.ik(target=[0.3, 0.0, 0.4])
    jpeg = world.observe(fresh=True)

ソース: github.com/CommandAGI/commandagi-sdk-python。

環境変数

変数意味
COMMANDAGI_API_KEYお使いの API キー(cagi_…)
COMMANDAGI_BASE_URLAPI のオリジン。既定値は https://api.commandagi.com
COMMANDAGI_CREDENTIALローカル リレー用の、プリンシパルの資格情報