Connectors · Email & messaging
Braze MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Braze and the rest of your systems. It gives your agent 146 Braze actions (63 reads, 65 writes and 18 that wait for a confirmation) and holds the Braze credential itself, so the agent never does. It paces Braze'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: "braze.segments.list", intent: "check which Braze account is connected"}# Export segment list · read · 1 upstream call- 146actionsin one signed file
- 63readlook, never change
- 65writecreate and update
- 18wait for a yesdestructive, confirmed first
Set up
Connect Braze 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 Braze.
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_keyBraze REST API keyhostWhere your Braze lives: your host
account { op: "connections.requirements", service: "braze" } # 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: "braze.segments.list" }# export segment list · read · 1 upstream callcheck { action: "braze.messages.send", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Braze 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
host- Limits we pace to
- 250,000 calls an hour, per connection
- API covered
- Braze REST API (docs reference, fetched 2026-10-22), at your Braze instance's API base URL, which you enter when connecting
- Built from
- Braze's documentation, read 22 October 2026braze.comdocumenter.getpostman.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 63 of 63 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 2, so ask can line Braze up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Braze.
146 actions in 38 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 63readlook, never change
- 65writecreate and update
- 18destructivewait for a confirmation
Users
122 read · 8 write · 2 destructive
Export user profile by identifier · Export user profile by segment · Export user profile by Global Control Group · Identify users
Catalog items
102 read · 6 write · 2 destructive
Create catalog item · Create multiple catalog items · List multiple catalog item details · List catalog item details
Canvas
94 read · 4 write · 1 destructive
Duplicate Canvases using the API · Export Canvas list · Schedule API-triggered Canvases · Send Canvas messages using API-triggered delivery
Campaigns
83 read · 4 write · 1 destructive
Duplicate campaigns using the API · Export campaigns list · Schedule API-triggered campaigns · Send campaign messages using API-triggered delivery
Email
72 read · 3 write · 2 destructive
Query list of unsubscribed email addresses · Query hard bounced emails · Blacklist emails · Blocklist emails
Data objects
62 read · 3 write · 1 destructive
Create data object · List data objects · Get data object · Replace data object
Object relationships
51 read · 3 write · 1 destructive
Create object relationship · List object relationships · Replace object relationship · Delete object relationship
Preference centers
53 read · 2 write · 0 destructive
Create preference center · List preference centers · Generate preference center URL · View details for preference center
30 more areas · 84 actions
- User relationships 5
- Content blocks 4
- Data object types 4
- Email template translations 4
- Email templates 4
- Kpi 4
- Messages 4
- SDK authentication keys 4
- Segments 4
- Subscription groups 4
- Campaign translations 3
- Canvas translations 3
- Catalogs 3
- Cdi integrations 3
- Content block translations 3
- Events 3
- Purchases 3
- Webhook template translations 3
- Catalog fields 2
- Catalog selections 2
- Live activities 2
- Media library 2
- Sends 2
- SMS 2
- User aliases 2
- Apps 1
- Custom attributes 1
- Scheduled broadcasts 1
- Sessions 1
- Transactional emails 1
Top actions
The Braze API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
braze.segments.listExport segment list | Use this endpoint to export a list of segments, each of which includes its name, Segment API identifier, and whether it has analytics tracking enabled. | read | this connector |
braze.canvas.listExport Canvas list | Use this endpoint to export a list of Canvases, including the name, Canvas API identifier and associated tags. | read | this connector |
braze.catalogs.listList catalogs | Use this endpoint to return a list of catalogs in a workspace. | read | this connector |
braze.messages.sendSend messages immediately using the API only | Use this endpoint to send immediate messages to designated users using the Braze API. | write | this connector |
braze.campaigns.listExport campaigns list | Use this endpoint to export a list of campaigns, each of which will include its name, campaign API identifier, whether it is an API campaign, and tags… | read | this connector |
braze.catalogs.createCreate catalog | Use this endpoint to create a catalog. | write | this connector |
braze.canvas.duplicateDuplicate Canvases using the API | Use this endpoint to duplicate Canvases. This API endpoint is similar to duplicating Canvases in the Braze dashboard. | write | this connector |
braze.messages.scheduleCreate scheduled messages | Use this endpoint to schedule a campaign, Canvas, or other message to be sent at a designated time and provides you with an identifier to reference that… | write | this connector |
braze.catalog_items.listList multiple catalog item details | Use this endpoint to return multiple catalog items and their content. | read | this connector |
braze.campaigns.duplicateDuplicate campaigns using the API | Use this endpoint to duplicate campaigns. This API endpoint is similar to duplicating campaigns in the Braze dashboard. | write | this connector |
braze.catalog_items.createCreate catalog item | Use this endpoint to create an item in your catalog. | write | this connector |
braze.users.deleteDelete users | Use this endpoint to delete any user profile by specifying a known user identifier. | destructive | this connector |
Try it
Prompts to paste into Claude.
Each one names the Braze actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Export segment list in Braze and tell me what stands out.
calls
braze.segments.list - Writewrite
Send messages immediately using the API only in Braze. Show me exactly what you will send before you save it.
calls
braze.messages.send
Governance for Braze
Destructive actions wait for a yes.
18 Braze actions are destructive. These are all of them:
- Delete users
braze.users.delete - Delete catalog
braze.catalogs.delete - Delete a catalog item
braze.catalog_items.delete - Delete scheduled messages
braze.messages.delete_schedule - Delete multiple catalog items
braze.catalog_items.delete_many - Remove external ID
braze.users.remove_external_ids - Delete scheduled API-triggered Canvases
braze.canvas.delete_trigger_schedule - Delete scheduled API-triggered campaigns
braze.campaigns.delete_trigger_schedule - Cancel exports by segment
braze.segments.cancel_export - Remove email addresses from spam list
braze.email.remove_spam - Delete data object
braze.data_objects.delete - Delete catalog field
braze.catalog_fields.delete - Delete catalog selection
braze.catalog_selections.delete - Remove hard bounced emails
braze.email.remove_hard_bounces - Delete user relationship
braze.user_relationships.delete - Remove invalid phone numbers
braze.sms.remove_invalid_numbers - Delete object relationship
braze.object_relationships.delete - Delete SDK Authentication key
braze.sdk_authentication_keys.delete
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 users?
intent: the user asked me to delete users
account { op: "keys.create", name: "braze-agent", allowed_actions: ["braze.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "braze.users.delete", approver: "[email protected]" }, { match: "braze.catalogs.delete", approver: "[email protected]" }, { match: "braze.catalog_items.delete", approver: "[email protected]" } ]}Cost
What Braze costs on actionlake.
Every Braze action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Braze 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 146 Braze actions
- 146actions pageeach page of a long list is one call
- 63reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Braze action.
146 actions by area: the id your agent calls, what it does, and its effect.
Users12
braze.users.deleteDelete usersdestructivebraze.users.export_by_identifierExport user profile by identifierreadbraze.users.export_by_segmentExport user profile by segmentwritebraze.users.export_global_control_groupExport user profile by Global Control Groupwritebraze.users.identifyIdentify userswritebraze.users.mergeMerge userswritebraze.users.remove_external_idsRemove external IDdestructivebraze.users.rename_external_idsRename external IDwritebraze.users.trackCreate and update userswritebraze.users.track_bulkCreate and update users (bulk)writebraze.users.track_statusLook up request processing statusreadbraze.users.track_syncCreate and update users (synchronous)write
Catalog items10
braze.catalog_items.createCreate catalog itemwritebraze.catalog_items.create_manyCreate multiple catalog itemswritebraze.catalog_items.deleteDelete a catalog itemdestructivebraze.catalog_items.delete_manyDelete multiple catalog itemsdestructivebraze.catalog_items.editEdit catalog itemwritebraze.catalog_items.edit_manyEdit multiple catalog itemswritebraze.catalog_items.getList catalog item detailsreadbraze.catalog_items.listList multiple catalog item detailsreadbraze.catalog_items.replaceReplace catalog itemwritebraze.catalog_items.replace_manyReplace catalog itemswrite
Canvas9
braze.canvas.data_seriesExport Canvas data series analyticsreadbraze.canvas.data_summaryExport Canvas data summary analyticsreadbraze.canvas.delete_trigger_scheduleDelete scheduled API-triggered Canvasesdestructivebraze.canvas.duplicateDuplicate Canvases using the APIwritebraze.canvas.getExport Canvas detailsreadbraze.canvas.listExport Canvas listreadbraze.canvas.schedule_triggerSchedule API-triggered Canvaseswritebraze.canvas.trigger_sendSend Canvas messages using API-triggered deliverywritebraze.canvas.update_trigger_scheduleUpdate scheduled API-triggered Canvaseswrite
Campaigns8
braze.campaigns.data_seriesExport campaign analyticsreadbraze.campaigns.delete_trigger_scheduleDelete scheduled API-triggered campaignsdestructivebraze.campaigns.duplicateDuplicate campaigns using the APIwritebraze.campaigns.getExport campaign detailsreadbraze.campaigns.listExport campaigns listreadbraze.campaigns.schedule_triggerSchedule API-triggered campaignswritebraze.campaigns.trigger_sendSend campaign messages using API-triggered deliverywritebraze.campaigns.update_trigger_scheduleUpdate scheduled API-triggered campaignswrite
Email7
braze.email.blacklistBlacklist emailswritebraze.email.blocklistBlocklist emailswritebraze.email.list_hard_bouncesQuery hard bounced emailsreadbraze.email.list_unsubscribesQuery list of unsubscribed email addressesreadbraze.email.remove_hard_bouncesRemove hard bounced emailsdestructivebraze.email.remove_spamRemove email addresses from spam listdestructivebraze.email.update_subscription_statusChange email subscription statuswrite
Data objects6
braze.data_objects.createCreate data objectwritebraze.data_objects.deleteDelete data objectdestructivebraze.data_objects.getGet data objectreadbraze.data_objects.listList data objectsreadbraze.data_objects.replaceReplace data objectwritebraze.data_objects.updateUpdate data objectwrite
Object relationships5
braze.object_relationships.createCreate object relationshipwritebraze.object_relationships.deleteDelete object relationshipdestructivebraze.object_relationships.listList object relationshipsreadbraze.object_relationships.replaceReplace object relationshipwritebraze.object_relationships.updateUpdate object relationshipwrite
Preference centers5
braze.preference_centers.createCreate preference centerwritebraze.preference_centers.generate_urlGenerate preference center URLreadbraze.preference_centers.getView details for preference centerreadbraze.preference_centers.listList preference centersreadbraze.preference_centers.updateUpdate preference centerwrite
User relationships5
braze.user_relationships.createCreate user relationshipwritebraze.user_relationships.deleteDelete user relationshipdestructivebraze.user_relationships.listList user relationshipsreadbraze.user_relationships.replaceReplace user relationshipwritebraze.user_relationships.updateUpdate user relationshipwrite
Content blocks4
braze.content_blocks.createCreate Content Blockwritebraze.content_blocks.getSee Content Block informationreadbraze.content_blocks.listList available Content Blocksreadbraze.content_blocks.updateUpdate Content Blockwrite
Data object types4
braze.data_object_types.getGet data object typereadbraze.data_object_types.listList data object typesreadbraze.data_object_types.list_object_relationship_typesList object relationship typesreadbraze.data_object_types.list_user_relationship_typesList user relationship typesread
Email template translations4
braze.email_template_translations.get_localeView a specific translation and locale for email template endpointreadbraze.email_template_translations.get_sourceView the source translations for an email templatereadbraze.email_template_translations.listView all translations and locales for an email templatereadbraze.email_template_translations.updateUpdate translations for an email templatewrite
Email templates4
braze.email_templates.createCreate email templatewritebraze.email_templates.getSee email template informationreadbraze.email_templates.listList available email templatesreadbraze.email_templates.updateUpdate existing email templateswrite
Kpi4
braze.kpi.dau_seriesExport daily active users by datereadbraze.kpi.mau_seriesExport monthly active users for last 30 daysreadbraze.kpi.new_users_seriesExport daily new users by datereadbraze.kpi.uninstalls_seriesExport KPIs for daily app uninstalls by dateread
Messages4
braze.messages.delete_scheduleDelete scheduled messagesdestructivebraze.messages.scheduleCreate scheduled messageswritebraze.messages.sendSend messages immediately using the API onlywritebraze.messages.update_scheduleUpdate scheduled messageswrite
SDK authentication keys4
braze.sdk_authentication_keys.createCreate SDK Authentication keywritebraze.sdk_authentication_keys.deleteDelete SDK Authentication keydestructivebraze.sdk_authentication_keys.listList SDK Authentication keysreadbraze.sdk_authentication_keys.set_primarySet primary SDK Authentication keywrite
Segments4
braze.segments.cancel_exportCancel exports by segmentdestructivebraze.segments.data_seriesExport segment analyticsreadbraze.segments.getExport segment detailsreadbraze.segments.listExport segment listread
Subscription groups4
braze.subscription_groups.get_user_statusList user’s subscription group statusreadbraze.subscription_groups.list_user_groupsList user’s subscription groupsreadbraze.subscription_groups.set_user_statusUpdate user’s subscription group statuswritebraze.subscription_groups.set_user_status_v2Update user’s subscription group status (V2)write
Campaign translations3
braze.campaign_translations.get_sourceView default source values for a campaign’s translation tagsreadbraze.campaign_translations.listView all translations for a campaignreadbraze.campaign_translations.updateUpdate translation in a campaignwrite
Canvas translations3
braze.canvas_translations.get_sourceView default source values for a canvas’s translation tagsreadbraze.canvas_translations.listView translation for a Canvasreadbraze.canvas_translations.updateUpdate translation in a Canvaswrite
Catalogs3
braze.catalogs.createCreate catalogwritebraze.catalogs.deleteDelete catalogdestructivebraze.catalogs.listList catalogsread
Cdi integrations3
braze.cdi_integrations.listList integrationsreadbraze.cdi_integrations.list_job_sync_statusList job sync statusreadbraze.cdi_integrations.syncTrigger a syncwrite
Content block translations3
braze.content_block_translations.get_sourceView default source values for a Content Block’s translation tagsreadbraze.content_block_translations.listView all translations for a Content Blockreadbraze.content_block_translations.updateUpdate translation in a Content Blockwrite
Events3
braze.events.data_seriesExport custom events analyticsreadbraze.events.listExport custom eventsreadbraze.events.list_namesExport custom events listread
Purchases3
braze.purchases.list_productsExport product IDsreadbraze.purchases.quantity_seriesExport number of purchasesreadbraze.purchases.revenue_seriesExport revenue data by timeread
Webhook template translations3
braze.webhook_template_translations.get_sourceView source translations for a webhook templatereadbraze.webhook_template_translations.listView translations for a webhook templatereadbraze.webhook_template_translations.updateUpdate translations for a webhook templatewrite
Catalog fields2
braze.catalog_fields.createCreate catalog fieldswritebraze.catalog_fields.deleteDelete catalog fielddestructive
Catalog selections2
braze.catalog_selections.createCreate catalog selectionwritebraze.catalog_selections.deleteDelete catalog selectiondestructive
Live activities2
braze.live_activities.startStart Live Activitywritebraze.live_activities.updateUpdate Live Activitywrite
Media library2
braze.media_library.createUpload an asset to the media librarywritebraze.media_library.replace_fileReplace an asset in the media librarywrite
Sends2
braze.sends.create_idCreate send IDswritebraze.sends.data_seriesExport send analyticsread
SMS2
braze.sms.list_invalid_numbersQuery invalid phone numbersreadbraze.sms.remove_invalid_numbersRemove invalid phone numbersdestructive
User aliases2
braze.user_aliases.createCreate new user aliaswritebraze.user_aliases.updateUpdate user aliaswrite
Apps1
braze.apps.update_push_credentialsUpdate push credentialswrite
Custom attributes1
braze.custom_attributes.listExport custom attributesread
Scheduled broadcasts1
braze.scheduled_broadcasts.listList upcoming scheduled campaigns and Canvasesread
Sessions1
braze.sessions.data_seriesExport app session by timeread
Transactional emails1
braze.transactional_emails.sendSend transactional emails using API-triggered deliverywrite
Questions
The Braze MCP server, answered.
Is there a Braze MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 146 Braze actions across users, catalog items, canvas and campaigns, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Braze.
What do I need to connect Braze?
Braze REST API key. Plus your host. The free call account { op: "connections.requirements", service: "braze" } lists exactly what to paste.
Can an AI agent delete or change things in Braze?
Only if its key allows it, and only with an explicit confirmation. 18 Braze actions are destructive, including delete users, delete catalog and delete a catalog item. 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 Braze API limit?
actionlake paces every call to the limits in the Braze service file: 250,000 calls an hour per connection. Repeated reads are answered from cache (63 Braze actions can be), which never reaches Braze.
What does a Braze action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (146 Braze actions page). Cache hits, searches, dry runs and calls Braze 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 Braze API does it cover?
The Braze REST API (docs reference, fetched 2026-10-22) at your Braze instance's API base URL, which you enter when connecting. It is built from Braze's documentation as read on 22 October 2026. 146 actions in 38 areas, each one in the signed service file (version 1.0.0).
Does actionlake keep my Braze 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 Braze 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 Braze today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.