我需要哪一个?
| 你想让智能体… | 使用 |
|---|---|
| 在任何地方处理你的云端文件、线程和账户 | 托管 MCP 服务器 |
| 在本地授权下驱动连接到你电脑的机器 | 本地 MCP 中继,commandagi mcp |
| 从你自己的程序中以脚本方式操作 CommandAGI | TypeScript 或 Python SDK |
三者都以某个主体的身份进行认证。它们都不能创建或扩大授权——那始终是人的行为。
托管 MCP 服务器
https://api.commandagi.com/mcp——Streamable HTTP,无状态,JSON 响应。使用 API 密钥(cagi_…)认证,密钥在工作台账户菜单的 API 密钥中创建。
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 服务器,它把请求中继到主机自己的端点。通过环境变量或文件向它提供智能体的主机凭据——绝不要作为命令行参数传入:
claude mcp add commandagi -e COMMANDAGI_CREDENTIAL=cagp_… -- commandagi mcp
# or
claude mcp add commandagi -- commandagi mcp \
--credential-file ~/.config/claude/commandagi.credential没有凭据时,客户端可以读取和显示内容,但不能执行操作。主机的端点只在本机回环地址上响应,并拒绝带有网页来源(origin)的请求。同样的控制工具也以普通 HTTP 的形式在 POST /control/<tool> 上响应,需携带 Authorization: Bearer <credential>。
本地工具
| 分组 | 工具 |
|---|---|
| 项目与世界 | 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
npm i commandagi # Node 22 or laterimport { 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 whoami、commandagi threads create --intent "…"、commandagi call <tool> --json '{…}',单独运行时则是一个交互式终端。源码:github.com/CommandAGI/commandagi-sdk-typescript。
Python SDK
pip install commandagi # Python 3.9 or laterfrom 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_URL | API 源地址,默认为 https://api.commandagi.com |
COMMANDAGI_CREDENTIAL | 供本地中继使用的主体凭据 |