給開發者與 agent 維運者 · MCP + API

一台 MCP server。一組相容 OpenAI 的 API。

把任何一個指向 Octo,你的 agent 就有了電話號碼、信箱,以及一條 WhatsApp 線路 —— 而且任何要花錢的動作,都會先等一個真人點頭。

terminal
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 是永久保留的別名。

Codex MCP · /mcp
~/.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 決定 200+ 個工具 →

你的 agent 看到什麼

  • search_phone_numbers
  • buy_phone_number
  • create_agent
  • deploy_agent
  • send_sms
  • 還有 200 多個

實際跑起來長什麼樣

你的 agent search_phone_numbers({ area_code: "206" })
Octo → 12 支可用
你的 agent buy_phone_number({ id: "pn_…" })
Octo confirmation_required — 會花錢
你的 agent … 接下來怎麼做由你的迴圈決定

每一個工具定義都會先進到你的 agent 的 context 才會有任何動作。計畫由你負責。

Claude Code MCP · /mcp/tools
$ 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 MCP · /mcp/tools
~/.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 一樣。

Python HTTP · /v1/responses
from openai import OpenAIclient = OpenAI(    base_url="https://api.omniocto.com/v1",    api_key=os.environ["OMNIOCTO_API_KEY"],)r = client.responses.create(    input="幫我接公司電話 — 買一支號碼,然後打給我的手機證明它能用。")

在你早就寫好的程式裡,改兩行。

TypeScript HTTP · /v1/responses
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 HTTP · /v1/responses
$ 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

照 API 的規格做,不是做個 demo

那些無聊但必要的部分都做完了。

  • 速率限制依金鑰與依工作區分別計算,回 429 並附上 retry-after 文件 ↗
  • Idempotency-Key/v1/responses 上可安全重送。 文件 ↗
  • SSE 串流兩個介面都提供 OpenAI 形式的事件。 文件 ↗
  • Webhooksbackground: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

相容性是測出來的,不是假設出來的:這頁公開之前,每一列都會跑一次標註日期、可重複執行的驗證。

開始

產生一把金鑰。讓你的 agent 指向它。

金鑰是一份帶著你角色權限的工作區憑證 — 你能做的事,它都能做。請把它當成密碼看待。