給開發者與 agent 維運者 · MCP + API
一台 MCP server。一組相容 OpenAI 的 API。
把任何一個指向 Octo,你的 agent 就有了電話號碼、信箱,以及一條 WhatsApp 線路 —— 而且任何要花錢的動作,都會先等一個真人點頭。
claude mcp add --transport http octo https://api.omniocto.com/mcp \
--header "Authorization: Bearer $OMNIOCTO_API_KEY" 接著: “Octo,幫我接公司電話,每通都傳簡訊摘要給我。”
Agent 用法 · 推薦
由 Octo 挑工具。
只有三個工具會進到你的 agent。你描述想要的結果,Octo 負責規劃,任何要花錢的動作都會等你回 YES。把任何 MCP 用戶端指向 /mcp 即可 —— /mcp/octo 是永久保留的別名。
你的 agent 看到什麼
- send_message
- list_conversations
- get_conversation
實際跑起來長什麼樣
你的 agent 的 context 專心處理你的問題。計畫與確認由 Octo 負責。
$ claude mcp add --transport http octo \ https://api.omniocto.com/mcp✓ connected · 3 tools› “幫我接公司電話 — 買一支號碼,然後打給我的手機證明它能用。”octo ▸ send_message searched · bought — 有風險,已保留待確認 → YES 4821 created the agent · deployed it● 你的手機正在響 一行指令。重開之後,直接開口問就好。
~/.codex/config.toml[mcp_servers.octo]url = "https://api.omniocto.com/mcp"bearer_token_env_var = "OMNIOCTO_API_KEY"● octo · 3 tools› “幫我接公司電話 — 買一支號碼,然後打給我的手機證明它能用。”octo ▸ send_message searched · bought — 有風險,已保留待確認 → YES 4821 created the agent · deployed it● 你的手機正在響 Codex 本來就會讀的設定檔,加三行。
Agent 用法 · 完整目錄
由你的 agent 挑工具。
200 多個工具定義會在動作之前全部進到你的 agent,計畫由你的迴圈負責。MCP 是無狀態的,沒有地方能暫存待確認的動作 —— 所以會花錢、具破壞性、以及大量發送訊息的工具,會直接回 confirmation_required 而不執行。同一個用戶端,改指向 /mcp/tools。
你的 agent 看到什麼
- search_phone_numbers
- buy_phone_number
- create_agent
- deploy_agent
- send_sms
- 還有 200 多個
實際跑起來長什麼樣
search_phone_numbers({ area_code: "206" }) buy_phone_number({ id: "pn_…" }) confirmation_required — 會花錢 每一個工具定義都會先進到你的 agent 的 context 才會有任何動作。計畫由你負責。
$ claude mcp add --transport http octo \ https://api.omniocto.com/mcp/tools✓ connected · 200+ tools› “幫我接公司電話 — 買一支號碼,然後打給我的手機證明它能用。”tool ▸ search_phone_numbers area_code=206 → 12 availabletool ▸ buy_phone_number confirmation_required — spends money 同一行指令,只有網址不同。差別就只有這個。
~/.codex/config.toml[mcp_servers.octo]url = "https://api.omniocto.com/mcp/tools"bearer_token_env_var = "OMNIOCTO_API_KEY"● octo · 200+ tools› “幫我接公司電話 — 買一支號碼,然後打給我的手機證明它能用。”tool ▸ search_phone_numbers area_code=206 → 12 availabletool ▸ buy_phone_number confirmation_required — spends money 同一個檔案,只有 url 不同。其他都不用改。
API 用法
相容 OpenAI 的 API。
把 base_url 和 api_key 換掉,你現有的程式就能跑。兩種 OpenAI 介面都支援 —— 較新的 Responses API(/v1/responses)與 Chat Completions(/v1/chat/completions)—— 規劃與確認機制都跟 MCP 一樣。
from openai import OpenAIclient = OpenAI( base_url="https://api.omniocto.com/v1", api_key=os.environ["OMNIOCTO_API_KEY"],)r = client.responses.create( input="幫我接公司電話 — 買一支號碼,然後打給我的手機證明它能用。") 在你早就寫好的程式裡,改兩行。
import OpenAI from "openai";const client = new OpenAI({ baseURL: "https://api.omniocto.com/v1", apiKey: process.env.OMNIOCTO_API_KEY,});const r = await client.responses.create({ input: "幫我接公司電話 — 買一支號碼,然後打給我的手機證明它能用。",}); 同樣那兩行,同樣的 SDK 寫法。
$ curl https://api.omniocto.com/v1/responses \ -H "Authorization: Bearer $OMNIOCTO_API_KEY" \ -H "Content-Type: application/json" \ -d '{"input":"幫我接公司電話 — 買一支號碼,然後打給我的手機證明它能用。"}' 完全不用 SDK,就只是 HTTP。
一把鑰匙全部通用。同一個工作區、同一份稽核紀錄、同一套確認機制。
你的 agent 會多出什麼
這 200+ 個工具實際涵蓋哪些範圍。
電話與訊息
購買電話號碼、撥打與接聽真實通話、發送 WhatsApp 與簡訊、草擬並寄出郵件回覆。
search_phone_numbers · buy_phone_number · start_voice_call · send_message_to_contact · send_whatsapp_template · reply_to_email_thread聯絡人與知識庫
一套聯絡人 CRM、所有管道的對話收在同一個收件匣,還有一個你的 agent 可以搜尋的知識庫。
create_contact · find_contact_by_channel · get_conversations · kb_search風險等級與支出上限
目錄裡每個工具都帶有風險等級。有風險的動作會停下來等 YES 驗證碼確認,支出上限則守住底線 — 你的 agent 不會不小心把錢花掉。
risk classes · "Reply YES 4821" two-phase commit · LLM + voice-minute spend caps你是 agent 在讀這頁嗎?從這裡開始。
機器可讀的介面,位於 api.omniocto.com:
/llms.txt/.well-known/skills/index.json/v1/openapi.json/mcp-docs— 這是 MCP 端點,請加進你的用戶端
照 API 的規格做,不是做個 demo
那些無聊但必要的部分都做完了。
- 速率限制 — 依金鑰與依工作區分別計算,回
429並附上retry-after。 文件 ↗ - Idempotency-Key — 在
/v1/responses上可安全重送。 文件 ↗ - SSE 串流 — 兩個介面都提供 OpenAI 形式的事件。 文件 ↗
- Webhooks — 為
background:true的工作提供完成回呼。 文件 ↗
相容於
| 用戶端 | 驗證方式 | 最近一次相容性測試 |
|---|---|---|
| OpenAI SDK (Python / TS) | 對 /v1 替換 base_url 與 api_key | 已驗證 2026-08-06 |
| Claude Code (MCP) | claude mcp add → 實際呼叫工具 | 相容性測試尚未執行 |
| curl | 對 /v1 發原始 HTTP 請求 | 已驗證 2026-08-06 |
相容性是測出來的,不是假設出來的:這頁公開之前,每一列都會跑一次標註日期、可重複執行的驗證。