Back to MCP Servers

Braze MCP Server

Official Braze MCP server giving AI agents access to non-PII Braze data: campaigns, Canvases, segments, events, KPIs, templates, and content blocks.

Email & Outbound by Braze API Key active
Overview

The Braze MCP Server is an official, locally hosted Model Context Protocol server that lets AI clients like Claude Desktop, Cursor, and the Gemini CLI query Braze customer engagement data. It exposes 38 API functions across roughly 15 categories covering campaign analytics, Canvas journeys, segments, custom attributes, events, KPIs, purchases, sessions, sends, media library, content blocks, and email templates. The server is explicitly designed to be non-PII: it returns aggregated data, not user profile records.

The server is distributed as a Python package (braze-mcp-server) on PyPI and is intended to be launched via uvx. It authenticates against the Braze REST API using a dedicated API key and your workspace base URL. Most exposed functions are read-only, with a small set of write actions (create/update content blocks, create/update email templates, create media library assets) gated by explicit permissions on the API key.

It is notable as a first-party server maintained by Braze (the PyPI maintainer is a Braze engineer) and is the canonical way to bring Braze context into LLM-driven workflows. The least-privilege API key model means teams can safely scope an agent to read-only analytics or selectively enable write actions for content authoring.

Tools

Tool Description
list_functions List all API functions available on the server.
call_function Invoke a read API function by name.
call_write_function Invoke a write API function (requires write permissions on the API key).
get_campaign_list List campaigns in the workspace.
get_campaign_details Get metadata and configuration for a specific campaign.
get_campaign_dataseries Get time-series performance data for a campaign.
get_canvas_list List Canvas journeys.
get_canvas_details Get Canvas configuration and step metadata.
get_canvas_data_summary Summary analytics for a Canvas over a period.
get_canvas_data_series Time-series analytics for a Canvas.
get_catalogs List catalogs.
get_catalog_items List items in a catalog.
get_catalog_item Get a single catalog item.
list_integrations List Cloud Data Ingestion integrations.
get_integration_job_sync_status Get sync status for a CDI integration job.
get_content_blocks_list List content blocks.
get_content_blocks_info Get details of a content block.
create_content_block Create a new content block (write).
update_content_block Update an existing content block (write).
get_custom_attributes List custom attributes defined in the workspace.
get_events_list List custom events.
get_events_data_series Time-series counts for a custom event.
get_events Get custom event metadata.
get_new_users_data_series New users KPI time series.
get_dau_data_series Daily active users KPI time series.
get_mau_data_series Monthly active users KPI time series.
get_uninstalls_data_series Uninstalls KPI time series.
create_media_library_asset Upload an asset to the media library (write).
get_scheduled_broadcasts List scheduled broadcast messages.
get_preference_centers List preference centers.
get_preference_center_details Get a preference center configuration.
get_product_list List purchase products.
get_revenue_series Revenue time series.
get_quantity_series Purchase quantity time series.
get_segment_list List segments.
get_segment_data_series Segment size time series.
get_segment_details Segment metadata.
get_send_data_series Send analytics time series by send_id.
get_session_data_series Session counts time series.
get_sdk_authentication_keys List SDK authentication keys.
get_user_subscription_groups Get subscription groups for a user.
get_subscription_group_status Get a user's status in a subscription group.
get_email_templates_list List email templates.
get_email_template_info Get email template details.
create_email_template Create a new email template (write).
update_email_template Update an existing email template (write).
Setup Guide

Prerequisites

  • A Braze workspace with permission to create API keys
  • Your Braze REST endpoint URL (e.g. https://rest.iad-01.braze.com)
  • An MCP client: Claude Desktop, Cursor, or Gemini CLI
  • uv installed (the server runs via uvx)

1. Install uv

macOS / Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows PowerShell:

irm https://astral.sh/uv/install.ps1 | iex

2. Create a dedicated Braze API key

In Braze, go to Settings, APIs and Identifiers, API Keys and create a new key specifically for the MCP client. Assign only the read permissions your agent needs. Leave write permissions off unless you want the agent to create or update content blocks, email templates, or media library assets.

3. Configure your MCP client

Cursor (Settings, Tools and Integrations, MCP Tools, Add Custom MCP) or Gemini CLI (~/.gemini/settings.json):

{
  "mcpServers": {
    "braze": {
      "command": "uvx",
      "args": ["--native-tls", "braze-mcp-server@latest"],
      "env": {
        "BRAZE_API_KEY": "your-braze-api-key",
        "BRAZE_BASE_URL": "https://rest.iad-01.braze.com"
      }
    }
  }
}

For Claude Desktop, install the Braze MCP Server desktop extension from Settings, Connectors, Browse Connectors, Desktop Extensions, then enter your API key and base URL.

4. Verify

Restart your client and prompt: List my Braze campaigns or What Braze functions are available?

Use Cases
  • Pull campaign and Canvas performance time series into natural language reports without leaving the chat
  • Audit segment sizes and trends across the workspace and spot drops in DAU, MAU, or new users
  • Inventory and edit content blocks and email templates from an AI assistant, with write actions gated by API key permissions
  • Investigate custom events and revenue series for ad-hoc product analytics, for example revenue by product over the last 30 days
  • List preference centers, subscription groups, and a user's subscription status for compliance and CX investigations
Example Prompts
  • "List my top 10 Braze campaigns by sends in the last 14 days and show open rate trends."
  • "Compare DAU and MAU for the last 30 days and flag any week-over-week drops."
  • "Show revenue and purchase quantity series for product 'pro_annual' over the last 90 days."
  • "Find the content block named 'footer_promo_q2' and update its body with this new HTML."
  • "Get details for Canvas 'Onboarding v3' and summarize step-level conversion."
Pros
  • Official, first-party server maintained by Braze and distributed on PyPI
  • Broad coverage: 38 functions spanning campaigns, Canvases, segments, KPIs, purchases, templates, and content blocks
  • Non-PII by design, which lowers risk when connecting LLMs to a production marketing platform
  • Granular permission model: write actions only work if the API key explicitly grants them
Limitations
  • Local-only execution via uvx, no hosted remote URL, so each user must install Python tooling
  • Write surface is narrow: only content blocks, email templates, and media library uploads. No campaign or Canvas authoring
  • Read functions return aggregated data only, so user-level investigations and PII workflows are not supported
  • Still labeled beta on PyPI (Development Status 4)
Alternatives
  • Customer.io MCP server for an alternative messaging platform with agent access
  • Iterable or Klaviyo community MCP servers for similar customer engagement use cases
  • Building directly against the Braze REST API with a custom MCP wrapper if you need PII or campaign authoring