Sign inGet Started

Servidor MCP

O servidor Bird da MCP expõe a Bird API como ferramentas do Model Context Protocol. Os clientes compatíveis incluem Claude Code, Cursor, VS Code, Codex, Claude Desktop, ChatGPT e Muse. Eles podem enviar por todos os canais que a Bird opera, configurar esses canais e inspecionar seu espaço de trabalho sem copiar comandos cURL. Você pode executá-lo de duas formas, e a maioria prefere a primeira:
  1. Hospedado (mcp.bird.com): uma URL e login pelo navegador. Nada para instalar, sem CLI, sem chave API. Este é o caminho recomendado.
  2. Local via stdio (bird mcp): ferramentas rodando na sua máquina dentro do bird CLI, para agentes de shell ou execução por conta própria.
O servidor hospedado omite estas ferramentas exclusivas do stdio:
  • auth_signup, auth_verify_email e auth_create_org: essas ferramentas criam sua primeira credencial, antes de você poder se autenticar no servidor hospedado.
  • compliance_attachments_upload: essa ferramenta lê um caminho de arquivo local. No servidor hospedado, esse caminho se referiria ao sistema de arquivos do servidor e poderia enviar o arquivo errado.

Hospedado: conecte-se ao mcp.bird.com

Escolha um endpoint

Use https://mcp.bird.com para a maioria das conexões. É o endpoint recomendado: a maioria dos clientes MCP já busca e seleciona ferramentas internamente a partir do catálogo completo. Alguns clientes não buscam ferramentas internamente ou impõem um limite rígido ao número de ferramentas que um servidor pode expor. /dynamic é para esses clientes.
Ambos os endpoints hospedados usam Streamable HTTP e o mesmo login Bird OAuth:
EndpointFerramentas que seu cliente vêQuando usar
https://mcp.bird.comCatálogo completo de ferramentas hospedadasRecomendado para a maioria dos clientes, que buscam e selecionam ferramentas internamente. Também suporta widgets de MCP Apps.
https://mcp.bird.com/dynamicApenas search e executeApenas para clientes sem busca interna de ferramentas ou com limite rígido no número de ferramentas que um servidor pode expor.
O endpoint dinâmico dá acesso às mesmas operações hospedadas por meio de execute. O endpoint padrão e o servidor stdio local mantêm suas ferramentas individuais; eles não listam search nem execute.
Você não precisa instalar um binário nem criar um token. A conexão exige dois passos, e ambos são obrigatórios:
  1. Adicione o servidor: forneça ao cliente a URL do endpoint escolhido.
  2. Autentique-se: faça login pelo navegador para que o cliente tenha um token que age como você.
Ambos os endpoints exigem autenticação. Um cliente que tem apenas a URL recebe um 401 até você fazer login. Alguns clientes iniciam o login sozinhos na primeira vez que acessam o servidor; outros deixam o servidor como "needs login" e esperam você clicar. Os passos do seu cliente indicam o comportamento dele.

Use a descoberta dinâmica de ferramentas

Se seu cliente rejeitar o servidor por oferecer ferramentas demais, conecte-se a https://mcp.bird.com/dynamic e conclua o login OAuth. Seu cliente lista duas ferramentas:
  • search encontra ferramentas por nome ou palavras-chave da descrição. Cada resultado inclui nome, descrição, schema de entrada e anotações indicando se a ferramenta lê ou altera dados.
  • execute chama uma ferramenta selecionada com seus argumentos. Pode ler dados, enviar mensagens, alterar registros ou excluí-los, dependendo da ferramenta selecionada.
Por exemplo, seu agente pode encontrar a ferramenta de espaço de trabalho com esta chamada de ferramenta:
Exemplo de código
{
  "name": "search",
  "arguments": { "query": "workspace_get", "limit": 3 }
}
Depois de ler o schema de entrada retornado, ele chama essa ferramenta por meio de execute:
Exemplo de código
{
  "name": "execute",
  "arguments": { "tool": "workspace_get", "arguments": {} }
}
O resultado contém seu espaço de trabalho atual. Você também pode buscar com palavras-chave de tarefas como send email. A busca retorna cinco resultados por padrão, aceita um limit de um a 10 e aceita consultas de até 500 caracteres. Se o resultado tiver has_more: true, refine sua consulta para encontrar resultados mais relevantes.
Os resultados da busca não adicionam ferramentas ao catálogo do seu cliente. Nomes mencionados em resultados ou instruções de recuperação também passam por execute. A execução usa suas permissões existentes; se uma operação precisar de mais permissões, seu cliente pode pedir que você as autorize. Encontrar uma ferramenta não concede acesso a ela.
A execução dinâmica retorna dados para ferramentas que normalmente exibem widgets. Use o endpoint padrão para widgets interativos de MCP Apps. Os clientes veem uma única ferramenta de execução, então as configurações de aprovação por ferramenta se aplicam a execute como um todo; verifique a operação selecionada antes de aprovar uma chamada. Este endpoint executa chamadas de ferramentas e não roda JavaScript nem outro código fornecido.

Conecte um cliente

Os exemplos abaixo usam o endpoint padrão. Para descoberta dinâmica, substitua https://mcp.bird.com/dynamic como URL do servidor e siga os mesmos passos de login.

Claude Code

Adicione o servidor:
Exemplo de código
claude mcp add --transport http bird https://mcp.bird.com
claude mcp list agora mostra bird como ! Needs authentication. O Claude Code não abre o navegador sozinho, então faça login de dentro de uma sessão:
  1. Execute /mcp.
  2. Selecione bird e pressione Enter.
  3. Escolha Authenticate. Seu navegador abre a tela de consentimento do Bird; aprove lá.
O servidor então aparece como conectado e as ferramentas funcionam. Uma execução headless (claude -p) não tem painel /mcp, então autentique-se primeiro pelo shell com claude mcp login bird. Para fazer login novamente depois, /mcp oferece Re-authenticate; Clear authentication remove o token armazenado.
Instalar o plugin bird-ai declara esse servidor para você, substituindo o comando claude mcp add. A autenticação ainda é necessária porque um plugin pode incluir um servidor, mas não pode emitir uma concessão. Selecione /mcp > bird > Authenticate após instalar.

Cursor

Em ~/.cursor/mcp.json:
Exemplo de código
{
  "mcpServers": {
    "bird": {
      "url": "https://mcp.bird.com"
    }
  }
}
Depois abra Cursor Settings > Tools & Integrations. Em MCP Tools, bird mostra Needs login: clique nele, aprove a tela de consentimento do Bird no navegador e volte ao Cursor.

OpenCode

O plugin OpenCode de Bird registra o servidor para você, junto com as agent skills de Bird:
Exemplo de código
opencode plugin github:messagebird/bird-ai --global
O OpenCode adiciona todas as ferramentas MCP ao contexto do modelo, então o plugin se conecta ao endpoint dinâmico. Com o modo experimental de código do OpenCode ativado (OPENCODE_EXPERIMENTAL_CODE_MODE=1 ou OPENCODE_EXPERIMENTAL=1), o OpenCode mantém as ferramentas MCP por trás da própria busca, e o plugin se conecta ao catálogo completo em https://mcp.bird.com.
Para adicionar o servidor sem o plugin, coloque isto em opencode.json, no seu projeto ou em ~/.config/opencode/opencode.json:
Exemplo de código
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "bird": {
      "type": "remote",
      "url": "https://mcp.bird.com/dynamic"
    }
  },
  "permission": {
    "bird_execute": "ask"
  }
}
Depois faça login, o que abre o navegador na tela de consentimento de Bird:
Exemplo de código
opencode mcp auth bird
Reinicie o OpenCode para carregar o plugin. opencode mcp list reporta bird como conectado assim que você aprovar. O plugin, assim como a entrada permission acima, faz o OpenCode perguntar antes de cada chamada execute, porque a ferramenta executada pode alterar seu espaço de trabalho.

VS Code

Em .vscode/mcp.json no seu projeto:
Exemplo de código
{
  "servers": {
    "bird": {
      "type": "http",
      "url": "https://mcp.bird.com"
    }
  }
}
O VS Code pede que você confie no servidor na primeira vez que ele inicia, e então executa o fluxo OAuth por conta própria: aprove a tela de consentimento de Bird na janela do navegador que ele abrir. Se nenhuma janela aparecer, inicie ou reinicie bird pelo comando MCP: List Servers e aprove nesse momento. A concessão resultante aparece em Accounts > Manage Trusted MCP Servers, que também é onde você revoga o acesso do VS Code.

Codex

Em ~/.codex/config.toml:
Exemplo de código
[mcp_servers.bird]
url = "https://mcp.bird.com"
Depois faça login pelo seu shell, o que abre o navegador:
Exemplo de código
codex mcp login bird

Claude Desktop

Abra Settings > Connectors, clique em Add custom connector, cole https://mcp.bird.com e clique em Add. Depois clique em Connect no conector Bird para executar o login e aprovar a tela de consentimento. Nos planos Team e Enterprise, um proprietário adiciona o conector uma vez para a organização e cada membro ainda precisa clicar em Connect para obter sua própria concessão. Ative o conector por conversa em + > Connectors.

ChatGPT

Conectores MCP personalizados precisam do modo desenvolvedor: Settings > Apps > Advanced settings > Developer mode. Depois vá em Settings > Connectors > Create, dê um nome e uma descrição ao conector, cole https://mcp.bird.com e escolha OAuth como autenticação. O ChatGPT executa o login por conta própria e abre a tela de consentimento de Bird em um popup na primeira vez que você usar o conector.

Muse

O Muse adiciona Bird como conector personalizado. Em um chat do Muse, peça para configurar um:
Exemplo de código
Set up a custom connector to the Bird MCP server at https://mcp.bird.com following https://bird.com/docs/ai/mcp-server.md so you can work with my Bird workspace.
O Muse responde com um link de conexão para esta sessão. Abra-o e aprove a tela de consentimento de Bird no navegador. O link funciona apenas para você e expira com a sessão. Se parar de funcionar, peça ao Muse um novo.

Factory Droid

Exemplo de código
droid mcp add bird https://mcp.bird.com --type http
Depois execute /mcp dentro do droid e complete o login pelo navegador no gerenciador de servidores.

Agent Plugins

O bird-ai plugin declara este servidor em um mcp.json que segue o Agent Plugins. Um host que implementa a especificação lê esse arquivo quando o plugin é instalado, então não há configuração de servidor para escrever: instale o plugin e faça login.

Qualquer outro host

Procure a configuração que adiciona um servidor MCP remote, HTTP ou custom, geralmente em um menu Connectors ou Integrations, e forneça a URL. A localização do campo varia; use a URL do endpoint hospedado que você escolheu. Depois encontre a opção de login desse cliente: um controle Connect, Authorize ou Needs login ao lado do servidor, um subcomando login, ou uma janela do navegador que o cliente abre sozinho. Um cliente que lista as ferramentas de Bird mas falha em toda chamada tem a URL, mas ainda precisa de uma concessão.

O que acontece quando você faz login

Seu navegador abre a tela de consentimento de Bird. Faça login, escolha se deseja conceder permissões do espaço de trabalho ou da organização, e selecione quais permissões delegar. Como os clientes MCP se registram sozinhos, o nome do cliente é autodeclarado, então a tela o marca como not verified by Bird. Confirme que é o cliente que você realmente iniciou antes de aprovar. Depois disso, as ferramentas aparecem na lista do agente e o token é renovado silenciosamente, então esta é uma etapa única por cliente.
A maneira mais rápida de provar que funcionou é pedir ao agente que chame whoami: ele retorna o usuário autenticado, então uma resposta real significa que a concessão está ativa. No endpoint dinâmico, chame-o por execute com tool: "whoami" e arguments vazio.
A concessão é limitada à interseção do que o cliente solicitou, do que você aprovou e do que você de fato possui; escopos org:owner e platform-admin nunca são delegáveis. Ela aparece na lista Connected apps do seu perfil, e revogá-la ali corta o acesso do cliente imediatamente.

Como o handshake funciona

Você não precisa disso para conectar um cliente. Isso importa se você está depurando um cliente que não consegue se autenticar, ou escrevendo um.
A camada hospedada fala Streamable HTTP e não armazena credenciais: não guarda segredos e não valida nada por conta própria. Cada solicitação carrega seu próprio bearer token OAuth, que o API de Bird valida a cada solicitação. O servidor é stateless e o tráfego regional é roteado automaticamente, então a mesma URL funciona de qualquer lugar.
O fluxo de login usa MCP padrão. Os clientes diferem apenas no que o aciona: a primeira chamada de ferramenta ou selecionar Authenticate. Após o fluxo iniciar, as etapas de autenticação não precisam de configuração extra:
  1. O cliente faz uma solicitação não autenticada e recebe 401 com um cabeçalho WWW-Authenticate apontando para os metadados de recurso protegido RFC 9728 de Bird (/.well-known/oauth-protected-resource).
  2. A partir daí, ele descobre o servidor de autorização e então se registra dinamicamente (RFC 7591). O registro dinâmico elimina a necessidade de um client ID pré-compartilhado ou configuração manual.
  3. Seu navegador abre a tela de consentimento de Bird.
  4. O cliente troca o resultado por um access token (PKCE; renovado automaticamente) e as ferramentas Bird aparecem.

Local: execute via stdio com o CLI

Execute o servidor MCP local dentro do bird CLI para agentes com acesso a shell ou acesso a arquivos na sua máquina. Instale o CLI, execute bird auth login uma vez e aponte seu cliente para o comando bird mcp.
Você não executa bird mcp diretamente: seu cliente o inicia e se comunica com ele via stdin/stdout. Todo cliente precisa dos mesmos dois dados: o comando (bird) e o argumento (mcp). Este caminho não precisa de login por cliente porque bird auth login já possui a concessão.

Cursor

Exemplo de código
{
  "mcpServers": {
    "bird": {
      "command": "bird",
      "args": ["mcp"]
    }
  }
}

VS Code

Exemplo de código
{
  "servers": {
    "bird": {
      "command": "bird",
      "args": ["mcp"]
    }
  }
}

Claude Code

Exemplo de código
claude mcp add bird -- bird mcp

Como o servidor local se autentica

O servidor local age como você e reutiliza o login armazenado do CLI. bird auth login abre um fluxo OAuth no navegador onde você concede um subconjunto das permissões do seu espaço de trabalho. O token emitido tem os mesmos limites de permissão da concessão hospedada. Escopos org:owner e platform-admin não estão disponíveis. bird mcp lê e renova o login armazenado do arquivo de credenciais CLI, cujo modo é 0600. Assim como na camada hospedada, a configuração do seu cliente não tem BIRD_API_KEY nem outro segredo. Se o login estiver ausente, bird mcp se recusa a iniciar e pede que você execute bird auth login.
Você não expõe um listener: o servidor roda na sua máquina, dentro do sandbox do cliente, pelo tempo exato que o cliente precisar. O host API segue a região do seu login automaticamente; --base-url (ou BIRD_API_URL) sobrescreve isso para testes em um ambiente que não é de produção.

O que as ferramentas cobrem

O conjunto de ferramentas abrange todos os canais que Bird opera, além das tarefas de conta e configuração ao redor deles. Ele é curado em vez de expor toda a superfície API: cada ferramenta é delimitada a uma tarefa que um agente realmente executa, e operações destrutivas são anotadas para que os hosts possam perguntar antes de executá-las.
Email tem mais ferramentas, porque tem mais superfície para configurar. Os outros canais seguem o mesmo formato de envio e leitura.

Mensagens

  • Enviar e inspecionar email: email_send, email_send_batch, email_list e email_get, que retorna a mensagem com seu status de entrega agregado. Status de entrega por destinatário e o log de eventos são chamadas de ferramenta separadas.
  • Enviar e inspecionar SMS: sms_send, sms_send_batch, sms_get, sms_list e sms_list_events, espelhando o formato de email. sms_templates_list e sms_templates_get leem o catálogo de templates.
  • Enviar e inspecionar WhatsApp: whatsapp_send, whatsapp_get, whatsapp_list, whatsapp_list_events e whatsapp_media. Templates são uma superfície completa de autoria sob whatsapp_templates_*, incluindo conteúdo por versão e por idioma.
  • Inspecionar segmentos de chamadas de voz: voice_legs_get e voice_legs_list consultam os segmentos das chamadas, com estatísticas por país e por código de resposta em voice_stats_*. voice_session_credentials_create cria a credencial do espaço de trabalho usada por um cliente SIP ou softphone para autenticação.
  • Verificar um destinatário: verify_verifications_create envia um código de verificação único, verify_verifications_check valida o que o destinatário submeteu, e verify_verifications_next_channel recorre a outro canal.
  • Criar uma chamada de voz (prévia): voice_calls_create prepara uma chamada de saída com a publicação ativa de uma sequência habilitada e não arquivada. Uma pessoa revisa e executa a solicitação no navegador; prepará-la não realiza a chamada. Consulte Criar uma chamada de voz para ver as permissões e as instruções de novas tentativas. O servidor local bird mcp exige uma versão da CLI que inclua esta ferramenta.

Preparando um canal para enviar

  • Configurar domínios de envio: email_domains_create adiciona um domínio de envio e retorna os registros DNS a publicar; email_domains_verify os reverifica; além de email_domains_list e email_domains_get.
  • Reivindicar e registrar remetentes SMS: sms_senders_create reivindica um remetente, sms_senders_requirements informa o que um país exige dele, e sms_senders_registrations_create o registra. Tráfego A2P nos EUA passa pelas ferramentas de marca, campanha e submissão sms_10dlc_*.
  • Provisionar números: numbers_available_list pesquisa, numbers_orders_create compra e numbers_release devolve. whatsapp_numbers_precheck informa se WhatsApp aceitará um número antes de você encomendá-lo.
  • Verificar se a conta pode enviar: as ferramentas trust_* informam os requisitos da organização que condicionam a compra de um número ou o registro de um remetente.

Entregabilidade de email

  • Criar templates de email: email_templates_create, email_templates_list, email_templates_get, email_templates_update, email_templates_duplicate e email_templates_preview (renderiza um rascunho com valores de exemplo sem enviar). Versões ficam sob email_templates_versions_*, onde email_templates_versions_submit congela um rascunho e o torna a versão que os envios servem, e email_templates_versions_languages_* edita o conteúdo por idioma de um rascunho. Nada que um agente escreve chega a um destinatário até ser submetido.
  • Gerenciar supressões: email_suppressions_list, email_suppressions_check (é seguro enviar para este endereço?), email_suppressions_add e email_suppressions_remove (anotado como destrutivo, porque remover uma supressão sem motivo prejudica a reputação do remetente).
  • Gerenciar IPs dedicados e pools: email_dedicated_ips_create, email_dedicated_ips_list, email_dedicated_ips_get, email_dedicated_ips_assign (mover um para um pool) e email_dedicated_ips_delete; além de email_ip_pools_create, email_ip_pools_list, email_ip_pools_get, email_ip_pools_update e email_ip_pools_delete para os pools pelos quais você roteia envios.

Audiência e configuração

  • Gerenciar contatos e audiências: contacts_* e contact_properties_* para as pessoas para quem você envia, audiences_* para as listas para as quais você envia, e preferences_* para concessões de consentimento e opt-outs.
  • Provisionar Realtime: realtime_apps_* e realtime_apps_keys_* criam os apps e chaves com os quais os clientes Realtime se conectam.
  • Consultar alguém: lookup_phone_number e lookup_email informam o que Bird sabe sobre um endereço antes de você enviar para ele.
  • Inspecionar configuração: webhooks_list, workspace_get e whoami (o usuário autenticado: id, email, nome).
Seu cliente exibe a lista de ferramentas ativas com nomes, descrições e schemas de entrada. Trate essa listagem como o inventário oficial. Uma boa primeira tarefa para testar de ponta a ponta:
Call whoami to find my email, then send me a test email from onboarding@messagebird.dev and tell me when it's delivered.

MCP ou o CLI?

Mesma superfície, mesmo modelo de autenticação, chamadores diferentes. Para agentes com acesso a shell (Claude Code, terminal do Cursor, CI), o CLI é mais enxuto: saída JSON, exit codes semânticos e muito menos tokens por operação. MCP é para hosts que chamam ferramentas em vez de executar shells, e o endpoint hospedado alcança aqueles que não conseguem executar um binário de jeito nenhum (Claude Desktop, ChatGPT, mobile). Você não precisa decidir de antemão: a URL hospedada não precisa de instalação, e o bird mcp local já está lá assim que o CLI estiver.

Próximos passos

  • AI onboarding: a versão quickstart desta página, mais o corpus de documentação legível por máquina.
  • Agent skills: o plugin bird-ai do marketplace, skills mais este servidor MCP, instalados em uma etapa.
  • CLI for agents: controle Bird a partir de agentes com acesso a shell sem MCP: saída JSON, exit codes semânticos, login OAuth.
  • Authentication: chaves API, regiões e como as solicitações são autorizadas.