Sign inGet Started

MCP-Server

Der Bird-MCP-Server stellt die Bird-API als Model Context Protocol-Tools bereit. Unterstützte Clients sind unter anderem Claude Code, Cursor, VS Code, Codex, Claude Desktop und ChatGPT. Sie können über jeden Kanal senden, den Bird betreibt, diese Kanäle einrichten und Ihren Workspace inspizieren, ohne cURL-Befehle kopieren zu müssen. Es gibt zwei Betriebsarten, und die meisten wollen die erste:
  1. Gehostet (mcp.bird.com): eine URL und eine Browser-Anmeldung. Nichts zu installieren, kein CLI, kein API-Key. Das ist der empfohlene Weg.
  2. Lokal über stdio (bird mcp): Tools, die auf Ihrem Rechner innerhalb der bird CLI laufen – für Shell-Agents oder den Eigenbetrieb.
Der gehostete Server lässt diese stdio-exklusiven Tools weg:
  • auth_signup, auth_verify_email und auth_create_org: Diese Tools erstellen Ihre erste Zugangskennung, bevor Sie sich beim gehosteten Server authentifizieren können.
  • compliance_attachments_upload: Dieses Tool liest einen lokalen Dateipfad. Auf dem gehosteten Server würde dieser Pfad auf das Dateisystem des Servers verweisen und könnte die falsche Datei hochladen.

Gehostet: Verbindung zu mcp.bird.com

Endpoint wählen

Verwenden Sie https://mcp.bird.com für die meisten Verbindungen. Es ist der empfohlene Endpoint: Die meisten MCP-Clients suchen und wählen Tools intern bereits aus dem vollständigen Katalog. Manche Clients suchen Tools nicht intern oder erzwingen ein festes Limit für die Anzahl der Tools, die ein Server bereitstellen darf. /dynamic ist für diese Clients gedacht.
Beide gehosteten Endpoints verwenden Streamable HTTP und dieselbe Bird-OAuth-Anmeldung:
EndpointTools, die Ihr Client siehtWann verwenden
https://mcp.bird.comDer vollständige gehostete Tool-KatalogEmpfohlen für die meisten Clients, die Tools intern suchen und auswählen. Unterstützt auch MCP-Apps-Widgets.
https://mcp.bird.com/dynamicNur search und executeNur für Clients ohne interne Tool-Suche oder mit einem festen Limit für die Anzahl der Tools, die ein Server bereitstellen darf.
Der dynamische Endpoint gibt Ihnen Zugriff auf dieselben gehosteten Operationen über execute. Der Standard-Endpoint und der lokale stdio-Server behalten ihre einzelnen Tools; sie listen search oder execute nicht auf.
Sie müssen kein Binary installieren und kein Token erstellen. Die Verbindung erfordert zwei Schritte, und beide sind notwendig:
  1. Server hinzufügen: Geben Sie dem Client Ihre gewählte Endpoint-URL.
  2. Authentifizieren: Melden Sie sich über Ihren Browser an, damit der Client ein Token hält, das in Ihrem Namen agiert.
Beide Endpoints erfordern Authentifizierung. Ein Client, der nur die URL hat, erhält einen 401, bis Sie sich anmelden. Manche Clients starten die Anmeldung selbst beim ersten Kontakt mit dem Server; andere parken den Server als "needs login" und warten, bis Sie darauf klicken. Die Anleitung Ihres Clients beschreibt das jeweilige Verhalten.

Dynamische Tool-Erkennung verwenden

Wenn Ihr Client den Server ablehnt, weil er zu viele Tools anbietet, verbinden Sie sich mit https://mcp.bird.com/dynamic und schließen Sie die OAuth-Anmeldung ab. Ihr Client zeigt zwei Tools:
  • search findet Tools anhand von Name oder Beschreibungs-Stichwörtern. Jeder Treffer enthält Name, Beschreibung, Input-Schema und Annotationen, die angeben, ob das Tool Daten liest oder ändert.
  • execute ruft ein ausgewähltes Tool mit seinen Argumenten auf. Es kann Daten lesen, Nachrichten senden, Datensätze ändern oder löschen – je nach gewähltem Tool.
Ihr Agent kann zum Beispiel das Workspace-Tool mit folgendem Tool-Call finden:
Codebeispiel
{
  "name": "search",
  "arguments": { "query": "workspace_get", "limit": 3 }
}
Nachdem er das zurückgegebene Input-Schema gelesen hat, ruft er dieses Tool über execute auf:
Codebeispiel
{
  "name": "execute",
  "arguments": { "tool": "workspace_get", "arguments": {} }
}
Das Ergebnis enthält Ihren aktuellen Workspace. Sie können auch mit aufgabenbezogenen Stichwörtern suchen, etwa send email. Die Suche liefert standardmäßig fünf Treffer, akzeptiert einen limit von 1 bis 10 und Abfragen bis 500 Zeichen. Wenn das Ergebnis has_more: true enthält, grenzen Sie Ihre Abfrage ein, um relevantere Treffer zu erhalten.
Suchergebnisse fügen Ihrem Client-Katalog keine Tools hinzu. Namen, die in Ergebnissen oder Fehlerbehebungshinweisen vorkommen, werden ebenfalls über execute aufgerufen. Die Ausführung nutzt Ihre bestehenden Berechtigungen; benötigt eine Operation mehr Berechtigungen, fordert Ihr Client Sie möglicherweise auf, diese zu autorisieren. Ein Tool zu finden gewährt keinen Zugriff darauf.
Die dynamische Ausführung gibt Daten für Tools zurück, die sonst Widgets anzeigen. Verwenden Sie den Standard-Endpoint für interaktive MCP-Apps-Widgets. Clients sehen ein einziges Ausführungs-Tool, sodass Genehmigungseinstellungen pro Tool auf execute als Ganzes wirken; prüfen Sie die gewählte Operation, bevor Sie einen Aufruf genehmigen. Dieser Endpoint führt Tool-Calls aus und führt kein JavaScript oder sonstigen übergebenen Code aus.

Einen Client verbinden

Die folgenden Beispiele verwenden den Standard-Endpoint. Für die dynamische Erkennung ersetzen Sie https://mcp.bird.com/dynamic als Server-URL und folgen denselben Anmeldeschritten.

Claude Code

Server hinzufügen:
Codebeispiel
claude mcp add --transport http bird https://mcp.bird.com
claude mcp list meldet bird jetzt als ! Needs authentication. Claude Code öffnet den Browser nicht von sich aus, melden Sie sich daher innerhalb einer Session an:
  1. Führen Sie /mcp aus.
  2. Wählen Sie bird und drücken Sie Enter.
  3. Wählen Sie Authenticate. Ihr Browser öffnet den Consent-Screen von Bird; bestätigen Sie dort.
Der Server wird dann als verbunden angezeigt und die Tools funktionieren. Ein Headless-Run (claude -p) hat kein /mcp-Panel, authentifizieren Sie sich daher zuerst über Ihre Shell mit claude mcp login bird. Um sich später erneut anzumelden, bietet /mcp Re-authenticate an; Clear authentication verwirft das gespeicherte Token.
Durch Installation des bird-ai-Plugins wird dieser Server für Sie deklariert, was den claude mcp add-Befehl ersetzt. Die Authentifizierung bleibt erforderlich, weil ein Plugin zwar einen Server ausliefern, aber kein Grant ausstellen kann. Wählen Sie nach der Installation /mcp > bird > Authenticate.

Cursor

In ~/.cursor/mcp.json:
Codebeispiel
{
  "mcpServers": {
    "bird": {
      "url": "https://mcp.bird.com"
    }
  }
}
Öffnen Sie dann Cursor Settings > Tools & Integrations. Unter MCP Tools zeigt bird Needs login an: Klicken Sie darauf, bestätigen Sie den Consent-Screen von Bird im Browser und kehren Sie zu Cursor zurück.

VS Code

In .vscode/mcp.json in Ihrem Projekt:
Codebeispiel
{
  "servers": {
    "bird": {
      "type": "http",
      "url": "https://mcp.bird.com"
    }
  }
}
VS Code fragt beim ersten Start, ob Sie dem Server vertrauen, und führt dann den OAuth-Flow selbst aus: Bestätigen Sie den Consent-Screen von Bird in dem Browserfenster, das sich öffnet. Wenn kein Fenster erscheint, starten oder restarten Sie bird über den Befehl MCP: List Servers und bestätigen Sie dort. Das resultierende Grant wird unter Accounts > Manage Trusted MCP Servers aufgeführt – dort widerrufen Sie auch den Zugriff von VS Code.

Codex

In ~/.codex/config.toml:
Codebeispiel
[mcp_servers.bird]
url = "https://mcp.bird.com"
Melden Sie sich dann über Ihre Shell an, was den Browser öffnet:
Codebeispiel
codex mcp login bird

Claude Desktop

Öffnen Sie Settings > Connectors, klicken Sie auf Add custom connector, fügen Sie https://mcp.bird.com ein und klicken Sie auf Add. Klicken Sie dann beim Bird-Connector auf Connect, um die Anmeldung auszuführen und den Consent-Screen zu bestätigen. Bei Team- und Enterprise-Plänen fügt ein Owner den Connector einmalig für die Organisation hinzu, und jedes Mitglied klickt trotzdem auf Connect für sein eigenes Grant. Aktivieren Sie den Connector pro Konversation über + > Connectors.

ChatGPT

Benutzerdefinierte MCP-Connectors erfordern den Entwicklermodus: Settings > Apps > Advanced settings > Developer mode. Gehen Sie dann zu Settings > Connectors > Create, vergeben Sie einen Namen und eine Beschreibung für den Connector, fügen Sie https://mcp.bird.com ein und wählen Sie OAuth als Authentifizierung. ChatGPT führt die Anmeldung selbst aus und öffnet den Consent-Screen von Bird beim ersten Verwenden des Connectors in einem Popup.

Factory Droid

Codebeispiel
droid mcp add bird https://mcp.bird.com --type http
Führen Sie dann /mcp innerhalb von Droid aus und schließen Sie die Browser-Anmeldung über den Server-Manager ab.

Agent Plugins

Das bird-ai-Plugin deklariert diesen Server in einer mcp.json, die Agent Plugins folgt. Ein Host, der die Spezifikation implementiert, liest diese Datei bei der Plugin-Installation – es gibt also keine Server-Konfiguration zu schreiben: Installieren Sie das Plugin und melden Sie sich an.

Jeder andere Host

Suchen Sie die Einstellung, die einen remote-, HTTP- oder custom-MCP-Server hinzufügt, häufig unter einem Menü für Connectors oder Integrations, und geben Sie die URL ein. Die Position des Feldes variiert; verwenden Sie Ihre gewählte gehostete Endpoint-URL. Suchen Sie dann die Anmelde-Funktion Ihres Clients: ein Connect-, Authorize- oder Needs login-Steuerelement neben dem Server, ein login-Unterbefehl oder ein Browserfenster, das der Client von selbst öffnet. Ein Client, der die Tools von Bird auflistet, aber jeden Aufruf scheitern lässt, hat die URL, braucht aber noch ein Grant.

Was bei der Anmeldung passiert

Ihr Browser öffnet einen Bird-Consent-Screen. Melden Sie sich an, wählen Sie, ob Sie Workspace- oder Organisations-Berechtigungen gewähren, und bestimmen Sie, welche Berechtigungen Sie delegieren. Da sich MCP-Clients selbst registrieren, ist der Name des Clients selbst angegeben, und der Screen kennzeichnet ihn als not verified by Bird. Vergewissern Sie sich, dass es der Client ist, den Sie tatsächlich gestartet haben, bevor Sie bestätigen. Danach erscheinen die Tools in der Liste des Agents und das Token wird automatisch erneuert – das ist ein einmaliger Schritt pro Client.
Der schnellste Weg zu prüfen, ob es funktioniert hat, ist den Agent whoami aufrufen zu lassen: Es gibt den angemeldeten Benutzer zurück, eine echte Antwort bedeutet also, dass das Grant aktiv ist. Auf dem dynamischen Endpoint rufen Sie es über execute mit tool: "whoami" und leerem arguments auf.
Das Grant ist auf die Schnittmenge dessen begrenzt, was der Client angefordert hat, was Sie genehmigt haben und was Sie tatsächlich besitzen; org:owner- und Platform-Admin-Scopes sind niemals delegierbar. Es erscheint in der Liste Connected apps Ihres Profils, und ein Widerruf dort trennt den Client sofort.

Wie der Handshake funktioniert

Sie brauchen das nicht, um einen Client zu verbinden. Es ist relevant, wenn Sie einen Client debuggen, der sich nicht authentifiziert, oder selbst einen schreiben.
Die gehostete Ebene spricht Streamable HTTP und ist credential-frei: Sie speichert keine Secrets und validiert selbst nichts. Jede Anfrage enthält Ihr eigenes OAuth-Bearer-Token, das Birds API pro Anfrage validiert. Der Server ist zustandslos und regionaler Traffic wird automatisch geroutet, sodass die eine URL von überall funktioniert.
Der Anmeldeflow verwendet Standard-MCP. Clients unterscheiden sich nur darin, was ihn auslöst: der erste Tool-Call oder die Auswahl von Authenticate. Sobald der Flow startet, erfordern die Authentifizierungsschritte keine weitere Konfiguration:
  1. Der Client stellt eine unauthentifizierte Anfrage und erhält 401 mit einem WWW-Authenticate-Header zurück, der auf die RFC 9728-Protected-Resource-Metadaten von Bird verweist (/.well-known/oauth-protected-resource).
  2. Von dort entdeckt er den Authorization-Server und registriert sich dynamisch (RFC 7591). Die dynamische Registrierung macht eine vorab geteilte Client-ID oder manuelle Konfiguration überflüssig.
  3. Ihr Browser öffnet den Consent-Screen von Bird.
  4. Der Client tauscht das Ergebnis gegen ein Access-Token (PKCE; wird automatisch erneuert) und die Bird-Tools erscheinen.

Lokal: über stdio mit der CLI ausführen

Führen Sie den lokalen MCP-Server innerhalb der bird CLI aus – für shell-fähige Agents oder den Zugriff auf Dateien auf Ihrem Rechner. Installieren Sie die CLI, führen Sie einmalig bird auth login aus und richten Sie Ihren Client auf den Befehl bird mcp.
Sie führen bird mcp nicht selbst aus: Ihr Client startet es und kommuniziert über stdin/stdout damit. Jeder Client braucht dieselben zwei Angaben: den Befehl (bird) und das Argument (mcp). Dieser Weg erfordert keine client-spezifische Anmeldung, weil bird auth login das Grant bereits hält.

Cursor

Codebeispiel
{
  "mcpServers": {
    "bird": {
      "command": "bird",
      "args": ["mcp"]
    }
  }
}

VS Code

Codebeispiel
{
  "servers": {
    "bird": {
      "command": "bird",
      "args": ["mcp"]
    }
  }
}

Claude Code

Codebeispiel
claude mcp add bird -- bird mcp

Wie sich der lokale Server authentifiziert

Der lokale Server agiert als Sie und verwendet den gespeicherten Login der CLI. bird auth login öffnet einen Browser-OAuth-Flow, in dem Sie eine Teilmenge Ihrer Workspace-Berechtigungen gewähren. Das ausgestellte Token hat die Berechtigungsgrenzen des gehosteten Grants. Weder org:owner- noch Platform-Admin-Scopes sind verfügbar. bird mcp liest und erneuert den gespeicherten Login aus der CLI-Credentials-Datei, deren Modus 0600 ist. Wie bei der gehosteten Ebene enthält Ihre Client-Konfiguration kein BIRD_API_KEY oder anderes Secret. Wenn der Login fehlt, verweigert bird mcp den Start und fordert Sie auf, bird auth login auszuführen.
Sie legen keinen Listener offen: Der Server läuft auf Ihrem Rechner, innerhalb der Sandbox des Clients, genau so lange, wie der Client ihn braucht. Der API-Host folgt automatisch der Region Ihres Logins; --base-url (oder BIRD_API_URL) überschreibt sie zum Testen gegen eine Nicht-Produktionsumgebung.

Was die Tools abdecken

Das Toolset umfasst jeden Kanal, den Bird betreibt, plus die Account- und Konfigurationsaufgaben drumherum. Es ist kuratiert und nicht die vollständige API-Oberfläche: Jedes Tool ist auf eine Aufgabe zugeschnitten, die ein Agent tatsächlich ausführt, und destruktive Operationen sind annotiert, damit Hosts vor der Ausführung nachfragen können.
E-Mail hat die meisten Tools, weil es die größte konfigurierbare Oberfläche hat. Die anderen Kanäle folgen demselben Senden-und-Lesen-Muster.

Messaging

  • E-Mail senden und inspizieren: email_send, email_send_batch, email_list und email_get, das die Nachricht mit ihrem aggregierten Zustellstatus zurückgibt. Zustellstatus pro Empfänger und das Event-Log sind separate Tool-Calls.
  • SMS senden und inspizieren: sms_send, sms_send_batch, sms_get, sms_list und sms_list_events, analog zum E-Mail-Muster. sms_templates_list und sms_templates_get lesen den Template-Katalog.
  • WhatsApp senden und inspizieren: whatsapp_send, whatsapp_get, whatsapp_list, whatsapp_list_events und whatsapp_media. Templates bieten eine vollständige Authoring-Oberfläche unter whatsapp_templates_*, einschließlich Inhalten pro Version und pro Sprache.
  • Sprachanrufe inspizieren: voice_get und voice_list lesen Anrufe zurück, mit Statistiken pro Land und pro Antwortcode unter voice_stats_*. voice_session_credentials_create erstellt die Workspace-Zugangskennung, mit der sich ein SIP oder Softphone-Client authentifiziert. Kein MCP-Tool tätigt einen Anruf: Das geschieht über bird voice tools test-call auf der CLI.
  • Empfänger verifizieren: verify_verifications_create sendet einen Einmal-Bestätigungscode, verify_verifications_check prüft, was der Empfänger eingegeben hat, und verify_verifications_next_channel weicht auf einen anderen Kanal aus.

Einen Kanal zum Senden vorbereiten

  • Versanddomains einrichten: email_domains_create fügt eine Versanddomain hinzu und gibt die zu veröffentlichenden DNS-Einträge zurück; email_domains_verify prüft sie erneut; plus email_domains_list und email_domains_get.
  • SMS-Absender beanspruchen und registrieren: sms_senders_create beansprucht einen Absender, sms_senders_requirements zeigt, was ein Land von ihm verlangt, und sms_senders_registrations_create registriert ihn. US-A2P-Traffic läuft über die sms_10dlc_*-Brand-, Campaign- und Submission-Tools.
  • Nummern bereitstellen: numbers_available_list sucht, numbers_orders_create kauft und numbers_release gibt zurück. whatsapp_numbers_precheck prüft, ob WhatsApp eine Nummer akzeptiert, bevor Sie sie bestellen.
  • Prüfen, ob das Konto überhaupt senden kann: Die trust_*-Tools melden die Organisationsanforderungen, die den Kauf einer Nummer oder die Registrierung eines Absenders voraussetzen.

E-Mail-Zustellbarkeit

  • E-Mail-Templates erstellen: email_templates_create, email_templates_list, email_templates_get, email_templates_update, email_templates_duplicate und email_templates_preview (einen Entwurf mit Beispielwerten rendern, ohne zu senden). Versionen leben unter email_templates_versions_*, wo email_templates_versions_submit einen Entwurf einfriert und ihn zur Version macht, die beim Versand ausgeliefert wird, und email_templates_versions_languages_* den sprachspezifischen Inhalt eines Entwurfs bearbeitet. Nichts, was ein Agent schreibt, erreicht einen Empfänger, bevor er es absendet.
  • Suppressions verwalten: email_suppressions_list, email_suppressions_check (kann an diese Adresse sicher gesendet werden?), email_suppressions_add und email_suppressions_remove (als destruktiv annotiert, weil das Entfernen einer Suppression ohne Grund die Absender-Reputation schädigt).
  • Dedizierte IPs und Pools verwalten: email_dedicated_ips_create, email_dedicated_ips_list, email_dedicated_ips_get, email_dedicated_ips_assign (eine IP in einen Pool verschieben) und email_dedicated_ips_delete; plus email_ip_pools_create, email_ip_pools_list, email_ip_pools_get, email_ip_pools_update und email_ip_pools_delete für die Pools, über die Sie Ihren Versand routen.

Zielgruppe und Konfiguration

  • Kontakte und Zielgruppen verwalten: contacts_* und contact_properties_* für die Personen, an die Sie senden, audiences_* für die Listen, an die Sie senden, und preferences_* für Einwilligungen und Opt-outs.
  • Realtime bereitstellen: realtime_apps_* und realtime_apps_keys_* erstellen die Apps und Keys, mit denen sich Realtime-Clients verbinden.
  • Jemanden nachschlagen: lookup_phone_number und lookup_email melden, was Bird über eine Adresse weiß, bevor Sie an sie senden.
  • Konfiguration inspizieren: webhooks_list, workspace_get und whoami (der angemeldete Benutzer: ID, E-Mail, Name).
Ihr Client zeigt die aktuelle Tool-Liste mit Namen, Beschreibungen und Input-Schemas an. Betrachten Sie diese Liste als das maßgebliche Inventar. Eine gute erste Aufgabe zum Durchprobieren:
Call whoami to find my email, then send me a test email from onboarding@messagebird.dev and tell me when it's delivered.

MCP oder die CLI?

Gleiche Oberfläche, gleiches Auth-Modell, andere Aufrufer. Für shell-fähige Agents (Claude Code, Cursors Terminal, CI) ist die CLI schlanker: JSON-Output, semantische Exit-Codes und deutlich weniger Tokens pro Operation. MCP ist für Hosts, die Tools aufrufen statt Shells auszuführen, und der gehostete Endpoint erreicht diejenigen, die gar kein Binary ausführen können (Claude Desktop, ChatGPT, Mobile). Sie müssen sich nicht im Voraus entscheiden: Die gehostete URL erfordert keine Installation, und die lokale bird mcp ist bereits vorhanden, sobald die CLI installiert ist.

Nächste Schritte

  • AI-Onboarding: die Schnellstart-Version dieser Seite plus das maschinenlesbare Docs-Corpus.
  • Agent Skills: das bird-ai-Marketplace-Plugin, Skills plus dieser MCP-Server, in einem Schritt installiert.
  • CLI für Agents: Bird aus shell-fähigen Agents steuern, ohne MCP: JSON-Output, semantische Exit-Codes, OAuth-Login.
  • Authentifizierung: API-Keys, Regionen und wie Anfragen autorisiert werden.