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/mcpdo { 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.
- 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 - 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 idregionYour Bird regionworkspace_idYour Bird workspace id
account { op: "connections.requirements", service: "bird" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates 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
- 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
Email
14087 read · 36 write · 17 destructive
List sending domains · List mailboxes · Create a sending domain · Create a mailbox
Whatsapp
7343 read · 19 write · 11 destructive
List WhatsApp messages · Send a WhatsApp message · List WhatsApp suppressions · Create a WhatsApp suppression
Amb
5339 read · 11 write · 3 destructive
List messages · Send a message · List Apple Messages for Business suppressions · Create an Apple Messages for Business suppression
SMS
4132 read · 7 write · 2 destructive
Create an SMS message · List SMS messages · List SMS suppressions · Create an SMS suppression
Esim
3823 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
Voice
2712 read · 12 write · 3 destructive
Create a call · Create an SIP session credential · Create an SIP trunk · Create a gateway on an SIP trunk
Realtime
167 read · 6 write · 3 destructive
Create a Realtime app · Create a Realtime app key · List members on a presence channel · List Realtime channels
Audiences
115 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.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
bird.audiences.listList audiences | List audiences. | read | comm.audience.list26 connectors |
bird.email.list_domainsList sending domains | List sending domains. | read | comm.sending_domain.list18 connectors |
bird.email.list_mailboxesList mailboxes | List mailboxes. | read | comm.mailbox.list18 connectors |
bird.contacts.listList contacts | List contacts. | read | crm.contact.list177 connectors |
bird.audiences.createCreate an audience | Create an audience. | write | comm.audience.create24 connectors |
bird.email.create_domainCreate a sending domain | Create a sending domain. | write | comm.sending_domain.create15 connectors |
bird.email.create_mailboxCreate a mailbox | Create a mailbox. | write | comm.mailbox.create15 connectors |
bird.contacts.createCreate a contact | Create a contact. | write | crm.contact.create161 connectors |
bird.audiences.deleteDelete an audience | Delete an audience. | destructive | comm.audience.delete21 connectors |
bird.whatsapp.list_messagesList WhatsApp messages | List WhatsApp messages. | read | comm.message.list42 connectors |
bird.email.list_broadcastsList broadcasts | List broadcasts. | read | comm.campaign.list41 connectors |
bird.email.create_broadcastCreate a broadcast | Create a broadcast. | write | comm.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.
- Readread
Find the Bird contacts with no email address, so we can clean them up.
calls
bird.contacts.list - Writewrite
Create an audience in Bird. Show me exactly what you will send before you save it.
calls
bird.audiences.create - Across systemsread
Which contacts are in both Bird and HaloPSA, and how many are in only one of them?
calls
bird.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, oncrm.contact· HaloPSAWhich contacts are in both Bird and NetSuite, and how many are in only one of them?
bird.contacts.list+netsuite.views.contacts, oncrm.contact· NetSuite
crm.contact 192comm.audience 27comm.mailbox 14comm.sending_domain 12ask { 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"] } } ]}Governance for Bird
Destructive actions wait for a yes.
57 Bird actions are destructive. The first 10:
- Delete an audience
bird.audiences.delete - Delete a sending domain
bird.email.delete_domain - Delete a mailbox
bird.email.delete_mailbox - Delete a contact
bird.contacts.delete - Delete an email template
bird.email.delete_template - Delete a broadcast
bird.email.delete_broadcast - Delete an SMS suppression
bird.sms.delete_suppression - Delete an email suppression
bird.email.delete_suppression - End a WhatsApp suppression
bird.whatsapp.delete_suppression - Unassign a contact from an audience
bird.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.
Delete an audience?
intent: the user asked me to delete an audience
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]" } ]}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
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 broadcastdestructivebird.email.cancel_mailbox_scheduled_messageCancel a scheduled mailbox senddestructivebird.email.cancel_messageCancel a scheduled messagedestructivebird.email.create_broadcastCreate a broadcastwritebird.email.create_competitive_watchlist_brandAdd a competitor brand to the watchlistwritebird.email.create_domainCreate a sending domainwritebird.email.create_inbound_addressCreate an inbound addresswritebird.email.create_inbound_routeCreate an inbound routewritebird.email.create_inbox_insights_seed_testRegister a seed test and get its addresseswritebird.email.create_mailboxCreate a mailboxwritebird.email.create_mailbox_messageCreate a message from a mailboxwritebird.email.create_mailbox_receive_ruleCreate a receive rulewritebird.email.create_messageCreate an email messagewritebird.email.create_message_batchCreate a batch of email messageswritebird.email.create_suppressionCreate an email suppressionwritebird.email.create_templateCreate an email templatewritebird.email.delete_broadcastDelete a broadcastdestructivebird.email.delete_competitive_watchlist_brandRemove a competitor brand from the watchlistdestructivebird.email.delete_domainDelete a sending domaindestructivebird.email.delete_inbound_addressDelete an inbound addressdestructivebird.email.delete_inbound_routeDelete an inbound routedestructivebird.email.delete_mailboxDelete a mailboxdestructivebird.email.delete_mailbox_receive_ruleDelete a receive ruledestructivebird.email.delete_suppressionDelete an email suppressiondestructivebird.email.delete_templateDelete an email templatedestructivebird.email.delete_template_languageDelete one language from a draftdestructivebird.email.delete_template_versionDelete an email template draftdestructivebird.email.delete_threadDelete a threaddestructivebird.email.delete_thread_messageDelete a message in a threaddestructivebird.email.duplicate_templateDuplicate an email templatewritebird.email.get_broadcastGet a broadcastreadbird.email.get_broadcast_countsGet a broadcast's audience countsreadbird.email.get_broadcast_send_quotaGet the email send allowance for a broadcastreadbird.email.get_competitive_brandGet a watched brand's figuresreadbird.email.get_competitive_brand_campaignGet one campaign a watched brand sentreadbird.email.get_competitive_brand_campaignsGet the campaigns a watched brand sentreadbird.email.get_competitive_brand_send_timeGet when a watched brand sendsreadbird.email.get_competitive_notable_campaignsGet the notable campaigns across watched brandsreadbird.email.get_competitive_volume_seriesGet send volume over time for watched brandsreadbird.email.get_competitive_watchlistGet the competitor watchlist with its latest figuresreadbird.email.get_domainGet a sending domainreadbird.email.get_healthGet sending health and deliverability limitsreadbird.email.get_inbound_addressGet an inbound addressreadbird.email.get_inbound_messageGet a received emailreadbird.email.get_inbound_message_bodyGet a received email's bodyreadbird.email.get_inbound_routeGet an inbound routereadbird.email.get_inbox_insights_authenticationGet email authentication standing for a sending domainreadbird.email.get_inbox_insights_blocklistsCheck whether a sending domain's infrastructure is blocklistedreadbird.email.get_inbox_insights_complaintsGet the Google-reported spam rate for a sending domainreadbird.email.get_inbox_insights_domainsList sending domains and their Inbox Insights statusreadbird.email.get_inbox_insights_industry_benchmarkGet the industry placement benchmark for a sending domainreadbird.email.get_inbox_insights_placementGet inbox placement for a sending domainreadbird.email.get_inbox_insights_seed_test_configurationGet the choices available for a new seed testreadbird.email.get_inbox_insights_seed_testsGet seed tests for a sending domainreadbird.email.get_inbox_insights_spam_trapsGet spam-trap hits for a sending domainreadbird.email.get_mailboxGet a mailboxreadbird.email.get_mailbox_scheduled_messageGet a scheduled mailbox sendreadbird.email.get_mailbox_statsGet mailbox email statisticsreadbird.email.get_messageGet a messagereadbird.email.get_message_contentGet stored message contentreadbird.email.get_smtp_configGet an SMTP configreadbird.email.get_stats_by_bounce_codeGet bounces by SMTP error codereadbird.email.get_stats_by_broadcastGet statistics by broadcastreadbird.email.get_stats_by_categoryGet statistics by categoryreadbird.email.get_stats_by_clientGet engagement by email clientreadbird.email.get_stats_by_complaint_typeGet complaints by typereadbird.email.get_stats_by_locationGet engagement by locationreadbird.email.get_stats_by_mailbox_providerGet statistics by mailbox providerreadbird.email.get_stats_by_mailbox_provider_regionGet statistics by mailbox provider regionreadbird.email.get_stats_by_recipient_domainGet statistics by recipient domainreadbird.email.get_stats_by_sending_domainGet statistics by sending domainreadbird.email.get_stats_by_sending_ipGet statistics by sending IPreadbird.email.get_stats_by_tagGet statistics by tagreadbird.email.get_stats_by_templateGet statistics by templatereadbird.email.get_stats_dailyGet daily sending statisticsreadbird.email.get_stats_hourlyGet hourly sending statisticsreadbird.email.get_stats_queryQuery email delivery and engagement metricsreadbird.email.get_stats_summaryGet aggregate email statisticsreadbird.email.get_suppressionGet an email suppressionreadbird.email.get_templateGet an email templatereadbird.email.get_template_languageGet one language of a versionreadbird.email.get_template_parametersGet published email template parametersreadbird.email.get_template_previewGet an email template previewreadbird.email.get_template_versionGet an email template versionreadbird.email.get_threadGet a threadreadbird.email.get_thread_messageGet a message in a threadreadbird.email.get_thread_message_bodyGet a thread message's original bodyreadbird.email.list_broadcast_clicked_linksList a broadcast's clicked linksreadbird.email.list_broadcast_eventsList events for a broadcastreadbird.email.list_broadcast_recipientsList recipients of a broadcastreadbird.email.list_broadcastsList broadcastsreadbird.email.list_domain_eventsList domain eventsreadbird.email.list_domainsList sending domainsreadbird.email.list_inbound_addressesList inbound addressesreadbird.email.list_inbound_message_attachmentsList a received email's attachmentsreadbird.email.list_inbound_messagesList received emailsreadbird.email.list_inbound_routesList inbound routesreadbird.email.list_mailbox_labelsList a mailbox's labelsreadbird.email.list_mailbox_messagesList a mailbox's messagesreadbird.email.list_mailbox_receive_rulesList receive rulesreadbird.email.list_mailbox_scheduled_messagesList scheduled mailbox sendsreadbird.email.list_mailboxesList mailboxesreadbird.email.list_message_eventsList events for a messagereadbird.email.list_message_recipientsList recipients of a messagereadbird.email.list_messagesList messagesreadbird.email.list_smtp_configsList SMTP configsreadbird.email.list_suppressionsList email suppressionsreadbird.email.list_template_broadcastsList the broadcasts blocking a template deletereadbird.email.list_template_version_languagesList a version's languagesreadbird.email.list_template_versionsList email template versionsreadbird.email.list_templatesList email templatesreadbird.email.list_thread_message_attachmentsList a thread message's attachmentsreadbird.email.list_thread_messagesList messages in a threadreadbird.email.list_threadsList threadsreadbird.email.preview_broadcastPreview a broadcast for a contactreadbird.email.release_tracking_domainRelease link tracking configurationdestructivebird.email.reply_thread_messageReply to a thread messagewritebird.email.restore_mailboxRestore a deleted mailboxwritebird.email.resume_mailboxResume a suspended mailboxwritebird.email.rollback_templateRoll back an email templatewritebird.email.search_competitive_brandsSearch brands to add to the watchlistreadbird.email.send_broadcastSend a broadcastwritebird.email.send_broadcast_testSend a rendered broadcast testwritebird.email.share_domain_dns_recordsShare a domain's DNS records by emailwritebird.email.submit_template_versionSubmit an email template versionwritebird.email.update_broadcastUpdate a broadcastwritebird.email.update_domainUpdate a sending domainwritebird.email.update_inbound_addressUpdate an inbound addresswritebird.email.update_inbound_routeUpdate an inbound routewritebird.email.update_inbox_insights_domainSwitch Inbox Insights on or off for a sending domainwritebird.email.update_mailboxUpdate a mailboxwritebird.email.update_smtp_configUpdate the SMTP config for an API keywritebird.email.update_templateUpdate an email templatewritebird.email.update_template_languageUpdate one language of a draftwritebird.email.update_threadUpdate a threadwritebird.email.update_thread_messageUpdate a message in a threadwritebird.email.upsert_inbox_insights_domain_monitoringSwitch Inbox Insights on for the workspace's main sending domainwritebird.email.upsert_template_languageUpsert one language of a draftwritebird.email.validate_broadcastValidate a broadcastreadbird.email.verify_domainVerify a domainwrite
Whatsapp73
bird.whatsapp.approve_group_join_requestsApprove WhatsApp group join requestswritebird.whatsapp.create_agent_notificationSend an agent a notificationwritebird.whatsapp.create_groupCreate a WhatsApp groupwritebird.whatsapp.create_group_pinned_messagePin a message in a WhatsApp groupwritebird.whatsapp.create_keyword_ruleCreate a WhatsApp keyword rulewritebird.whatsapp.create_messageSend a WhatsApp messagewritebird.whatsapp.create_suppressionCreate a WhatsApp suppressionwritebird.whatsapp.create_templateCreate a message templatewritebird.whatsapp.create_template_draftCreate a template draftwritebird.whatsapp.delete_groupDelete a WhatsApp groupdestructivebird.whatsapp.delete_group_participantRemove a participant from a WhatsApp groupdestructivebird.whatsapp.delete_group_pinned_messageUnpin a message in a WhatsApp groupdestructivebird.whatsapp.delete_keyword_ruleDelete a WhatsApp keyword ruledestructivebird.whatsapp.delete_message_reactionRemove your reaction from a WhatsApp messagedestructivebird.whatsapp.delete_suppressionEnd a WhatsApp suppressiondestructivebird.whatsapp.delete_templateDelete a message templatedestructivebird.whatsapp.delete_template_languageDelete a language from the draftdestructivebird.whatsapp.delete_template_versionDelete a template's open draftdestructivebird.whatsapp.discard_template_language_editsDiscard a language's draft edits back to its submitted copydestructivebird.whatsapp.duplicate_templateDuplicate a message templatewritebird.whatsapp.get_agent_notificationGet a notification sent to an agentreadbird.whatsapp.get_business_accountGet a WhatsApp Business Accountreadbird.whatsapp.get_conversationGet a WhatsApp conversationreadbird.whatsapp.get_conversation_messageGet a message in a WhatsApp conversationreadbird.whatsapp.get_groupGet a WhatsApp groupreadbird.whatsapp.get_inbound_stats_by_phone_numberGet inbound WhatsApp statistics by phone numberreadbird.whatsapp.get_inbound_stats_dailyGet daily inbound WhatsApp statisticsreadbird.whatsapp.get_inbound_stats_hourlyGet hourly inbound WhatsApp statisticsreadbird.whatsapp.get_inbound_stats_summaryGet aggregate inbound WhatsApp statisticsreadbird.whatsapp.get_keyword_ruleGet a WhatsApp keyword rulereadbird.whatsapp.get_messageGet a WhatsApp messagereadbird.whatsapp.get_numberGet a WhatsApp numberreadbird.whatsapp.get_number_profileGet a WhatsApp number's business profilereadbird.whatsapp.get_stats_by_countryGet outbound WhatsApp statistics by countryreadbird.whatsapp.get_stats_by_error_codeGet outbound WhatsApp statistics by error codereadbird.whatsapp.get_stats_by_phone_numberGet outbound WhatsApp statistics by phone numberreadbird.whatsapp.get_stats_by_tagGet outbound WhatsApp statistics by tagreadbird.whatsapp.get_stats_by_templateGet outbound WhatsApp statistics by templatereadbird.whatsapp.get_stats_by_template_categoryGet outbound WhatsApp statistics by template categoryreadbird.whatsapp.get_stats_dailyGet daily outbound WhatsApp statisticsreadbird.whatsapp.get_stats_hourlyGet hourly outbound WhatsApp statisticsreadbird.whatsapp.get_stats_summaryGet aggregate outbound WhatsApp statisticsreadbird.whatsapp.get_suppressionGet a WhatsApp suppressionreadbird.whatsapp.get_templateGet a message templatereadbird.whatsapp.get_template_versionGet a template versionreadbird.whatsapp.get_template_version_languageGet a version's languagereadbird.whatsapp.list_agent_notificationsList the notifications sent to your agentsreadbird.whatsapp.list_business_accountsList WhatsApp Business Accountsreadbird.whatsapp.list_conversation_eventsList WhatsApp conversation eventsreadbird.whatsapp.list_conversation_messagesList messages in a WhatsApp conversationreadbird.whatsapp.list_conversationsList WhatsApp conversationsreadbird.whatsapp.list_group_join_requestsList a WhatsApp group's join requestsreadbird.whatsapp.list_groupsList WhatsApp groupsreadbird.whatsapp.list_keyword_rulesList WhatsApp keyword rulesreadbird.whatsapp.list_message_eventsList events for a WhatsApp messagereadbird.whatsapp.list_message_reaction_eventsList reaction events for a WhatsApp messagereadbird.whatsapp.list_messagesList WhatsApp messagesreadbird.whatsapp.list_number_eventsList WhatsApp number eventsreadbird.whatsapp.list_numbersList WhatsApp numbersreadbird.whatsapp.list_suppressionsList WhatsApp suppressionsreadbird.whatsapp.list_template_version_languagesList a version's languagesreadbird.whatsapp.list_template_versionsList a template's versionsreadbird.whatsapp.list_templatesList available message templatesreadbird.whatsapp.reject_group_join_requestsReject WhatsApp group join requestswritebird.whatsapp.rotate_group_invite_linkRotate a WhatsApp group's invite linkdestructivebird.whatsapp.send_read_receiptMark a WhatsApp message as readwritebird.whatsapp.submit_template_versionSubmit a template version for reviewwritebird.whatsapp.update_conversationUpdate a WhatsApp conversationwritebird.whatsapp.update_groupUpdate a WhatsApp groupwritebird.whatsapp.update_keyword_ruleUpdate a WhatsApp keyword rulewritebird.whatsapp.update_templateUpdate a message templatewritebird.whatsapp.upsert_message_reactionReact to a WhatsApp messagewritebird.whatsapp.upsert_template_languageUpsert a language's contentwrite
Amb53
bird.amb.create_business_accountCreate an Apple Messages for Business recordwritebird.amb.create_business_account_submissionSubmit an Apple Messages for Business business for reviewwritebird.amb.create_conversation_typingSend a typing indicatorwritebird.amb.create_messageSend a messagewritebird.amb.create_routing_ruleCreate an Apple Messages for Business routing rulewritebird.amb.create_suppressionCreate an Apple Messages for Business suppressionwritebird.amb.delete_business_accountDisconnect an Apple business accountdestructivebird.amb.delete_routing_ruleDelete an Apple Messages for Business routing ruledestructivebird.amb.delete_suppressionEnd an Apple Messages for Business suppressiondestructivebird.amb.get_business_accountGet an Apple Messages for Business recordreadbird.amb.get_channel_settingsGet Apple Messages for Business channel settingsreadbird.amb.get_conversationGet a conversationreadbird.amb.get_conversation_stats_dailyGet daily Apple Messages for Business conversation statisticsreadbird.amb.get_conversation_stats_hourlyGet hourly Apple Messages for Business conversation statisticsreadbird.amb.get_conversation_stats_summaryGet aggregate Apple Messages for Business conversation statisticsreadbird.amb.get_inbound_stats_by_businessGet inbound Apple Messages for Business statistics by businessreadbird.amb.get_inbound_stats_by_intentGet inbound Apple Messages for Business statistics by intentreadbird.amb.get_inbound_stats_dailyGet daily inbound Apple Messages for Business statisticsreadbird.amb.get_inbound_stats_hourlyGet hourly inbound Apple Messages for Business statisticsreadbird.amb.get_inbound_stats_summaryGet aggregate inbound Apple Messages for Business statisticsreadbird.amb.get_messageGet a messagereadbird.amb.get_routing_ruleGet an Apple Messages for Business routing rulereadbird.amb.get_stats_by_businessGet outbound Apple Messages for Business statistics by businessreadbird.amb.get_stats_by_categoryGet outbound Apple Messages for Business statistics by categoryreadbird.amb.get_stats_by_error_codeGet outbound Apple Messages for Business statistics by error codereadbird.amb.get_stats_by_groupGet outbound Apple Messages for Business statistics by groupreadbird.amb.get_stats_by_intentGet outbound Apple Messages for Business statistics by intentreadbird.amb.get_stats_by_message_kindGet outbound Apple Messages for Business statistics by message kindreadbird.amb.get_stats_by_tagGet outbound Apple Messages for Business statistics by tagreadbird.amb.get_stats_dailyGet daily outbound Apple Messages for Business statisticsreadbird.amb.get_stats_hourlyGet hourly outbound Apple Messages for Business statisticsreadbird.amb.get_stats_summaryGet aggregate outbound Apple Messages for Business statisticsreadbird.amb.get_suppressionGet an Apple Messages for Business suppressionreadbird.amb.get_templateGet an Apple Messages templatereadbird.amb.get_template_versionGet an Apple Messages template versionreadbird.amb.get_template_version_languageGet an Apple Messages template version's languagereadbird.amb.list_business_account_eventsList Apple business account eventsreadbird.amb.list_business_account_submissionsList Apple Messages for Business submissionsreadbird.amb.list_business_accountsList Apple Messages for Business recordsreadbird.amb.list_conversation_messagesList messages in a conversationreadbird.amb.list_conversationsList conversationsreadbird.amb.list_message_eventsList events for a messagereadbird.amb.list_messagesList messagesreadbird.amb.list_routing_rulesList Apple Messages for Business routing rulesreadbird.amb.list_suppressionsList Apple Messages for Business suppressionsreadbird.amb.list_template_version_languagesList an Apple Messages template version's languagesreadbird.amb.list_template_versionsList an Apple Messages template's versionsreadbird.amb.list_templatesList Apple Messages templatesreadbird.amb.restore_business_accountReconnect an Apple business accountwritebird.amb.update_business_accountUpdate an Apple Messages for Business recordwritebird.amb.update_channel_settingsUpdate Apple Messages for Business channel settingswritebird.amb.update_conversationUpdate a conversationwritebird.amb.update_routing_ruleUpdate an Apple Messages for Business routing rulewrite
SMS41
bird.sms.create_keyword_ruleCreate an SMS keyword rulewritebird.sms.create_messageCreate an SMS messagewritebird.sms.create_message_batchCreate a batch of SMS messageswritebird.sms.create_suppressionCreate an SMS suppressionwritebird.sms.create_workspace_senderCreate an SMS senderwritebird.sms.create_workspace_sender_registrationCreate a sender registration for a countrywritebird.sms.delete_keyword_ruleDelete an SMS keyword ruledestructivebird.sms.delete_suppressionDelete an SMS suppressiondestructivebird.sms.get_inbound_stats_by_countryGet inbound SMS statistics by countryreadbird.sms.get_inbound_stats_by_numberGet inbound SMS statistics by numberreadbird.sms.get_inbound_stats_by_operatorGet inbound SMS statistics by operatorreadbird.sms.get_inbound_stats_dailyGet daily inbound SMS statisticsreadbird.sms.get_inbound_stats_hourlyGet hourly inbound SMS statisticsreadbird.sms.get_inbound_stats_summaryGet aggregate inbound SMS statisticsreadbird.sms.get_keyword_ruleGet an SMS keyword rulereadbird.sms.get_messageGet an SMS messagereadbird.sms.get_stats_by_carrierGet outbound SMS statistics by carrierreadbird.sms.get_stats_by_categoryGet outbound SMS statistics by categoryreadbird.sms.get_stats_by_countryGet outbound SMS statistics by countryreadbird.sms.get_stats_by_error_codeGet outbound SMS statistics by error codereadbird.sms.get_stats_by_originatorGet outbound SMS statistics by originatorreadbird.sms.get_stats_by_statusGet outbound SMS statistics by statusreadbird.sms.get_stats_by_tagGet outbound SMS statistics by tagreadbird.sms.get_stats_dailyGet daily outbound SMS statisticsreadbird.sms.get_stats_hourlyGet hourly outbound SMS statisticsreadbird.sms.get_stats_summaryGet aggregate outbound SMS statisticsreadbird.sms.get_suppressionGet an SMS suppressionreadbird.sms.get_templateGet an SMS templatereadbird.sms.get_template_versionGet an SMS template versionreadbird.sms.get_template_version_languageGet an SMS template version's languagereadbird.sms.get_workspace_senderGet an SMS senderreadbird.sms.list_keyword_rulesList SMS keyword rulesreadbird.sms.list_message_eventsList events for an SMS messagereadbird.sms.list_messagesList SMS messagesreadbird.sms.list_suppressionsList SMS suppressionsreadbird.sms.list_template_version_languagesList an SMS template version's languagesreadbird.sms.list_template_versionsList an SMS template's versionsreadbird.sms.list_templatesList SMS templatesreadbird.sms.list_workspace_sender_requirementsList what a sender needs to sendreadbird.sms.list_workspace_sendersList your SMS sendersreadbird.sms.update_keyword_ruleUpdate an SMS keyword rulewrite
Esim38
bird.esim.cancel_orderCancel an unfunded orderdestructivebird.esim.cancel_recurring_subscriptionCancel recurring eSIM renewaldestructivebird.esim.create_assignmentAssign an eSIM to a personwritebird.esim.create_install_linkCreate a hosted install linkwritebird.esim.create_orderOrder a data packagewritebird.esim.create_recurring_subscriptionCreate a recurring eSIM subscriptionwritebird.esim.create_subscriberCreate an eSIM subscriberwritebird.esim.delete_install_linkRevoke a hosted install linkdestructivebird.esim.delete_packageRemove a data packagedestructivebird.esim.deliver_credentialsSend install credentials to the travelerwritebird.esim.getGet an eSIMreadbird.esim.get_assignmentGet an eSIM assignmentreadbird.esim.get_credentialsGet eSIM install credentialsreadbird.esim.get_offerGet an eSIM offerreadbird.esim.get_offer_checkout_optionsGet eSIM checkout optionsreadbird.esim.get_offer_recurrenceGet recurring eSIM offer termsreadbird.esim.get_offer_requirementsGet country identification requirements for an eSIM offerreadbird.esim.get_orderGet an orderreadbird.esim.get_packageGet a data packagereadbird.esim.get_recurring_subscriptionGet a recurring eSIM subscriptionreadbird.esim.get_settingsGet the eSIM settingsreadbird.esim.get_subscriberGet an eSIM subscriberreadbird.esim.get_zoneGet an eSIM coverage zonereadbird.esim.listList eSIMsreadbird.esim.list_compatible_offersList offers an eSIM can takereadbird.esim.list_deliveriesList an eSIM's credential deliveriesreadbird.esim.list_offersList eSIM offersreadbird.esim.list_ordersList ordersreadbird.esim.list_packagesList an eSIM's data packagesreadbird.esim.list_recurring_periodsList recurring eSIM periodsreadbird.esim.list_recurring_subscriptionsList recurring eSIM subscriptionsreadbird.esim.list_subscribersList eSIM subscribersreadbird.esim.list_zonesList eSIM coverage zonesreadbird.esim.releaseRelease an eSIMdestructivebird.esim.resumeResume an eSIMwritebird.esim.suspendSuspend an eSIMwritebird.esim.updateUpdate an eSIMwritebird.esim.update_settingsUpdate the eSIM settingswrite
Voice27
bird.voice.create_callCreate a callwritebird.voice.create_session_credentialCreate an SIP session credentialwritebird.voice.create_trunkCreate an SIP trunkwritebird.voice.create_trunk_gatewayCreate a gateway on an SIP trunkwritebird.voice.create_verified_numberCreate a verified numberwritebird.voice.delete_trunkDelete an SIP trunkdestructivebird.voice.delete_trunk_gatewayDelete an SIP trunk gatewaydestructivebird.voice.delete_verified_numberDelete a verified numberdestructivebird.voice.get_legGet a legreadbird.voice.get_numberGet a voice numberreadbird.voice.get_settingsGet the voice settingsreadbird.voice.get_trunkGet an SIP trunkreadbird.voice.get_trunk_gatewayGet an SIP trunk gatewayreadbird.voice.get_verified_numberGet a verified numberreadbird.voice.list_destinationsList Voice destination countriesreadbird.voice.list_legsList legsreadbird.voice.list_numbersList the numbers you can use for voicereadbird.voice.list_trunk_gatewaysList an SIP trunk's gatewaysreadbird.voice.list_trunksList SIP trunksreadbird.voice.list_verified_numbersList verified numbersreadbird.voice.update_destinationsUpdate enabled Voice destination countrieswritebird.voice.update_numberUpdate a voice numberwritebird.voice.update_settingsUpdate the voice settingswritebird.voice.update_trunkUpdate an SIP trunkwritebird.voice.update_trunk_gatewayUpdate an SIP trunk gatewaywritebird.voice.update_verified_numberUpdate a verified numberwritebird.voice.verify_verified_numberVerify number ownershipwrite
Realtime16
bird.realtime.create_appCreate a Realtime appwritebird.realtime.create_app_keyCreate a Realtime app keywritebird.realtime.delete_appDelete a Realtime appdestructivebird.realtime.disconnect_app_memberDisconnect a memberdestructivebird.realtime.get_appGet a Realtime appreadbird.realtime.get_app_channelGet a Realtime channelreadbird.realtime.list_app_channel_membersList members on a presence channelreadbird.realtime.list_app_channelsList Realtime channelsreadbird.realtime.list_app_keysList a Realtime app's keysreadbird.realtime.list_appsList Realtime appsreadbird.realtime.list_regionsList Realtime regionsreadbird.realtime.publish_app_batchPublish a batch of Realtime eventswritebird.realtime.publish_app_eventPublish a Realtime eventwritebird.realtime.revoke_app_keyRevoke a Realtime app keydestructivebird.realtime.send_app_member_eventSend an event to a memberwritebird.realtime.update_appUpdate a Realtime appwrite
Audiences11
bird.audiences.assign_contactsAssign contacts to an audiencewritebird.audiences.createCreate an audiencewritebird.audiences.deleteDelete an audiencedestructivebird.audiences.getGet an audiencereadbird.audiences.get_membershipGet audience membershipreadbird.audiences.get_membership_statisticsGet audience membership statisticsreadbird.audiences.listList audiencesreadbird.audiences.list_contactsList an audience's contactsreadbird.audiences.unassign_contactUnassign a contact from an audiencedestructivebird.audiences.unassign_contactsUnassign contacts from an audiencedestructivebird.audiences.updateUpdate an audiencewrite
Compliance11
bird.compliance.create_identityCreate an identitywritebird.compliance.create_workspace_submissionCreate a registration submissionwritebird.compliance.delete_attachmentDelete a registration attachmentdestructivebird.compliance.delete_identityDelete an identitydestructivebird.compliance.get_identityGet an identityreadbird.compliance.get_workspace_requirementsGet what a registration needsreadbird.compliance.get_workspace_submissionGet a submissionreadbird.compliance.list_attachmentsList registration attachmentsreadbird.compliance.list_identitiesList identitiesreadbird.compliance.update_identityUpdate an identity namewritebird.compliance.update_workspace_submissionUpdate compliance answerswrite
Numbers10
bird.numbers.cancelCancel a dedicated numberdestructivebird.numbers.create_orderCreate a number orderwritebird.numbers.getGet an allocated numberreadbird.numbers.get_availableGet an available phone numberreadbird.numbers.get_orderGet a number orderreadbird.numbers.listList your allocated numbersreadbird.numbers.list_availableList available phone numbersreadbird.numbers.list_ordersList your number ordersreadbird.numbers.releaseRelease a dedicated numberdestructivebird.numbers.updateUpdate an allocated numberwrite
Webhooks9
bird.webhooks.createCreate a webhook endpointwritebird.webhooks.create_replayReplay failed deliverieswritebird.webhooks.deleteDelete a webhook endpointdestructivebird.webhooks.getGet a webhook endpointreadbird.webhooks.listList webhook endpointsreadbird.webhooks.list_attemptsList delivery attemptsreadbird.webhooks.rotate_secretRotate webhook signing secretdestructivebird.webhooks.testTest a webhook with a sample eventwritebird.webhooks.updateUpdate a webhook endpointwrite
Contacts7
bird.contacts.createCreate a contactwritebird.contacts.create_batchCreate or update contacts in bulkwritebird.contacts.deleteDelete a contactdestructivebird.contacts.getGet a contactreadbird.contacts.listList contactsreadbird.contacts.list_preferencesList a contact's preferencesreadbird.contacts.updateUpdate a contactwrite
Contact properties6
bird.contact_properties.archiveArchive a contact propertywritebird.contact_properties.createCreate a contact propertywritebird.contact_properties.getGet a contact propertyreadbird.contact_properties.listList contact propertiesreadbird.contact_properties.unarchiveUnarchive a contact propertywritebird.contact_properties.updateUpdate a contact propertywrite
Asset folders5
bird.asset_folders.createCreate a folder in the media librarywritebird.asset_folders.deleteDelete a folder and move its contents updestructivebird.asset_folders.getGet a media-library folder by IDreadbird.asset_folders.listList workspace media-library foldersreadbird.asset_folders.updateRename or move a media-library folderwrite
Assets5
bird.assets.deleteRemove an asset from the media librarydestructivebird.assets.getGet a media-library asset by IDreadbird.assets.listList workspace media-library assetsreadbird.assets.list_referencesList editable resources that use an assetreadbird.assets.updateUpdate asset metadata or folder placementwrite
Lookup5
bird.lookup.get_email_lookupGet an email address lookup by URLreadbird.lookup.get_phone_number_lookupGet a phone number lookup by URLreadbird.lookup.lookup_emailCreate an email address lookupwritebird.lookup.lookup_email_batchCreate a batch of email address lookupswritebird.lookup.lookup_phone_numberCreate a phone number lookupwrite
Preferences4
bird.preferences.createRecord a preferencewritebird.preferences.deleteDelete a preferencedestructivebird.preferences.getGet a preferencereadbird.preferences.listList preferencesread
Organization3
bird.organization.create_workspaceCreate a workspacewritebird.organization.get_billing_resolved_priceGet the effective price for a productreadbird.organization.list_billing_walletsList walletsread
Verify3
bird.verify.create_verificationCreate a verificationwritebird.verify.create_verification_checkCreate a verification passcode checkwritebird.verify.create_verification_next_channelCreate the next verification channel attemptwrite
Docs2
bird.docs.get_pageGet a documentation pagereadbird.docs.get_searchGet documentation search resultsread
Workspace2
bird.workspace.get_currentGet the current workspacereadbird.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.