---
title: "Braze MCP server for AI agents - actionlake"
description: "Give Claude 146 Braze actions through one MCP server: users, catalog items, canvas. Your agent never holds the credential. 100,000 calls a month free."
canonical: https://actionlake.com/connectors/braze
updated: 2026-10-22
---

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.

[Connect Braze free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

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: "braze.segments.list",
  intent: "check which Braze account is connected"
}
# Export segment list · read · 1 upstream call
```

- 146 actions in one signed file
- 63 read look, never change
- 65 write create and update
- 18 wait for a yes destructive, confirmed first

Set up

## Connect Braze 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 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_key` Braze REST API key
   - `host` Where your Braze lives: your host
   ```
   account { op: "connections.requirements", service: "braze" }
   # 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: "braze.segments.list" }
   # export segment list · read · 1 upstream call
   check { 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 2026[braze.com](https://www.braze.com/docs/api/home/) [documenter.getpostman.com](https://documenter.getpostman.com/view/4689407/SVYrsdsG)

**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.

- **63** read look, never change
- **65** write create and update
- **18** destructive wait for a confirmation

1. ### Users
   12
   2 read · 8 write · 2 destructive
   Export user profile by identifier · Export user profile by segment · Export user profile by Global Control Group · Identify users
2. ### Catalog items
   10
   2 read · 6 write · 2 destructive
   Create catalog item · Create multiple catalog items · List multiple catalog item details · List catalog item details
3. ### Canvas
   9
   4 read · 4 write · 1 destructive
   Duplicate Canvases using the API · Export Canvas list · Schedule API-triggered Canvases · Send Canvas messages using API-triggered delivery
4. ### Campaigns
   8
   3 read · 4 write · 1 destructive
   Duplicate campaigns using the API · Export campaigns list · Schedule API-triggered campaigns · Send campaign messages using API-triggered delivery
5. ### Email
   7
   2 read · 3 write · 2 destructive
   Query list of unsubscribed email addresses · Query hard bounced emails · Blacklist emails · Blocklist emails
6. ### Data objects
   6
   2 read · 3 write · 1 destructive
   Create data object · List data objects · Get data object · Replace data object
7. ### Object relationships
   5
   1 read · 3 write · 1 destructive
   Create object relationship · List object relationships · Replace object relationship · Delete object relationship
8. ### Preference centers
   5
   3 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.list` Export 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.list` Export 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.list` List catalogs | Use this endpoint to return a list of catalogs in a workspace. | read | this connector |
| `braze.messages.send` Send 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.list` Export 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.create` Create catalog | Use this endpoint to create a catalog. | write | this connector |
| `braze.canvas.duplicate` Duplicate 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.schedule` Create 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.list` List multiple catalog item details | Use this endpoint to return multiple catalog items and their content. | read | this connector |
| `braze.campaigns.duplicate` Duplicate 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.create` Create catalog item | Use this endpoint to create an item in your catalog. | write | this connector |
| `braze.users.delete` Delete 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.

1. Read read
   Export segment list in Braze and tell me what stands out.
   calls `braze.segments.list`
2. Write write
   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.

do braze.users.delete confirm_policy: **human**

Delete users?

**intent:** the user asked me to delete users

run suspended · waiting for a named person · key _braze-agent_ cannot confirm itself

In the console, or from an emailed signed link.

a key for this connector

```
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: "lead@example.com" },
    { match: "braze.catalogs.delete", approver: "lead@example.com" },
    { match: "braze.catalog_items.delete", approver: "lead@example.com" }
  ]
}
```

Illustrative. Scoped to Braze only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

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.

- 1 upstream call per action all 146 Braze actions
- 146 actions page each page of a long list is one call
- 63 reads can be cached a cache hit costs nothing
- 100,000 calls a month, free paid plans from US$49 a month for 250,000

[See pricing](https://actionlake.com/pricing)

Action index

## Every Braze action.

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

**Users 12**

- `braze.users.delete` Delete users destructive
- `braze.users.export_by_identifier` Export user profile by identifier read
- `braze.users.export_by_segment` Export user profile by segment write
- `braze.users.export_global_control_group` Export user profile by Global Control Group write
- `braze.users.identify` Identify users write
- `braze.users.merge` Merge users write
- `braze.users.remove_external_ids` Remove external ID destructive
- `braze.users.rename_external_ids` Rename external ID write
- `braze.users.track` Create and update users write
- `braze.users.track_bulk` Create and update users (bulk) write
- `braze.users.track_status` Look up request processing status read
- `braze.users.track_sync` Create and update users (synchronous) write

**Catalog items 10**

- `braze.catalog_items.create` Create catalog item write
- `braze.catalog_items.create_many` Create multiple catalog items write
- `braze.catalog_items.delete` Delete a catalog item destructive
- `braze.catalog_items.delete_many` Delete multiple catalog items destructive
- `braze.catalog_items.edit` Edit catalog item write
- `braze.catalog_items.edit_many` Edit multiple catalog items write
- `braze.catalog_items.get` List catalog item details read
- `braze.catalog_items.list` List multiple catalog item details read
- `braze.catalog_items.replace` Replace catalog item write
- `braze.catalog_items.replace_many` Replace catalog items write

**Canvas 9**

- `braze.canvas.data_series` Export Canvas data series analytics read
- `braze.canvas.data_summary` Export Canvas data summary analytics read
- `braze.canvas.delete_trigger_schedule` Delete scheduled API-triggered Canvases destructive
- `braze.canvas.duplicate` Duplicate Canvases using the API write
- `braze.canvas.get` Export Canvas details read
- `braze.canvas.list` Export Canvas list read
- `braze.canvas.schedule_trigger` Schedule API-triggered Canvases write
- `braze.canvas.trigger_send` Send Canvas messages using API-triggered delivery write
- `braze.canvas.update_trigger_schedule` Update scheduled API-triggered Canvases write

**Campaigns 8**

- `braze.campaigns.data_series` Export campaign analytics read
- `braze.campaigns.delete_trigger_schedule` Delete scheduled API-triggered campaigns destructive
- `braze.campaigns.duplicate` Duplicate campaigns using the API write
- `braze.campaigns.get` Export campaign details read
- `braze.campaigns.list` Export campaigns list read
- `braze.campaigns.schedule_trigger` Schedule API-triggered campaigns write
- `braze.campaigns.trigger_send` Send campaign messages using API-triggered delivery write
- `braze.campaigns.update_trigger_schedule` Update scheduled API-triggered campaigns write

**Email 7**

- `braze.email.blacklist` Blacklist emails write
- `braze.email.blocklist` Blocklist emails write
- `braze.email.list_hard_bounces` Query hard bounced emails read
- `braze.email.list_unsubscribes` Query list of unsubscribed email addresses read
- `braze.email.remove_hard_bounces` Remove hard bounced emails destructive
- `braze.email.remove_spam` Remove email addresses from spam list destructive
- `braze.email.update_subscription_status` Change email subscription status write

**Data objects 6**

- `braze.data_objects.create` Create data object write
- `braze.data_objects.delete` Delete data object destructive
- `braze.data_objects.get` Get data object read
- `braze.data_objects.list` List data objects read
- `braze.data_objects.replace` Replace data object write
- `braze.data_objects.update` Update data object write

**Object relationships 5**

- `braze.object_relationships.create` Create object relationship write
- `braze.object_relationships.delete` Delete object relationship destructive
- `braze.object_relationships.list` List object relationships read
- `braze.object_relationships.replace` Replace object relationship write
- `braze.object_relationships.update` Update object relationship write

**Preference centers 5**

- `braze.preference_centers.create` Create preference center write
- `braze.preference_centers.generate_url` Generate preference center URL read
- `braze.preference_centers.get` View details for preference center read
- `braze.preference_centers.list` List preference centers read
- `braze.preference_centers.update` Update preference center write

**User relationships 5**

- `braze.user_relationships.create` Create user relationship write
- `braze.user_relationships.delete` Delete user relationship destructive
- `braze.user_relationships.list` List user relationships read
- `braze.user_relationships.replace` Replace user relationship write
- `braze.user_relationships.update` Update user relationship write

**Content blocks 4**

- `braze.content_blocks.create` Create Content Block write
- `braze.content_blocks.get` See Content Block information read
- `braze.content_blocks.list` List available Content Blocks read
- `braze.content_blocks.update` Update Content Block write

**Data object types 4**

- `braze.data_object_types.get` Get data object type read
- `braze.data_object_types.list` List data object types read
- `braze.data_object_types.list_object_relationship_types` List object relationship types read
- `braze.data_object_types.list_user_relationship_types` List user relationship types read

**Email template translations 4**

- `braze.email_template_translations.get_locale` View a specific translation and locale for email template endpoint read
- `braze.email_template_translations.get_source` View the source translations for an email template read
- `braze.email_template_translations.list` View all translations and locales for an email template read
- `braze.email_template_translations.update` Update translations for an email template write

**Email templates 4**

- `braze.email_templates.create` Create email template write
- `braze.email_templates.get` See email template information read
- `braze.email_templates.list` List available email templates read
- `braze.email_templates.update` Update existing email templates write

**Kpi 4**

- `braze.kpi.dau_series` Export daily active users by date read
- `braze.kpi.mau_series` Export monthly active users for last 30 days read
- `braze.kpi.new_users_series` Export daily new users by date read
- `braze.kpi.uninstalls_series` Export KPIs for daily app uninstalls by date read

**Messages 4**

- `braze.messages.delete_schedule` Delete scheduled messages destructive
- `braze.messages.schedule` Create scheduled messages write
- `braze.messages.send` Send messages immediately using the API only write
- `braze.messages.update_schedule` Update scheduled messages write

**SDK authentication keys 4**

- `braze.sdk_authentication_keys.create` Create SDK Authentication key write
- `braze.sdk_authentication_keys.delete` Delete SDK Authentication key destructive
- `braze.sdk_authentication_keys.list` List SDK Authentication keys read
- `braze.sdk_authentication_keys.set_primary` Set primary SDK Authentication key write

**Segments 4**

- `braze.segments.cancel_export` Cancel exports by segment destructive
- `braze.segments.data_series` Export segment analytics read
- `braze.segments.get` Export segment details read
- `braze.segments.list` Export segment list read

**Subscription groups 4**

- `braze.subscription_groups.get_user_status` List user’s subscription group status read
- `braze.subscription_groups.list_user_groups` List user’s subscription groups read
- `braze.subscription_groups.set_user_status` Update user’s subscription group status write
- `braze.subscription_groups.set_user_status_v2` Update user’s subscription group status (V2) write

**Campaign translations 3**

- `braze.campaign_translations.get_source` View default source values for a campaign’s translation tags read
- `braze.campaign_translations.list` View all translations for a campaign read
- `braze.campaign_translations.update` Update translation in a campaign write

**Canvas translations 3**

- `braze.canvas_translations.get_source` View default source values for a canvas’s translation tags read
- `braze.canvas_translations.list` View translation for a Canvas read
- `braze.canvas_translations.update` Update translation in a Canvas write

**Catalogs 3**

- `braze.catalogs.create` Create catalog write
- `braze.catalogs.delete` Delete catalog destructive
- `braze.catalogs.list` List catalogs read

**Cdi integrations 3**

- `braze.cdi_integrations.list` List integrations read
- `braze.cdi_integrations.list_job_sync_status` List job sync status read
- `braze.cdi_integrations.sync` Trigger a sync write

**Content block translations 3**

- `braze.content_block_translations.get_source` View default source values for a Content Block’s translation tags read
- `braze.content_block_translations.list` View all translations for a Content Block read
- `braze.content_block_translations.update` Update translation in a Content Block write

**Events 3**

- `braze.events.data_series` Export custom events analytics read
- `braze.events.list` Export custom events read
- `braze.events.list_names` Export custom events list read

**Purchases 3**

- `braze.purchases.list_products` Export product IDs read
- `braze.purchases.quantity_series` Export number of purchases read
- `braze.purchases.revenue_series` Export revenue data by time read

**Webhook template translations 3**

- `braze.webhook_template_translations.get_source` View source translations for a webhook template read
- `braze.webhook_template_translations.list` View translations for a webhook template read
- `braze.webhook_template_translations.update` Update translations for a webhook template write

**Catalog fields 2**

- `braze.catalog_fields.create` Create catalog fields write
- `braze.catalog_fields.delete` Delete catalog field destructive

**Catalog selections 2**

- `braze.catalog_selections.create` Create catalog selection write
- `braze.catalog_selections.delete` Delete catalog selection destructive

**Live activities 2**

- `braze.live_activities.start` Start Live Activity write
- `braze.live_activities.update` Update Live Activity write

**Media library 2**

- `braze.media_library.create` Upload an asset to the media library write
- `braze.media_library.replace_file` Replace an asset in the media library write

**Sends 2**

- `braze.sends.create_id` Create send IDs write
- `braze.sends.data_series` Export send analytics read

**SMS 2**

- `braze.sms.list_invalid_numbers` Query invalid phone numbers read
- `braze.sms.remove_invalid_numbers` Remove invalid phone numbers destructive

**User aliases 2**

- `braze.user_aliases.create` Create new user alias write
- `braze.user_aliases.update` Update user alias write

**Apps 1**

- `braze.apps.update_push_credentials` Update push credentials write

**Custom attributes 1**

- `braze.custom_attributes.list` Export custom attributes read

**Scheduled broadcasts 1**

- `braze.scheduled_broadcasts.list` List upcoming scheduled campaigns and Canvases read

**Sessions 1**

- `braze.sessions.data_series` Export app session by time read

**Transactional emails 1**

- `braze.transactional_emails.send` Send transactional emails using API-triggered delivery write

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.

## More connectors like Braze

Joins with, on shared entities

- [Circle 2](https://actionlake.com/connectors/circle)
- [beehiiv 2](https://actionlake.com/connectors/beehiiv)
- [Cvent 1](https://actionlake.com/connectors/cvent)
- [Qualtrics XM 1](https://actionlake.com/connectors/qualtrics-xm)
- [Brevo 1](https://actionlake.com/connectors/brevo)
- [LinkedIn Marketing API 1](https://actionlake.com/connectors/linkedin-marketing-api)

Browse

- [All Email & messaging connectors](https://actionlake.com/connectors/category/email-and-messaging)
- [All connectors](https://actionlake.com/connectors)
- [How actionlake compares](https://actionlake.com/compare)

actionlake is independent. It is not made or endorsed by Braze; the name is the vendor's own. Counts are from the Braze service file, version 1.0.0.

## Give your agent Braze today.

[Connect Braze free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

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

---

Source: https://actionlake.com/connectors/braze
More: https://actionlake.com/llms.txt
