MCP server
Der Bird MCP server stellt die Bird API als Model Context Protocol-Tools bereit. Unterstützte Clients sind 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. Sie können ihn auf zwei Arten ausführen, und die meisten bevorzugen die erste:
- Gehostet (mcp.bird.com): eine URL und eine Browser-Anmeldung. Keine Installation, keine CLI, kein API-Schlüssel. Dies ist der empfohlene Weg.
- Lokal über stdio (bird mcp): Tools laufen auf Ihrem Rechner innerhalb der bird CLI, für Shell-Agenten oder eigenständigen Betrieb.
Der gehostete Server lässt diese nur über stdio verfügbaren Tools aus:
- auth_signup, auth_verify_email und auth_create_org: Diese Tools erstellen Ihre ersten Zugangsdaten, 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
Endpunkt auswählen
Verwenden Sie https://mcp.bird.com für die meisten Verbindungen. Dies ist der empfohlene Endpunkt: Die meisten MCP-Clients suchen und wählen Tools bereits intern aus dem vollständigen Katalog aus. Einige Clients suchen Tools nicht intern oder begrenzen die Anzahl der Tools, die ein Server bereitstellen darf, strikt. Für diese Clients ist /dynamic vorgesehen.
Beide gehosteten Endpunkte verwenden Streamable HTTP und dieselbe Bird-OAuth-Anmeldung:
| Endpunkt | Für Ihren Client sichtbare Tools | Verwendung |
|---|---|---|
| https://mcp.bird.com | Der vollständige gehostete Tool-Katalog | Empfohlen für die meisten Clients, die Tools intern suchen und auswählen. Unterstützt auch MCP Apps-Widgets. |
| https://mcp.bird.com/dynamic | Nur search und execute | Nur für Clients ohne interne Tool-Suche oder mit einer festen Obergrenze für die Anzahl der Tools, die ein Server bereitstellen darf. |
Der dynamische Endpunkt bietet über execute Zugriff auf dieselben gehosteten Operationen. Der Standardendpunkt und der lokale stdio-Server behalten ihre einzelnen Tools; sie listen weder search noch execute auf.
Sie müssen kein Binary installieren oder ein Token erstellen. Die Verbindung erfolgt in zwei Schritten, und beide sind erforderlich:
- Server hinzufügen: Geben Sie dem Client die URL Ihres gewählten Endpunkts.
- Authentifizieren: Melden Sie sich über Ihren Browser an, damit der Client ein Token hält, das in Ihrem Namen agiert.
Beide Endpunkte erfordern eine Authentifizierung. Ein Client, der nur die URL hat, erhält einen 401, bis Sie sich anmelden. Einige Clients starten die Anmeldung selbst beim ersten Kontakt mit dem Server; andere parken den Server als „Anmeldung erforderlich“ und warten, bis Sie darauf klicken. Die Schritte Ihres Clients zeigen sein Verhalten.
Dynamische Tool-Suche 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 listet zwei Tools auf:
- search findet Tools anhand von Namen oder Schlüsselwörtern in der Beschreibung. Jeder Treffer enthält den Namen, die Beschreibung, das Eingabeschema und Anmerkungen dazu, ob das Tool Daten liest oder ändert.
- execute ruft ein ausgewähltes Tool mit seinen Argumenten auf. Je nach gewähltem Tool kann es Daten lesen, Nachrichten senden, Datensätze ändern oder löschen.
Ihr Agent kann das Workspace-Tool beispielsweise mit diesem Tool-Aufruf finden:
Codebeispiel
{
"name": "search",
"arguments": { "query": "workspace_get", "limit": 3 }
}Nachdem er das zurückgegebene Eingabeschema 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 Schlüsselwörtern wie send email suchen. Die Suche liefert standardmäßig fünf Treffer, akzeptiert einen limit-Wert von eins bis 10 und Suchanfragen mit bis zu 500 Zeichen. Wenn das Ergebnis has_more: true enthält, grenzen Sie Ihre Suchanfrage ein, um relevantere Treffer zu finden.
Suchergebnisse fügen dem Katalog Ihres Clients keine Tools hinzu. Auch Namen, die in Ergebnissen oder Anweisungen zur Fehlerbehebung erwähnt werden, werden über execute aufgerufen. Die Ausführung verwendet Ihre bestehenden Berechtigungen; wenn eine Operation weitere Berechtigungen benötigt, kann Ihr Client Sie um deren Freigabe bitten. 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 Standardendpunkt für interaktive MCP Apps-Widgets. Clients sehen ein einziges Ausführungstool, daher gelten Genehmigungseinstellungen pro Tool für execute insgesamt; prüfen Sie die gewählte Operation, bevor Sie einen Aufruf genehmigen. Dieser Endpunkt führt Tool-Aufrufe aus und führt weder JavaScript noch anderen übergebenen Code aus.
Client verbinden
Die folgenden Beispiele verwenden den Standardendpunkt. Für die dynamische Suche ersetzen Sie die Server-URL durch https://mcp.bird.com/dynamic und folgen denselben Anmeldeschritten.
Claude Code
Server hinzufügen:
Codebeispiel
claude mcp add --transport http bird https://mcp.bird.comclaude mcp list zeigt bird nun als ! Needs authentication an. Claude Code öffnet den Browser nicht automatisch, melden Sie sich daher innerhalb einer Sitzung an:
- Führen Sie /mcp aus.
- Wählen Sie bird und drücken Sie Enter.
- Wählen Sie Authenticate. Ihr Browser öffnet Birds Einwilligungsbildschirm; bestätigen Sie dort.
Der Server wird dann als verbunden angezeigt und die Tools funktionieren. Ein Headless-Lauf (claude -p) hat kein /mcp-Panel, authentifizieren Sie sich daher zuerst aus Ihrer Shell mit claude mcp login bird. Um sich später erneut anzumelden, bietet /mcp Re-authenticate an; Clear authentication löscht das gespeicherte Token.
Die Installation des bird-ai Plugins deklariert diesen Server für Sie, was den Befehl claude mcp add ersetzt. Die Authentifizierung ist weiterhin erforderlich, da ein Plugin einen Server bereitstellen, aber keine Berechtigung erteilen kann. Wählen Sie /mcp > bird > Authenticate nach der Installation.
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 Birds Einwilligungsbildschirm 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 fordert Sie beim ersten Start auf, dem Server zu vertrauen, und führt dann den OAuth-Flow selbst durch: Bestätigen Sie Birds Einwilligungsbildschirm im Browserfenster, das es öffnet. Falls kein Fenster erscheint, starten oder restarten Sie bird über den Befehl MCP: List Servers und bestätigen Sie dort. Die resultierende Berechtigung wird unter Accounts > Manage Trusted MCP Servers aufgeführt, wo Sie auch den Zugriff von VS Code widerrufen können.
Codex
In ~/.codex/config.toml:
Codebeispiel
[mcp_servers.bird]
url = "https://mcp.bird.com"Melden Sie sich dann aus Ihrer Shell an, was den Browser öffnet:
Codebeispiel
codex mcp login birdClaude 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 auf Connect beim Bird-Connector, um die Anmeldung durchzuführen und den Einwilligungsbildschirm zu bestätigen. Bei Team- und Enterprise-Plänen fügt ein Eigentümer den Connector einmalig für die Organisation hinzu, und jedes Mitglied klickt weiterhin auf Connect für seine eigene Berechtigung. 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, geben Sie dem Connector einen Namen und eine Beschreibung, fügen Sie https://mcp.bird.com ein und wählen Sie OAuth als Authentifizierung. ChatGPT führt die Anmeldung selbst durch und öffnet Birds Einwilligungsbildschirm in einem Popup bei der ersten Nutzung des Connectors.
Factory Droid
Codebeispiel
droid mcp add bird https://mcp.bird.com --type httpFü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 der Agent Plugins-Spezifikation folgt. Ein Host, der die Spezifikation implementiert, liest diese Datei bei der Plugin-Installation, sodass keine Server-Konfiguration geschrieben werden muss: Installieren Sie das Plugin und melden Sie sich an.
Jeder andere Host
Suchen Sie die Einstellung zum Hinzufügen eines Remote-, HTTP- oder benutzerdefinierten MCP-Servers, oft unter einem Connectors- oder Integrations-Menü, und geben Sie die URL ein. Die Position des Feldes variiert; verwenden Sie die URL Ihres gewählten gehosteten Endpunkts. Finden Sie dann die Anmeldefunktion Ihres Clients: ein Connect-, Authorize- oder Needs login-Steuerelement neben dem Server, ein login-Unterbefehl oder ein Browserfenster, das der Client selbst öffnet. Ein Client, der Birds Tools auflistet, aber jeden Aufruf ablehnt, hat die URL, benötigt aber noch eine Berechtigung.
Was bei der Anmeldung passiert
Ihr Browser öffnet einen Bird-Einwilligungsbildschirm. Melden Sie sich an, wählen Sie, ob Sie Workspace- oder Organisationsberechtigungen gewähren möchten, und wählen Sie, welche Berechtigungen Sie delegieren. Da sich MCP-Clients selbst registrieren, ist der Client-Name selbst angegeben, sodass der Bildschirm ihn als not verified by Bird kennzeichnet. Bestätigen Sie, dass es der Client ist, den Sie tatsächlich gestartet haben, bevor Sie zustimmen. Danach erscheinen die Tools in der Liste des Agenten und das Token wird automatisch erneuert, sodass dies ein einmaliger Schritt pro Client ist.
Der schnellste Weg, die Funktion zu überprüfen, ist den Agenten whoami aufrufen zu lassen: Er gibt den angemeldeten Benutzer zurück, sodass eine echte Antwort bedeutet, dass die Berechtigung vorhanden ist. Rufen Sie es am dynamischen Endpunkt über execute mit tool: "whoami" und leeren arguments auf.
Die Berechtigung ist auf die Schnittmenge dessen begrenzt, was der Client angefordert hat, was Sie genehmigt haben und was Sie tatsächlich besitzen; org:owner- und Plattform-Admin-Scopes sind nie delegierbar. Sie erscheint in der Liste der Connected apps Ihres Profils, und das Widerrufen dort trennt den Client sofort.
Wie der Handshake funktioniert
Sie benötigen dies nicht, um einen Client zu verbinden. Es ist relevant, wenn Sie einen Client debuggen, der sich nicht authentifiziert, oder einen eigenen schreiben.
Die gehostete Ebene spricht Streamable HTTP und ist anmeldedatenfrei: Sie speichert keine Geheimnisse und validiert selbst nichts. Jede Anfrage trägt 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-Aufruf oder die Auswahl von Authenticate. Nach dem Start des Flows benötigen die Authentifizierungsschritte keine zusätzliche Konfiguration:
- Der Client stellt eine nicht authentifizierte Anfrage und erhält 401 mit einem WWW-Authenticate-Header zurück, der auf Birds RFC 9728 Protected-Resource-Metadaten (/.well-known/oauth-protected-resource) verweist.
- Von dort entdeckt er den Autorisierungsserver und registriert sich dynamisch (RFC 7591). Die dynamische Registrierung macht eine vorab geteilte Client-ID oder manuelle Konfiguration überflüssig.
- Ihr Browser öffnet Birds Einwilligungsbildschirm.
- Der Client tauscht das Ergebnis gegen ein Access-Token (PKCE; automatisch erneuert) und die Bird-Tools erscheinen.
Lokal: Ausführung über stdio mit der CLI
Führen Sie den lokalen MCP-Server innerhalb der bird CLI für Shell-fähige Agenten oder für den Zugriff auf Dateien auf Ihrem Rechner aus. Installieren Sie die CLI, führen Sie einmalig bird auth login aus und richten Sie dann Ihren Client auf den Befehl bird mcp.
Sie führen bird mcp nicht selbst aus: Ihr Client startet es und kommuniziert über stdin/stdout. Jeder Client benötigt dieselben zwei Informationen: den Befehl (bird) und das Argument (mcp). Dieser Weg benötigt keine clientspezifische Anmeldung, da bird auth login die Berechtigung bereits gespeichert hat.
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 mcpWie 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, bei dem Sie eine Teilmenge Ihrer Workspace-Berechtigungen gewähren. Das ausgestellte Token hat die Berechtigungsbegrenzungen der gehosteten Berechtigung. Weder org:owner- noch Plattform-Admin-Scopes sind verfügbar. bird mcp liest und erneuert den gespeicherten Login aus der CLI-Anmeldedatendatei, deren Modus 0600 ist. Wie bei der gehosteten Ebene enthält Ihre Client-Konfiguration keinen BIRD_API_KEY oder andere Geheimnisse. Falls der Login fehlt, verweigert bird mcp den Start und fordert Sie auf, bird auth login auszuführen.
Sie exponieren keinen Listener: Der Server läuft auf Ihrem Rechner, innerhalb der Sandbox des Clients, genau so lange wie der Client ihn benötigt. Der API-Host folgt automatisch der Region Ihres Logins; --base-url (oder BIRD_API_URL) überschreibt dies für Tests gegen eine Nicht-Produktionsumgebung.
Was die Tools abdecken
Der Werkzeugsatz umfasst jeden Kanal, den Bird betreibt, plus die Konto- und Konfigurationsaufgaben drumherum. Er 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, da es die größte Konfigurationsoberfläche hat. Die anderen Kanäle folgen demselben Sende-und-Lese-Muster.
Messaging
- E-Mail senden und inspizieren: email_send, email_send_batch, email_list und email_get, das die Nachricht mit ihrem aggregierten Zustellungsstatus zurückgibt. Pro-Empfänger-Zustellungsstatus und das Ereignisprotokoll sind separate Tool-Aufrufe.
- 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 Vorlagenkatalog.
- WhatsApp senden und inspizieren: whatsapp_send, whatsapp_get, whatsapp_list, whatsapp_list_events und whatsapp_media. Vorlagen sind eine vollständige Autorenoberflä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-Anmeldedaten, mit denen sich ein SIP- oder Softphone-Client authentifiziert. Kein MCP-Tool tätigt einen Anruf: Das ist bird voice tools test-call in der CLI.
- Empfänger verifizieren: verify_verifications_create sendet einen Einmalcode, verify_verifications_check validiert, was der Empfänger eingegeben hat, und verify_verifications_next_channel fällt auf einen anderen Kanal zurück.
Einen Kanal versandbereit machen
- 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 meldet, was ein Land davon verlangt, und sms_senders_registrations_create registriert ihn. US-A2P-Traffic läuft über die sms_10dlc_*-Tools für Marke, Kampagne und Einreichung.
- Nummern bereitstellen: numbers_available_list sucht, numbers_orders_create kauft und numbers_release gibt zurück. whatsapp_numbers_precheck meldet, 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-Vorlagen 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 befinden sich unter email_templates_versions_*, wobei email_templates_versions_submit einen Entwurf einfriert und ihn zur Version macht, die beim Senden verwendet wird, und email_templates_versions_languages_* den sprachspezifischen Inhalt eines Entwurfs bearbeitet. Nichts, was ein Agent schreibt, erreicht einen Empfänger, bis es eingereicht wird.
- Unterdrückungen verwalten: email_suppressions_list, email_suppressions_check (ist diese Adresse sicher zum Senden?), email_suppressions_add und email_suppressions_remove (als destruktiv annotiert, da das Entfernen einer Unterdrückung ohne Grund die Absender-Reputation beschädigt).
- Dedizierte IPs und Pools verwalten: email_dedicated_ips_create, email_dedicated_ips_list, email_dedicated_ips_get, email_dedicated_ips_assign (eine 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 Sendungen 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 Schlüssel, mit denen sich Realtime-Clients verbinden.
- Jemanden nachschlagen: lookup_phone_number und lookup_email melden, was Bird über eine Adresse weiß, bevor Sie dorthin 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 Eingabeschemas an. Betrachten Sie diese Auflistung als das maßgebliche Inventar. Eine gute erste Aufgabe zum End-to-End-Testen:
Rufe whoami auf, um meine E-Mail zu finden, sende mir dann eine Test-E-Mail von onboarding@messagebird.dev und sag mir, wenn sie zugestellt ist.
MCP oder die CLI?
Gleiche Oberfläche, gleiches Auth-Modell, unterschiedliche Aufrufer. Für Shell-fähige Agenten (Claude Code, Cursors Terminal, CI) ist die CLI schlanker: JSON-Ausgabe, semantische Exit-Codes und deutlich weniger Token pro Operation. MCP ist für Hosts gedacht, die Tools aufrufen statt Shells auszuführen, und der gehostete Endpunkt erreicht die Hosts, die überhaupt 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 das lokale bird mcp ist bereits vorhanden, sobald die CLI installiert ist.
Nächste Schritte
- AI-Onboarding: die Schnellstartversion dieser Seite, plus das maschinenlesbare Dokumentationskorpus.
- Agent Skills: das bird-ai Marketplace-Plugin, Skills plus dieser MCP server, in einem Schritt installiert.
- CLI für Agenten: Bird über Shell-fähige Agenten ohne MCP steuern: JSON-Ausgabe, semantische Exit-Codes, OAuth-Login.
- Authentifizierung: API-Schlüssel, Regionen und wie Anfragen autorisiert werden.
Verwandte Ressourcen
Weiter mit der Dokumentation, Anleitungen und Beispielen zu diesem Thema. Die Ressourcen sind auf Englisch.
Anleitung ansehenSetting up your coding agentDas Konzept verstehenWhat is an MCP server, and how does an agent use one to send messages?Die Funktion erkundenCoding agentsDem Lernpfad folgenBuild with AI agents
Implementierungs-Briefing erhalten