Skip to content

Connectors · Email & messaging

Bird MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Bird and the rest of your systems. It gives your agent 471 Bird actions (282 reads, 132 writes and 57 that wait for a confirmation) and holds the Bird credential itself, so the agent never does. It paces Bird's limits and records every call.

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

claude mcp add --transport http actionlake https://connect.actionlake.com/mcp
the first call
do {  action: "bird.audiences.list",  intent: "check which Bird account is connected"}# List audiences · read · 1 upstream call
  • 471actionsin one signed file
  • 282readlook, never change
  • 132writecreate and update
  • 57wait for a yesdestructive, confirmed first

Set up

Connect Bird in three steps.

  1. 01

    Add actionlake to Claude.

    Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.

    https://connect.actionlake.com/mcp
  2. 02

    Connect Bird.

    Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.

    • api_keyBird API key: a workspace key (bk_[region]_…) or an organization master key (bm_[region]_…)
    • organization_idYour Bird organization id
    • regionYour Bird region
    • workspace_idYour Bird workspace id
    account { op: "connections.requirements", service: "bird" }
    # free: exactly what to paste, and what is found for you
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates the call and prices it, for free.

    do    { action: "bird.audiences.list" }# list audiences · read · 1 upstream callcheck { action: "bird.audiences.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

Bird at a glance

Sign-in
Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
You provide
api_key
Setup fields
organization_idregionworkspace_id
Limits we pace to
600 calls a minute, per connection
API covered
Bird API 1.0.0, at your region's bird.com address, set when you connect
Built from
Bird's documentation, read 23 October 2026bird.combird.com
Service file
Version 1.0.0, signed (Ed25519)
Cached reads
263 of 282 reads, for up to 5 minutes; a write clears what it affects
Shared entities
4, so ask can line Bird up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in Bird.

471 actions in 21 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

  • 282readlook, never change
  • 132writecreate and update
  • 57destructivewait for a confirmation
  1. Email

    140

    87 read · 36 write · 17 destructive

    List sending domains · List mailboxes · Create a sending domain · Create a mailbox

  2. Whatsapp

    73

    43 read · 19 write · 11 destructive

    List WhatsApp messages · Send a WhatsApp message · List WhatsApp suppressions · Create a WhatsApp suppression

  3. Amb

    53

    39 read · 11 write · 3 destructive

    List messages · Send a message · List Apple Messages for Business suppressions · Create an Apple Messages for Business suppression

  4. SMS

    41

    32 read · 7 write · 2 destructive

    Create an SMS message · List SMS messages · List SMS suppressions · Create an SMS suppression

  5. Esim

    38

    23 read · 10 write · 5 destructive

    Assign an eSIM to a person · Create a hosted install link · Order a data package · Create a recurring eSIM subscription

  6. Voice

    27

    12 read · 12 write · 3 destructive

    Create a call · Create an SIP session credential · Create an SIP trunk · Create a gateway on an SIP trunk

  7. Realtime

    16

    7 read · 6 write · 3 destructive

    Create a Realtime app · Create a Realtime app key · List members on a presence channel · List Realtime channels

  8. Audiences

    11

    5 read · 3 write · 3 destructive

    List audiences · Create an audience · Get an audience · Update an audience

13 more areas · 72 actions
  • Compliance 11
  • Numbers 10
  • Webhooks 9
  • Contacts 7
  • Contact properties 6
  • Asset folders 5
  • Assets 5
  • Lookup 5
  • Preferences 4
  • Organization 3
  • Verify 3
  • Docs 2
  • Workspace 2

Top actions

The Bird API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 78 of Bird's 81 action names are shared with at least one other connector, so an agent learns them once.

ActionWhat it doesEffectSame name in
bird.audiences.listList audiencesList audiences.readcomm.audience.list26 connectors
bird.email.list_domainsList sending domainsList sending domains.readcomm.sending_domain.list18 connectors
bird.email.list_mailboxesList mailboxesList mailboxes.readcomm.mailbox.list18 connectors
bird.contacts.listList contactsList contacts.readcrm.contact.list177 connectors
bird.audiences.createCreate an audienceCreate an audience.writecomm.audience.create24 connectors
bird.email.create_domainCreate a sending domainCreate a sending domain.writecomm.sending_domain.create15 connectors
bird.email.create_mailboxCreate a mailboxCreate a mailbox.writecomm.mailbox.create15 connectors
bird.contacts.createCreate a contactCreate a contact.writecrm.contact.create161 connectors
bird.audiences.deleteDelete an audienceDelete an audience.destructivecomm.audience.delete21 connectors
bird.whatsapp.list_messagesList WhatsApp messagesList WhatsApp messages.readcomm.message.list42 connectors
bird.email.list_broadcastsList broadcastsList broadcasts.readcomm.campaign.list41 connectors
bird.email.create_broadcastCreate a broadcastCreate a broadcast.writecomm.campaign.create38 connectors

Try it

Prompts to paste into Claude.

Each one names the Bird actions it will call, so you know what it reads and what it changes before you send it.

  1. Readread

    Find the Bird contacts with no email address, so we can clean them up.

    callsbird.contacts.list

  2. Writewrite

    Create an audience in Bird. Show me exactly what you will send before you save it.

    callsbird.audiences.create

  3. Across systemsread

    Which contacts are in both Bird and HaloPSA, and how many are in only one of them?

    callsbird.contacts.listhalopsa.users.list

Across your systems

Bird, joined to the rest of your business.

One ask fetches from Bird and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.

  • Which contacts are in both Bird and HaloPSA, and how many are in only one of them?

    bird.contacts.list + halopsa.users.list, on crm.contact · HaloPSA

  • Which contacts are in both Bird and NetSuite, and how many are in only one of them?

    bird.contacts.list + netsuite.views.contacts, on crm.contact · NetSuite

Also mapped by other connectorscrm.contact 192comm.audience 27comm.mailbox 14comm.sending_domain 12
ask
ask {  intent: "which contacts are in both Bird and HaloPSA, and how many are in only one of them",  steps: [    { action: "bird.contacts.list", as: "people", input: {}, limit: 100, max_pages: 5 },    { action: "halopsa.users.list", as: "people2", input: {}, limit: 100, max_pages: 5 },    { join: {        left: "people",        right: "people2",        on: "crm.contact",        group_by: "people.email",        select: ["people.email", "count(people2.id) as in_halopsa"]    } }  ]}
Example. Run it through check first: it validates the steps and prices them, and it is free.

Governance for Bird

Destructive actions wait for a yes.

57 Bird actions are destructive. The first 10:

  • Delete an audiencebird.audiences.delete
  • Delete a sending domainbird.email.delete_domain
  • Delete a mailboxbird.email.delete_mailbox
  • Delete a contactbird.contacts.delete
  • Delete an email templatebird.email.delete_template
  • Delete a broadcastbird.email.delete_broadcast
  • Delete an SMS suppressionbird.sms.delete_suppression
  • Delete an email suppressionbird.email.delete_suppression
  • End a WhatsApp suppressionbird.whatsapp.delete_suppression
  • Unassign a contact from an audiencebird.audiences.unassign_contact

A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

dobird.audiences.deleteconfirm_policy: human

Delete an audience?

intent: the user asked me to delete an audience

run suspended · waiting for a named person · key bird-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "bird-agent",  allowed_actions: ["bird.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "bird.audiences.delete", approver: "[email protected]" },    { match: "bird.email.delete_domain", approver: "[email protected]" },    { match: "bird.email.delete_mailbox", approver: "[email protected]" }  ]}
Illustrative. Scoped to Bird only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What Bird costs on actionlake.

Every Bird action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Bird refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

  • 1upstream call per actionall 471 Bird actions
  • 471actions pageeach page of a long list is one call
  • 263reads can be cacheda cache hit costs nothing
  • 100,000calls a month, freepaid plans from US$49 a month for 250,000

See pricing

Action index

Every Bird action.

471 actions by area: the id your agent calls, what it does, and its effect.

Email140
  • bird.email.cancel_broadcastCancel a broadcastdestructive
  • bird.email.cancel_mailbox_scheduled_messageCancel a scheduled mailbox senddestructive
  • bird.email.cancel_messageCancel a scheduled messagedestructive
  • bird.email.create_broadcastCreate a broadcastwrite
  • bird.email.create_competitive_watchlist_brandAdd a competitor brand to the watchlistwrite
  • bird.email.create_domainCreate a sending domainwrite
  • bird.email.create_inbound_addressCreate an inbound addresswrite
  • bird.email.create_inbound_routeCreate an inbound routewrite
  • bird.email.create_inbox_insights_seed_testRegister a seed test and get its addresseswrite
  • bird.email.create_mailboxCreate a mailboxwrite
  • bird.email.create_mailbox_messageCreate a message from a mailboxwrite
  • bird.email.create_mailbox_receive_ruleCreate a receive rulewrite
  • bird.email.create_messageCreate an email messagewrite
  • bird.email.create_message_batchCreate a batch of email messageswrite
  • bird.email.create_suppressionCreate an email suppressionwrite
  • bird.email.create_templateCreate an email templatewrite
  • bird.email.delete_broadcastDelete a broadcastdestructive
  • bird.email.delete_competitive_watchlist_brandRemove a competitor brand from the watchlistdestructive
  • bird.email.delete_domainDelete a sending domaindestructive
  • bird.email.delete_inbound_addressDelete an inbound addressdestructive
  • bird.email.delete_inbound_routeDelete an inbound routedestructive
  • bird.email.delete_mailboxDelete a mailboxdestructive
  • bird.email.delete_mailbox_receive_ruleDelete a receive ruledestructive
  • bird.email.delete_suppressionDelete an email suppressiondestructive
  • bird.email.delete_templateDelete an email templatedestructive
  • bird.email.delete_template_languageDelete one language from a draftdestructive
  • bird.email.delete_template_versionDelete an email template draftdestructive
  • bird.email.delete_threadDelete a threaddestructive
  • bird.email.delete_thread_messageDelete a message in a threaddestructive
  • bird.email.duplicate_templateDuplicate an email templatewrite
  • bird.email.get_broadcastGet a broadcastread
  • bird.email.get_broadcast_countsGet a broadcast's audience countsread
  • bird.email.get_broadcast_send_quotaGet the email send allowance for a broadcastread
  • bird.email.get_competitive_brandGet a watched brand's figuresread
  • bird.email.get_competitive_brand_campaignGet one campaign a watched brand sentread
  • bird.email.get_competitive_brand_campaignsGet the campaigns a watched brand sentread
  • bird.email.get_competitive_brand_send_timeGet when a watched brand sendsread
  • bird.email.get_competitive_notable_campaignsGet the notable campaigns across watched brandsread
  • bird.email.get_competitive_volume_seriesGet send volume over time for watched brandsread
  • bird.email.get_competitive_watchlistGet the competitor watchlist with its latest figuresread
  • bird.email.get_domainGet a sending domainread
  • bird.email.get_healthGet sending health and deliverability limitsread
  • bird.email.get_inbound_addressGet an inbound addressread
  • bird.email.get_inbound_messageGet a received emailread
  • bird.email.get_inbound_message_bodyGet a received email's bodyread
  • bird.email.get_inbound_routeGet an inbound routeread
  • bird.email.get_inbox_insights_authenticationGet email authentication standing for a sending domainread
  • bird.email.get_inbox_insights_blocklistsCheck whether a sending domain's infrastructure is blocklistedread
  • bird.email.get_inbox_insights_complaintsGet the Google-reported spam rate for a sending domainread
  • bird.email.get_inbox_insights_domainsList sending domains and their Inbox Insights statusread
  • bird.email.get_inbox_insights_industry_benchmarkGet the industry placement benchmark for a sending domainread
  • bird.email.get_inbox_insights_placementGet inbox placement for a sending domainread
  • bird.email.get_inbox_insights_seed_test_configurationGet the choices available for a new seed testread
  • bird.email.get_inbox_insights_seed_testsGet seed tests for a sending domainread
  • bird.email.get_inbox_insights_spam_trapsGet spam-trap hits for a sending domainread
  • bird.email.get_mailboxGet a mailboxread
  • bird.email.get_mailbox_scheduled_messageGet a scheduled mailbox sendread
  • bird.email.get_mailbox_statsGet mailbox email statisticsread
  • bird.email.get_messageGet a messageread
  • bird.email.get_message_contentGet stored message contentread
  • bird.email.get_smtp_configGet an SMTP configread
  • bird.email.get_stats_by_bounce_codeGet bounces by SMTP error coderead
  • bird.email.get_stats_by_broadcastGet statistics by broadcastread
  • bird.email.get_stats_by_categoryGet statistics by categoryread
  • bird.email.get_stats_by_clientGet engagement by email clientread
  • bird.email.get_stats_by_complaint_typeGet complaints by typeread
  • bird.email.get_stats_by_locationGet engagement by locationread
  • bird.email.get_stats_by_mailbox_providerGet statistics by mailbox providerread
  • bird.email.get_stats_by_mailbox_provider_regionGet statistics by mailbox provider regionread
  • bird.email.get_stats_by_recipient_domainGet statistics by recipient domainread
  • bird.email.get_stats_by_sending_domainGet statistics by sending domainread
  • bird.email.get_stats_by_sending_ipGet statistics by sending IPread
  • bird.email.get_stats_by_tagGet statistics by tagread
  • bird.email.get_stats_by_templateGet statistics by templateread
  • bird.email.get_stats_dailyGet daily sending statisticsread
  • bird.email.get_stats_hourlyGet hourly sending statisticsread
  • bird.email.get_stats_queryQuery email delivery and engagement metricsread
  • bird.email.get_stats_summaryGet aggregate email statisticsread
  • bird.email.get_suppressionGet an email suppressionread
  • bird.email.get_templateGet an email templateread
  • bird.email.get_template_languageGet one language of a versionread
  • bird.email.get_template_parametersGet published email template parametersread
  • bird.email.get_template_previewGet an email template previewread
  • bird.email.get_template_versionGet an email template versionread
  • bird.email.get_threadGet a threadread
  • bird.email.get_thread_messageGet a message in a threadread
  • bird.email.get_thread_message_bodyGet a thread message's original bodyread
  • bird.email.list_broadcast_clicked_linksList a broadcast's clicked linksread
  • bird.email.list_broadcast_eventsList events for a broadcastread
  • bird.email.list_broadcast_recipientsList recipients of a broadcastread
  • bird.email.list_broadcastsList broadcastsread
  • bird.email.list_domain_eventsList domain eventsread
  • bird.email.list_domainsList sending domainsread
  • bird.email.list_inbound_addressesList inbound addressesread
  • bird.email.list_inbound_message_attachmentsList a received email's attachmentsread
  • bird.email.list_inbound_messagesList received emailsread
  • bird.email.list_inbound_routesList inbound routesread
  • bird.email.list_mailbox_labelsList a mailbox's labelsread
  • bird.email.list_mailbox_messagesList a mailbox's messagesread
  • bird.email.list_mailbox_receive_rulesList receive rulesread
  • bird.email.list_mailbox_scheduled_messagesList scheduled mailbox sendsread
  • bird.email.list_mailboxesList mailboxesread
  • bird.email.list_message_eventsList events for a messageread
  • bird.email.list_message_recipientsList recipients of a messageread
  • bird.email.list_messagesList messagesread
  • bird.email.list_smtp_configsList SMTP configsread
  • bird.email.list_suppressionsList email suppressionsread
  • bird.email.list_template_broadcastsList the broadcasts blocking a template deleteread
  • bird.email.list_template_version_languagesList a version's languagesread
  • bird.email.list_template_versionsList email template versionsread
  • bird.email.list_templatesList email templatesread
  • bird.email.list_thread_message_attachmentsList a thread message's attachmentsread
  • bird.email.list_thread_messagesList messages in a threadread
  • bird.email.list_threadsList threadsread
  • bird.email.preview_broadcastPreview a broadcast for a contactread
  • bird.email.release_tracking_domainRelease link tracking configurationdestructive
  • bird.email.reply_thread_messageReply to a thread messagewrite
  • bird.email.restore_mailboxRestore a deleted mailboxwrite
  • bird.email.resume_mailboxResume a suspended mailboxwrite
  • bird.email.rollback_templateRoll back an email templatewrite
  • bird.email.search_competitive_brandsSearch brands to add to the watchlistread
  • bird.email.send_broadcastSend a broadcastwrite
  • bird.email.send_broadcast_testSend a rendered broadcast testwrite
  • bird.email.share_domain_dns_recordsShare a domain's DNS records by emailwrite
  • bird.email.submit_template_versionSubmit an email template versionwrite
  • bird.email.update_broadcastUpdate a broadcastwrite
  • bird.email.update_domainUpdate a sending domainwrite
  • bird.email.update_inbound_addressUpdate an inbound addresswrite
  • bird.email.update_inbound_routeUpdate an inbound routewrite
  • bird.email.update_inbox_insights_domainSwitch Inbox Insights on or off for a sending domainwrite
  • bird.email.update_mailboxUpdate a mailboxwrite
  • bird.email.update_smtp_configUpdate the SMTP config for an API keywrite
  • bird.email.update_templateUpdate an email templatewrite
  • bird.email.update_template_languageUpdate one language of a draftwrite
  • bird.email.update_threadUpdate a threadwrite
  • bird.email.update_thread_messageUpdate a message in a threadwrite
  • bird.email.upsert_inbox_insights_domain_monitoringSwitch Inbox Insights on for the workspace's main sending domainwrite
  • bird.email.upsert_template_languageUpsert one language of a draftwrite
  • bird.email.validate_broadcastValidate a broadcastread
  • bird.email.verify_domainVerify a domainwrite
Whatsapp73
  • bird.whatsapp.approve_group_join_requestsApprove WhatsApp group join requestswrite
  • bird.whatsapp.create_agent_notificationSend an agent a notificationwrite
  • bird.whatsapp.create_groupCreate a WhatsApp groupwrite
  • bird.whatsapp.create_group_pinned_messagePin a message in a WhatsApp groupwrite
  • bird.whatsapp.create_keyword_ruleCreate a WhatsApp keyword rulewrite
  • bird.whatsapp.create_messageSend a WhatsApp messagewrite
  • bird.whatsapp.create_suppressionCreate a WhatsApp suppressionwrite
  • bird.whatsapp.create_templateCreate a message templatewrite
  • bird.whatsapp.create_template_draftCreate a template draftwrite
  • bird.whatsapp.delete_groupDelete a WhatsApp groupdestructive
  • bird.whatsapp.delete_group_participantRemove a participant from a WhatsApp groupdestructive
  • bird.whatsapp.delete_group_pinned_messageUnpin a message in a WhatsApp groupdestructive
  • bird.whatsapp.delete_keyword_ruleDelete a WhatsApp keyword ruledestructive
  • bird.whatsapp.delete_message_reactionRemove your reaction from a WhatsApp messagedestructive
  • bird.whatsapp.delete_suppressionEnd a WhatsApp suppressiondestructive
  • bird.whatsapp.delete_templateDelete a message templatedestructive
  • bird.whatsapp.delete_template_languageDelete a language from the draftdestructive
  • bird.whatsapp.delete_template_versionDelete a template's open draftdestructive
  • bird.whatsapp.discard_template_language_editsDiscard a language's draft edits back to its submitted copydestructive
  • bird.whatsapp.duplicate_templateDuplicate a message templatewrite
  • bird.whatsapp.get_agent_notificationGet a notification sent to an agentread
  • bird.whatsapp.get_business_accountGet a WhatsApp Business Accountread
  • bird.whatsapp.get_conversationGet a WhatsApp conversationread
  • bird.whatsapp.get_conversation_messageGet a message in a WhatsApp conversationread
  • bird.whatsapp.get_groupGet a WhatsApp groupread
  • bird.whatsapp.get_inbound_stats_by_phone_numberGet inbound WhatsApp statistics by phone numberread
  • bird.whatsapp.get_inbound_stats_dailyGet daily inbound WhatsApp statisticsread
  • bird.whatsapp.get_inbound_stats_hourlyGet hourly inbound WhatsApp statisticsread
  • bird.whatsapp.get_inbound_stats_summaryGet aggregate inbound WhatsApp statisticsread
  • bird.whatsapp.get_keyword_ruleGet a WhatsApp keyword ruleread
  • bird.whatsapp.get_messageGet a WhatsApp messageread
  • bird.whatsapp.get_numberGet a WhatsApp numberread
  • bird.whatsapp.get_number_profileGet a WhatsApp number's business profileread
  • bird.whatsapp.get_stats_by_countryGet outbound WhatsApp statistics by countryread
  • bird.whatsapp.get_stats_by_error_codeGet outbound WhatsApp statistics by error coderead
  • bird.whatsapp.get_stats_by_phone_numberGet outbound WhatsApp statistics by phone numberread
  • bird.whatsapp.get_stats_by_tagGet outbound WhatsApp statistics by tagread
  • bird.whatsapp.get_stats_by_templateGet outbound WhatsApp statistics by templateread
  • bird.whatsapp.get_stats_by_template_categoryGet outbound WhatsApp statistics by template categoryread
  • bird.whatsapp.get_stats_dailyGet daily outbound WhatsApp statisticsread
  • bird.whatsapp.get_stats_hourlyGet hourly outbound WhatsApp statisticsread
  • bird.whatsapp.get_stats_summaryGet aggregate outbound WhatsApp statisticsread
  • bird.whatsapp.get_suppressionGet a WhatsApp suppressionread
  • bird.whatsapp.get_templateGet a message templateread
  • bird.whatsapp.get_template_versionGet a template versionread
  • bird.whatsapp.get_template_version_languageGet a version's languageread
  • bird.whatsapp.list_agent_notificationsList the notifications sent to your agentsread
  • bird.whatsapp.list_business_accountsList WhatsApp Business Accountsread
  • bird.whatsapp.list_conversation_eventsList WhatsApp conversation eventsread
  • bird.whatsapp.list_conversation_messagesList messages in a WhatsApp conversationread
  • bird.whatsapp.list_conversationsList WhatsApp conversationsread
  • bird.whatsapp.list_group_join_requestsList a WhatsApp group's join requestsread
  • bird.whatsapp.list_groupsList WhatsApp groupsread
  • bird.whatsapp.list_keyword_rulesList WhatsApp keyword rulesread
  • bird.whatsapp.list_message_eventsList events for a WhatsApp messageread
  • bird.whatsapp.list_message_reaction_eventsList reaction events for a WhatsApp messageread
  • bird.whatsapp.list_messagesList WhatsApp messagesread
  • bird.whatsapp.list_number_eventsList WhatsApp number eventsread
  • bird.whatsapp.list_numbersList WhatsApp numbersread
  • bird.whatsapp.list_suppressionsList WhatsApp suppressionsread
  • bird.whatsapp.list_template_version_languagesList a version's languagesread
  • bird.whatsapp.list_template_versionsList a template's versionsread
  • bird.whatsapp.list_templatesList available message templatesread
  • bird.whatsapp.reject_group_join_requestsReject WhatsApp group join requestswrite
  • bird.whatsapp.rotate_group_invite_linkRotate a WhatsApp group's invite linkdestructive
  • bird.whatsapp.send_read_receiptMark a WhatsApp message as readwrite
  • bird.whatsapp.submit_template_versionSubmit a template version for reviewwrite
  • bird.whatsapp.update_conversationUpdate a WhatsApp conversationwrite
  • bird.whatsapp.update_groupUpdate a WhatsApp groupwrite
  • bird.whatsapp.update_keyword_ruleUpdate a WhatsApp keyword rulewrite
  • bird.whatsapp.update_templateUpdate a message templatewrite
  • bird.whatsapp.upsert_message_reactionReact to a WhatsApp messagewrite
  • bird.whatsapp.upsert_template_languageUpsert a language's contentwrite
Amb53
  • bird.amb.create_business_accountCreate an Apple Messages for Business recordwrite
  • bird.amb.create_business_account_submissionSubmit an Apple Messages for Business business for reviewwrite
  • bird.amb.create_conversation_typingSend a typing indicatorwrite
  • bird.amb.create_messageSend a messagewrite
  • bird.amb.create_routing_ruleCreate an Apple Messages for Business routing rulewrite
  • bird.amb.create_suppressionCreate an Apple Messages for Business suppressionwrite
  • bird.amb.delete_business_accountDisconnect an Apple business accountdestructive
  • bird.amb.delete_routing_ruleDelete an Apple Messages for Business routing ruledestructive
  • bird.amb.delete_suppressionEnd an Apple Messages for Business suppressiondestructive
  • bird.amb.get_business_accountGet an Apple Messages for Business recordread
  • bird.amb.get_channel_settingsGet Apple Messages for Business channel settingsread
  • bird.amb.get_conversationGet a conversationread
  • bird.amb.get_conversation_stats_dailyGet daily Apple Messages for Business conversation statisticsread
  • bird.amb.get_conversation_stats_hourlyGet hourly Apple Messages for Business conversation statisticsread
  • bird.amb.get_conversation_stats_summaryGet aggregate Apple Messages for Business conversation statisticsread
  • bird.amb.get_inbound_stats_by_businessGet inbound Apple Messages for Business statistics by businessread
  • bird.amb.get_inbound_stats_by_intentGet inbound Apple Messages for Business statistics by intentread
  • bird.amb.get_inbound_stats_dailyGet daily inbound Apple Messages for Business statisticsread
  • bird.amb.get_inbound_stats_hourlyGet hourly inbound Apple Messages for Business statisticsread
  • bird.amb.get_inbound_stats_summaryGet aggregate inbound Apple Messages for Business statisticsread
  • bird.amb.get_messageGet a messageread
  • bird.amb.get_routing_ruleGet an Apple Messages for Business routing ruleread
  • bird.amb.get_stats_by_businessGet outbound Apple Messages for Business statistics by businessread
  • bird.amb.get_stats_by_categoryGet outbound Apple Messages for Business statistics by categoryread
  • bird.amb.get_stats_by_error_codeGet outbound Apple Messages for Business statistics by error coderead
  • bird.amb.get_stats_by_groupGet outbound Apple Messages for Business statistics by groupread
  • bird.amb.get_stats_by_intentGet outbound Apple Messages for Business statistics by intentread
  • bird.amb.get_stats_by_message_kindGet outbound Apple Messages for Business statistics by message kindread
  • bird.amb.get_stats_by_tagGet outbound Apple Messages for Business statistics by tagread
  • bird.amb.get_stats_dailyGet daily outbound Apple Messages for Business statisticsread
  • bird.amb.get_stats_hourlyGet hourly outbound Apple Messages for Business statisticsread
  • bird.amb.get_stats_summaryGet aggregate outbound Apple Messages for Business statisticsread
  • bird.amb.get_suppressionGet an Apple Messages for Business suppressionread
  • bird.amb.get_templateGet an Apple Messages templateread
  • bird.amb.get_template_versionGet an Apple Messages template versionread
  • bird.amb.get_template_version_languageGet an Apple Messages template version's languageread
  • bird.amb.list_business_account_eventsList Apple business account eventsread
  • bird.amb.list_business_account_submissionsList Apple Messages for Business submissionsread
  • bird.amb.list_business_accountsList Apple Messages for Business recordsread
  • bird.amb.list_conversation_messagesList messages in a conversationread
  • bird.amb.list_conversationsList conversationsread
  • bird.amb.list_message_eventsList events for a messageread
  • bird.amb.list_messagesList messagesread
  • bird.amb.list_routing_rulesList Apple Messages for Business routing rulesread
  • bird.amb.list_suppressionsList Apple Messages for Business suppressionsread
  • bird.amb.list_template_version_languagesList an Apple Messages template version's languagesread
  • bird.amb.list_template_versionsList an Apple Messages template's versionsread
  • bird.amb.list_templatesList Apple Messages templatesread
  • bird.amb.restore_business_accountReconnect an Apple business accountwrite
  • bird.amb.update_business_accountUpdate an Apple Messages for Business recordwrite
  • bird.amb.update_channel_settingsUpdate Apple Messages for Business channel settingswrite
  • bird.amb.update_conversationUpdate a conversationwrite
  • bird.amb.update_routing_ruleUpdate an Apple Messages for Business routing rulewrite
SMS41
  • bird.sms.create_keyword_ruleCreate an SMS keyword rulewrite
  • bird.sms.create_messageCreate an SMS messagewrite
  • bird.sms.create_message_batchCreate a batch of SMS messageswrite
  • bird.sms.create_suppressionCreate an SMS suppressionwrite
  • bird.sms.create_workspace_senderCreate an SMS senderwrite
  • bird.sms.create_workspace_sender_registrationCreate a sender registration for a countrywrite
  • bird.sms.delete_keyword_ruleDelete an SMS keyword ruledestructive
  • bird.sms.delete_suppressionDelete an SMS suppressiondestructive
  • bird.sms.get_inbound_stats_by_countryGet inbound SMS statistics by countryread
  • bird.sms.get_inbound_stats_by_numberGet inbound SMS statistics by numberread
  • bird.sms.get_inbound_stats_by_operatorGet inbound SMS statistics by operatorread
  • bird.sms.get_inbound_stats_dailyGet daily inbound SMS statisticsread
  • bird.sms.get_inbound_stats_hourlyGet hourly inbound SMS statisticsread
  • bird.sms.get_inbound_stats_summaryGet aggregate inbound SMS statisticsread
  • bird.sms.get_keyword_ruleGet an SMS keyword ruleread
  • bird.sms.get_messageGet an SMS messageread
  • bird.sms.get_stats_by_carrierGet outbound SMS statistics by carrierread
  • bird.sms.get_stats_by_categoryGet outbound SMS statistics by categoryread
  • bird.sms.get_stats_by_countryGet outbound SMS statistics by countryread
  • bird.sms.get_stats_by_error_codeGet outbound SMS statistics by error coderead
  • bird.sms.get_stats_by_originatorGet outbound SMS statistics by originatorread
  • bird.sms.get_stats_by_statusGet outbound SMS statistics by statusread
  • bird.sms.get_stats_by_tagGet outbound SMS statistics by tagread
  • bird.sms.get_stats_dailyGet daily outbound SMS statisticsread
  • bird.sms.get_stats_hourlyGet hourly outbound SMS statisticsread
  • bird.sms.get_stats_summaryGet aggregate outbound SMS statisticsread
  • bird.sms.get_suppressionGet an SMS suppressionread
  • bird.sms.get_templateGet an SMS templateread
  • bird.sms.get_template_versionGet an SMS template versionread
  • bird.sms.get_template_version_languageGet an SMS template version's languageread
  • bird.sms.get_workspace_senderGet an SMS senderread
  • bird.sms.list_keyword_rulesList SMS keyword rulesread
  • bird.sms.list_message_eventsList events for an SMS messageread
  • bird.sms.list_messagesList SMS messagesread
  • bird.sms.list_suppressionsList SMS suppressionsread
  • bird.sms.list_template_version_languagesList an SMS template version's languagesread
  • bird.sms.list_template_versionsList an SMS template's versionsread
  • bird.sms.list_templatesList SMS templatesread
  • bird.sms.list_workspace_sender_requirementsList what a sender needs to sendread
  • bird.sms.list_workspace_sendersList your SMS sendersread
  • bird.sms.update_keyword_ruleUpdate an SMS keyword rulewrite
Esim38
  • bird.esim.cancel_orderCancel an unfunded orderdestructive
  • bird.esim.cancel_recurring_subscriptionCancel recurring eSIM renewaldestructive
  • bird.esim.create_assignmentAssign an eSIM to a personwrite
  • bird.esim.create_install_linkCreate a hosted install linkwrite
  • bird.esim.create_orderOrder a data packagewrite
  • bird.esim.create_recurring_subscriptionCreate a recurring eSIM subscriptionwrite
  • bird.esim.create_subscriberCreate an eSIM subscriberwrite
  • bird.esim.delete_install_linkRevoke a hosted install linkdestructive
  • bird.esim.delete_packageRemove a data packagedestructive
  • bird.esim.deliver_credentialsSend install credentials to the travelerwrite
  • bird.esim.getGet an eSIMread
  • bird.esim.get_assignmentGet an eSIM assignmentread
  • bird.esim.get_credentialsGet eSIM install credentialsread
  • bird.esim.get_offerGet an eSIM offerread
  • bird.esim.get_offer_checkout_optionsGet eSIM checkout optionsread
  • bird.esim.get_offer_recurrenceGet recurring eSIM offer termsread
  • bird.esim.get_offer_requirementsGet country identification requirements for an eSIM offerread
  • bird.esim.get_orderGet an orderread
  • bird.esim.get_packageGet a data packageread
  • bird.esim.get_recurring_subscriptionGet a recurring eSIM subscriptionread
  • bird.esim.get_settingsGet the eSIM settingsread
  • bird.esim.get_subscriberGet an eSIM subscriberread
  • bird.esim.get_zoneGet an eSIM coverage zoneread
  • bird.esim.listList eSIMsread
  • bird.esim.list_compatible_offersList offers an eSIM can takeread
  • bird.esim.list_deliveriesList an eSIM's credential deliveriesread
  • bird.esim.list_offersList eSIM offersread
  • bird.esim.list_ordersList ordersread
  • bird.esim.list_packagesList an eSIM's data packagesread
  • bird.esim.list_recurring_periodsList recurring eSIM periodsread
  • bird.esim.list_recurring_subscriptionsList recurring eSIM subscriptionsread
  • bird.esim.list_subscribersList eSIM subscribersread
  • bird.esim.list_zonesList eSIM coverage zonesread
  • bird.esim.releaseRelease an eSIMdestructive
  • bird.esim.resumeResume an eSIMwrite
  • bird.esim.suspendSuspend an eSIMwrite
  • bird.esim.updateUpdate an eSIMwrite
  • bird.esim.update_settingsUpdate the eSIM settingswrite
Voice27
  • bird.voice.create_callCreate a callwrite
  • bird.voice.create_session_credentialCreate an SIP session credentialwrite
  • bird.voice.create_trunkCreate an SIP trunkwrite
  • bird.voice.create_trunk_gatewayCreate a gateway on an SIP trunkwrite
  • bird.voice.create_verified_numberCreate a verified numberwrite
  • bird.voice.delete_trunkDelete an SIP trunkdestructive
  • bird.voice.delete_trunk_gatewayDelete an SIP trunk gatewaydestructive
  • bird.voice.delete_verified_numberDelete a verified numberdestructive
  • bird.voice.get_legGet a legread
  • bird.voice.get_numberGet a voice numberread
  • bird.voice.get_settingsGet the voice settingsread
  • bird.voice.get_trunkGet an SIP trunkread
  • bird.voice.get_trunk_gatewayGet an SIP trunk gatewayread
  • bird.voice.get_verified_numberGet a verified numberread
  • bird.voice.list_destinationsList Voice destination countriesread
  • bird.voice.list_legsList legsread
  • bird.voice.list_numbersList the numbers you can use for voiceread
  • bird.voice.list_trunk_gatewaysList an SIP trunk's gatewaysread
  • bird.voice.list_trunksList SIP trunksread
  • bird.voice.list_verified_numbersList verified numbersread
  • bird.voice.update_destinationsUpdate enabled Voice destination countrieswrite
  • bird.voice.update_numberUpdate a voice numberwrite
  • bird.voice.update_settingsUpdate the voice settingswrite
  • bird.voice.update_trunkUpdate an SIP trunkwrite
  • bird.voice.update_trunk_gatewayUpdate an SIP trunk gatewaywrite
  • bird.voice.update_verified_numberUpdate a verified numberwrite
  • bird.voice.verify_verified_numberVerify number ownershipwrite
Realtime16
  • bird.realtime.create_appCreate a Realtime appwrite
  • bird.realtime.create_app_keyCreate a Realtime app keywrite
  • bird.realtime.delete_appDelete a Realtime appdestructive
  • bird.realtime.disconnect_app_memberDisconnect a memberdestructive
  • bird.realtime.get_appGet a Realtime appread
  • bird.realtime.get_app_channelGet a Realtime channelread
  • bird.realtime.list_app_channel_membersList members on a presence channelread
  • bird.realtime.list_app_channelsList Realtime channelsread
  • bird.realtime.list_app_keysList a Realtime app's keysread
  • bird.realtime.list_appsList Realtime appsread
  • bird.realtime.list_regionsList Realtime regionsread
  • bird.realtime.publish_app_batchPublish a batch of Realtime eventswrite
  • bird.realtime.publish_app_eventPublish a Realtime eventwrite
  • bird.realtime.revoke_app_keyRevoke a Realtime app keydestructive
  • bird.realtime.send_app_member_eventSend an event to a memberwrite
  • bird.realtime.update_appUpdate a Realtime appwrite
Audiences11
  • bird.audiences.assign_contactsAssign contacts to an audiencewrite
  • bird.audiences.createCreate an audiencewrite
  • bird.audiences.deleteDelete an audiencedestructive
  • bird.audiences.getGet an audienceread
  • bird.audiences.get_membershipGet audience membershipread
  • bird.audiences.get_membership_statisticsGet audience membership statisticsread
  • bird.audiences.listList audiencesread
  • bird.audiences.list_contactsList an audience's contactsread
  • bird.audiences.unassign_contactUnassign a contact from an audiencedestructive
  • bird.audiences.unassign_contactsUnassign contacts from an audiencedestructive
  • bird.audiences.updateUpdate an audiencewrite
Compliance11
  • bird.compliance.create_identityCreate an identitywrite
  • bird.compliance.create_workspace_submissionCreate a registration submissionwrite
  • bird.compliance.delete_attachmentDelete a registration attachmentdestructive
  • bird.compliance.delete_identityDelete an identitydestructive
  • bird.compliance.get_identityGet an identityread
  • bird.compliance.get_workspace_requirementsGet what a registration needsread
  • bird.compliance.get_workspace_submissionGet a submissionread
  • bird.compliance.list_attachmentsList registration attachmentsread
  • bird.compliance.list_identitiesList identitiesread
  • bird.compliance.update_identityUpdate an identity namewrite
  • bird.compliance.update_workspace_submissionUpdate compliance answerswrite
Numbers10
  • bird.numbers.cancelCancel a dedicated numberdestructive
  • bird.numbers.create_orderCreate a number orderwrite
  • bird.numbers.getGet an allocated numberread
  • bird.numbers.get_availableGet an available phone numberread
  • bird.numbers.get_orderGet a number orderread
  • bird.numbers.listList your allocated numbersread
  • bird.numbers.list_availableList available phone numbersread
  • bird.numbers.list_ordersList your number ordersread
  • bird.numbers.releaseRelease a dedicated numberdestructive
  • bird.numbers.updateUpdate an allocated numberwrite
Webhooks9
  • bird.webhooks.createCreate a webhook endpointwrite
  • bird.webhooks.create_replayReplay failed deliverieswrite
  • bird.webhooks.deleteDelete a webhook endpointdestructive
  • bird.webhooks.getGet a webhook endpointread
  • bird.webhooks.listList webhook endpointsread
  • bird.webhooks.list_attemptsList delivery attemptsread
  • bird.webhooks.rotate_secretRotate webhook signing secretdestructive
  • bird.webhooks.testTest a webhook with a sample eventwrite
  • bird.webhooks.updateUpdate a webhook endpointwrite
Contacts7
  • bird.contacts.createCreate a contactwrite
  • bird.contacts.create_batchCreate or update contacts in bulkwrite
  • bird.contacts.deleteDelete a contactdestructive
  • bird.contacts.getGet a contactread
  • bird.contacts.listList contactsread
  • bird.contacts.list_preferencesList a contact's preferencesread
  • bird.contacts.updateUpdate a contactwrite
Contact properties6
  • bird.contact_properties.archiveArchive a contact propertywrite
  • bird.contact_properties.createCreate a contact propertywrite
  • bird.contact_properties.getGet a contact propertyread
  • bird.contact_properties.listList contact propertiesread
  • bird.contact_properties.unarchiveUnarchive a contact propertywrite
  • bird.contact_properties.updateUpdate a contact propertywrite
Asset folders5
  • bird.asset_folders.createCreate a folder in the media librarywrite
  • bird.asset_folders.deleteDelete a folder and move its contents updestructive
  • bird.asset_folders.getGet a media-library folder by IDread
  • bird.asset_folders.listList workspace media-library foldersread
  • bird.asset_folders.updateRename or move a media-library folderwrite
Assets5
  • bird.assets.deleteRemove an asset from the media librarydestructive
  • bird.assets.getGet a media-library asset by IDread
  • bird.assets.listList workspace media-library assetsread
  • bird.assets.list_referencesList editable resources that use an assetread
  • bird.assets.updateUpdate asset metadata or folder placementwrite
Lookup5
  • bird.lookup.get_email_lookupGet an email address lookup by URLread
  • bird.lookup.get_phone_number_lookupGet a phone number lookup by URLread
  • bird.lookup.lookup_emailCreate an email address lookupwrite
  • bird.lookup.lookup_email_batchCreate a batch of email address lookupswrite
  • bird.lookup.lookup_phone_numberCreate a phone number lookupwrite
Preferences4
  • bird.preferences.createRecord a preferencewrite
  • bird.preferences.deleteDelete a preferencedestructive
  • bird.preferences.getGet a preferenceread
  • bird.preferences.listList preferencesread
Organization3
  • bird.organization.create_workspaceCreate a workspacewrite
  • bird.organization.get_billing_resolved_priceGet the effective price for a productread
  • bird.organization.list_billing_walletsList walletsread
Verify3
  • bird.verify.create_verificationCreate a verificationwrite
  • bird.verify.create_verification_checkCreate a verification passcode checkwrite
  • bird.verify.create_verification_next_channelCreate the next verification channel attemptwrite
Docs2
  • bird.docs.get_pageGet a documentation pageread
  • bird.docs.get_searchGet documentation search resultsread
Workspace2
  • bird.workspace.get_currentGet the current workspaceread
  • bird.workspace.list_quotasList workspace quotasread

Questions

The Bird MCP server, answered.

Is there a Bird MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 471 Bird actions across email, whatsapp, amb and SMS, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Bird.

What do I need to connect Bird?

Bird API key: a workspace key (bk_[region]_…) or an organization master key (bm_[region]_…). Plus your organization id, your region and your workspace id. The free call account { op: "connections.requirements", service: "bird" } lists exactly what to paste.

Can an AI agent delete or change things in Bird?

Only if its key allows it, and only with an explicit confirmation. 57 Bird actions are destructive, including delete an audience, delete a sending domain and delete a mailbox. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

Will an AI agent use up my Bird API limit?

actionlake paces every call to the limits in the Bird service file: 600 calls a minute per connection. Repeated reads are answered from cache (263 Bird actions can be), which never reaches Bird.

What does a Bird action cost?

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (471 Bird actions page). Cache hits, searches, dry runs and calls Bird refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

Which Bird API does it cover?

The Bird API 1.0.0 at your region's bird.com address, set when you connect. It is built from Bird's documentation as read on 23 October 2026. 471 actions in 21 areas, each one in the signed service file (version 1.0.0).

Can I combine Bird with my other systems?

Yes. ask joins Bird to HaloPSA or NetSuite on the same customer and returns the answer rather than every row. Bird maps crm.contact, which 192 other connectors also map.

Does actionlake keep my Bird data, and where?

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Bird credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

Which AI clients can use it?

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

Give your agent Bird today.

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.