Para desenvolvedores e operadores de agentes · MCP + API

Um servidor MCP. Uma API compatível com OpenAI.

Aponte qualquer um dos dois para o Octo e seu agente ganha um número de telefone, uma caixa de entrada e uma linha de WhatsApp — com uma confirmação humana antes de qualquer gasto.

terminal
claude mcp add --transport http octo https://api.omniocto.com/mcp \
  --header "Authorization: Bearer $OMNIOCTO_API_KEY"

Aí: “Octo, atende o telefone do meu negócio e me manda por SMS um resumo de cada ligação.”

A via com agente · recomendada

O Octo escolhe as ferramentas.

Chegam três ferramentas ao seu agente. Você descreve o resultado, o Octo planeja, e tudo que gasta dinheiro espera o seu YES. Aponte qualquer cliente MCP para /mcp — /mcp/octo fica como alias permanente.

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› “Atenda o telefone do meu negócio: compre um número e ligue para o meu celular para provar.”octo ▸ send_message   searched · bought — arriscado, retido esperando confirmação → YES 4821   created the agent · deployed it● seu telefone está tocando

Três linhas no arquivo de configuração que o Codex já lê.

A via com agente · catálogo completo

Seu agente escolhe as ferramentas.

As mais de 200 definições de ferramentas chegam ao seu agente antes de ele fazer qualquer coisa, e o plano fica com o seu loop. O MCP não tem estado, e não há onde deixar uma ação pendente — então as ferramentas que gastam dinheiro, destroem dados ou enviam mensagens em massa respondem confirmation_required em vez de executar. Mesmo cliente, apontado para /mcp/tools.

Você ou seu agente decide mais de 200 ferramentas →

o que seu agente vê

  • search_phone_numbers
  • buy_phone_number
  • create_agent
  • deploy_agent
  • send_sms
  • +200 outras

como é uma execução

Seu agente search_phone_numbers({ area_code: "206" })
Octo → 12 disponíveis
Seu agente buy_phone_number({ id: "pn_…" })
Octo confirmation_required — gasta dinheiro
Seu agente … seu loop decide o que acontece depois

Cada definição de ferramenta entra no contexto do seu agente antes de ele fazer qualquer coisa. O plano é seu.

Claude Code MCP · /mcp/tools
$ claude mcp add --transport http octo \    https://api.omniocto.com/mcp/tools✓ connected · 200+ tools› “Atenda o telefone do meu negócio: compre um número e ligue para o meu celular para provar.”tool ▸ search_phone_numbers  area_code=206   → 12 availabletool ▸ buy_phone_number   confirmation_required — spends money

O mesmo comando, outra URL. É essa a diferença toda.

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› “Atenda o telefone do meu negócio: compre um número e ligue para o meu celular para provar.”tool ▸ search_phone_numbers  area_code=206   → 12 availabletool ▸ buy_phone_number   confirmation_required — spends money

O mesmo arquivo, outra url. Nada mais muda.

A via da API

APIs compatíveis com OpenAI.

Troque base_url e api_key e o código que você já tem roda. As duas interfaces da OpenAI são suportadas — a mais nova, a Responses API em /v1/responses, e a Chat Completions em /v1/chat/completions — com o mesmo planejamento e as mesmas confirmações do 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="Atenda o telefone do meu negócio: compre um número e ligue para o meu celular para provar.")

Duas linhas mudam em código que você já escreveu.

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: "Atenda o telefone do meu negócio: compre um número e ligue para o meu celular para provar.",});

As mesmas duas linhas, o mesmo formato de 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":"Atenda o telefone do meu negócio: compre um número e ligue para o meu celular para provar."}'

Sem SDK nenhum. É só HTTP.

Uma chave só serve para tudo. Mesmo espaço de trabalho, mesma trilha de auditoria, mesmas confirmações.

O que seu agente ganha

O que as mais de 200 ferramentas cobrem de verdade.

Telefonia e mensagens

Comprar números de telefone, fazer e atender ligações reais, enviar WhatsApp e SMS, escrever e enviar respostas de e-mail.

search_phone_numbers · buy_phone_number · start_voice_call · send_message_to_contact · send_whatsapp_template · reply_to_email_thread

Contatos e conhecimento

Um CRM de contatos, todas as conversas de todos os canais em uma caixa de entrada só, e uma base de conhecimento que seu agente pode consultar.

create_contact · find_contact_by_channel · get_conversations · kb_search

Classes de risco e limites de gasto

Cada ferramenta do catálogo carrega uma classe de risco. Ações arriscadas param para esperar uma confirmação com código YES, e os limites de gasto seguram a linha — seu agente não consegue gastar sem querer.

risk classes · "Reply YES 4821" two-phase commit · LLM + voice-minute spend caps

Está lendo isto como um agente? Comece por aqui.

Superfícies legíveis por máquina em api.omniocto.com:

Construído como uma API, não como uma demo

As partes chatas já estão prontas.

Funciona com

ClienteVerificado porÚltima rodada de conformidade
OpenAI SDK (Python / TS) troca de base_url + api_key contra /v1 verificado em 2026-08-06
Claude Code (MCP) claude mcp add → chamada real de ferramenta rodada de conformidade pendente
curl HTTP puro contra /v1 verificado em 2026-08-06

A compatibilidade é testada, não presumida: antes desta página ir ao ar, cada linha passa por uma verificação datada e repetível.

Comece

Gere uma chave. Aponte seu agente para ela.

Uma chave é uma credencial do espaço de trabalho que carrega o seu papel — ela pode fazer tudo o que você pode. Trate como uma senha.