Skip to main content
MoEngage offers a hosted Model Context Protocol (MCP) server that lets AI assistants work with your workspace directly. Your assistant can build campaign drafts, create and count segments, read and analyze flows, browse dashboards, and analyze performance — all through natural-language conversation. The MoEngage MCP server is available as a custom connector for any MCP-compatible client. We are actively working to list it on the Claude and ChatGPT marketplaces for one-click installation.
The MCP server connects external AI assistants, such as Claude or ChatGPT, to your MoEngage workspace. To build and run AI agents inside the MoEngage dashboard itself, refer to Custom Agents.
The MoEngage AI Connector (MCP server) is available in DC01, DC02, DC03, and DC04.

MCP Server URL

Use this URL wherever a client asks for a remote MCP server or custom connector:
For the MoEngage docs MCP (search the documentation site), use https://www.moengage.com/docs/mcp.
The connector runs from the AI provider’s cloud (for example, Anthropic’s cloud for Claude), not from your local device, so the server must be reachable over the public internet. https://mcp.moengage.com is publicly reachable, so no firewall or allowlist changes are needed.

Setup

There are two ways to make the connector available:
  • Organization-wide setup — an admin adds MoEngage once for the whole organization, so every member only has to click Connect. Recommended for teams.
  • Personal setup — an individual adds the connector to their own account.
In both cases, each user still authenticates individually with their own MoEngage account, so the assistant only ever sees data and tools that user already has access to.

Organization-Wide Setup (Admin, One-Time)

Set this up once so anyone in your organization can connect without pasting the URL themselves.
Only a Primary Owner or Owner of a Claude Team or Enterprise organization can add an organization connector.
  1. Go to SettingsConnectors (organization settings).
  2. Click Add.
  3. Enter the MCP server URL: https://mcp.moengage.com.
  4. Leave Advanced settings (OAuth Client ID and Client Secret) blank — MoEngage handles OAuth automatically.
  5. Click Add.
The connector now appears in every member’s Connectors list. Each member clicks Connect once to authenticate with their own MoEngage account.

Personal Setup (Per User)

Use this if you are connecting your own account, or if the connector has not been added organization-wide.
  1. Open Claude Desktop or go to claude.ai.
  2. In the sidebar, click Settings.
  3. Click Connectors.
  4. Click Add custom connector.
  5. Enter the MCP server URL: https://mcp.moengage.com.
  6. Click Add, then Connect. You are redirected to authenticate with your MoEngage account.
  7. After authentication, the MoEngage tools appear under Connectors in Settings.
  8. Configure Tool permissions (Automatic, Ask first, or Disabled) per tool. See Enable the Tools You Need.

Use It in a Conversation

After connecting, turn the MoEngage tools on for a chat:
  1. In a new conversation, open the tools or connectors menu (in Claude, the + icon → Connectors).
  2. Toggle MoEngage on.
  3. Ask for what you want in plain language (see Example Prompts).

Authentication

The MoEngage MCP server uses OAuth-based authentication tied to your MoEngage account. Unlike the dashboard, an MCP connection defaults to a workspace list rather than your last-used workspace, since MCP clients switch workspaces more frequently. If you are already signed in, you go directly to the authorization prompt described in the final step below; otherwise, the full flow is:
1

Initiate a connection

In your MCP client, initiate a new MoEngage connection. MoEngage redirects you to the global login page.
2

Enter your email

In the Work email box, type your email address and click Continue. MoEngage redirects you to the login page for your last-used workspace’s data center.
3

Verify your identity

On the User authentication page, open your authenticator app, find the 6-digit code for MoEngage, and type it in the verification box. Click Continue.
4

Select a workspace

On the Login to a different workspace page, choose the workspace and environment you want to connect to. The environment options are Live and Test.
5

Complete workspace authentication

Complete authentication using the workspace’s configured login method (password, Google, or SSO). You then see an authorization prompt. The screen shows:
  • Account — your MoEngage email
  • Workspace — the workspace you are currently signed into
  • Role — your role in that workspace (for example, Manager, Admin)
  • Data Center — your data center environment
  • Permissions requested — the scopes the server needs
Click Accept to grant access.
MoEngage MCP OAuth authorization screen showing account, workspace, role, data center, and requested permissions

Key Authentication Behaviors

  • The connection uses the environment, workspace, and role you selected when you authorized it — not your current dashboard session.
  • Authentication tokens are issued by the MCP authorization flow and are scoped to that workspace and environment.
  • To use a different workspace or environment, re-authenticate the connection from your MCP client and select it there. If the connection is interrupted, re-initiate it the same way.
  • All actions respect your existing MoEngage role-based permissions — including which tools your role can use. Reading data requires read access; building or editing requires the matching create/manage permission.
  • Session duration: 30 days, with a 7-day idle timeout.
  • Independent from the dashboard: the MCP session is separate from your dashboard session. Logging in or out of one does not affect the other, and signing in to a different workspace on the dashboard does not switch the workspace your MCP connection uses.
The authorization screen may list a read scope (for example, campaign read) even though the connector exposes many more tools, including write tools. This is a display limitation, not a restriction on what you can do. Which tools actually run is governed by your MoEngage role and by the tools you enable in your client. See Enable the Tools You Need.

Built for Agents

The server is designed so that any AI assistant — not just one vendor’s — can act correctly on the first try. Two capabilities make that possible:
  • discover_schema returns the exact, current request shape for whatever you’re building (required fields, allowed values, a working example) — so the assistant doesn’t guess.
  • get_content_guide serves validated, on-demand guidance for writing content (Jinja personalization, email HTML) — so the content is correct, not trial-and-error.
The MCP builds and validates drafts. Publishing a campaign and starting (publishing) a flow remain human actions in the MoEngage dashboard; pausing, resuming, and stopping an existing flow are available through update_flow_status.

What You Can Do

Build campaigns

Draft push and email campaigns — including A/B variants, multi-locale, scheduling, segmentation, and content blocks.

Author content

Get validated patterns for Jinja personalization and email HTML, and preview how content renders for sample users.

Manage segments

Create custom segments, browse existing ones, and get live user counts with channel reachability.

Work with flows

Search flows, read their configuration and versions, analyze flow and per-channel performance, and pause or resume them.

Search & review

Find campaigns across the supported channels; read a campaign’s full configuration and content.

Analyze performance

Pull campaign performance, delivery funnels, click breakdowns, device analytics, and dashboard charts.

Analyze product data

Run behavior, funnel, retention, user, and session and source analyses, and discover the events and attributes to use.

Available Tools

Create, edit, and test-send are supported for Push and Email. Campaigns on every other channel, including SMS, Webhook, and WhatsApp, are read-only: you can search and read them, but not create or edit them. The channel filter on search_campaigns is narrower still — see Other limitations. Which tools you can use depends on your MoEngage role. If a tool you expect is missing, refresh the tools list.

Build a Campaign

Author Content

Content Blocks

Segments

  • Segment filters must use the exact internal (platform) names of events and attributes, not the dashboard display name (for example, moe_city, not “City”). A display name used as an event or event-attribute name is accepted at create time, and a user-attribute display name gets through too whenever the catalog check cannot resolve it — in both cases the count later fails with no error reason. Resolve names first with find_events, find_user_attributes, and find_event_attributes (see Catalog Discovery), and always use the returned name field.
  • Equality depends on the attribute’s data type. equals is never a valid operator. For string, double, array_string, and array_double attributes, equality is "operator": "in" with a list value (for example, "value": ["Mumbai"]). For the scalar types, “is not” is the same operator with "negate": true. To negate an array attribute, remove the filter’s array_filter_type key — keeping it alongside negate invalidates the filter. is is the equality operator for bool attributes and for date parts on datetime attributes — on a string attribute it is reserved for the is-empty check ("value": ""), so don’t use it for text equality. geopoint attributes take no operator at all. Get the exact set for a data type from discover_schema(kind="component", id="segment_filters").
  • To target users who did not perform an event, set executed: false on the actions filter and pair it with "execution": {"type": "exactly", "count": 0} — that combination is required, and aggregation_attributes must be omitted. Alternatively, place a positive actions filter in excluded_filters, which excludes matching users outright.
  • Common create-time errors: 409 (name already taken), 400 (malformed filter, or an operator the API does not accept), 413 (filter too large or too deeply nested). The 400 names no field, so re-check the filter shape rather than retrying variations — or pre-flight with deep_validate_segment_filters, which answers 200 with is_valid: false and the path of each problem.
  • PII-marked attributes are not exposed through the MCP.
  • Email (Standard) and Mobile Number (Standard) are masked even when they are not marked as PII.
This applies to get_user_events, get_recent_query, get_recent_query_users, and get_value_suggestions.

Flows

Dashboards

Search & Read

Supported status filters: ACTIVE, DRAFT, EXPIRED, NOT_SENT, PAUSED, SCHEDULED, SENDING, SENT, STOPPED, UNDER_REVIEW, REJECTED.

Campaign Analytics

Campaign analytics tools enforce a maximum date range of 30 days per query. Flow analytics tools allow up to 90 days. The analyze tools each use their own window, which varies by analysis type and granularity — run_user_analysis is more restricted than the rest, and retention caps hourly analyses at 24 hours.

Analyze

  • PII-marked attributes are not exposed through the MCP.
  • Email (Standard) and Mobile Number (Standard) are masked even when they are not marked as PII.
In all five analyze tools, these attributes cannot be used to group by user property or to split by.

Catalog Discovery

Use these to find the right events and attributes before building a segment or running a behavior analysis. All three return top-ranked matches with confidence scores, never the full catalog; event and attribute names vary per workspace, so the assistant should never guess them.

Feedback

Building a Campaign, Step by Step

1

Discover the Shape

The assistant calls discover_schema for your channel and delivery type to get the exact payload structure.
2

Find the Audience

Use find_events / find_user_attributes and create_custom_segment (with start_segment_count to confirm reach) to target the right users.
3

Author the Content

For email HTML or Jinja personalization, it calls get_content_guide for validated patterns.
4

Create the Draft

create_campaign_draft (or patch_campaign_components to refine an existing draft).
5

Preview Personalization

create_personalization_preview confirms the content renders correctly for sample users.
6

Validate

validate_campaign_draft runs the full publish check and reports any field-level issues.
7

Publish

Review and publish the draft from the MoEngage dashboard.

Example Prompts

Known Behaviors and Limitations

We document known quirks so you and your assistant can work around them instead of hitting them unexpectedly.

Enable the Tools You Need

Write tools (for example, creating campaigns, editing content blocks, creating segments) may be off by default in your client. If the assistant says it lacks access to do something, enable that tool in your client’s connector settings — in Claude, under SettingsConnectorsMoEngageTool permissions. Which tools you can enable is still bounded by your MoEngage role.

Refresh the Tools List

New tools are added to the connector over time. If a newly shipped tool doesn’t appear, refresh the connector’s tools list in your client. If the refresh option isn’t available, disconnect and reconnect (re-authenticate) the MoEngage connector to pick up the latest tools.

Segmentation Behaviors

Segmentation Limits

The segmentation tools do not enforce rate limits of their own; the limits below come from the MoEngage APIs they call. There is no published quota on how many segments or queries you can create in a period, no enforced minimum interval between polls, and no documented cap on concurrent count jobs. Rate limiting can still occur at the platform level.
Some segmentation APIs, including the real-time membership check, can return a 429 (Too Many Requests) error under heavy traffic. There is no published request quota; when a 429 occurs, retry after about 60 seconds. All tool calls also pass through the MoEngage API gateway, which can apply its own traffic controls.

Other Limitations

  • Publishing a campaign is not available through the MCP — drafts are published from the MoEngage dashboard.
  • Campaign creation is Push and Email only. SMS, Webhook, and WhatsApp campaigns are searchable and analyzable, but must be created and edited in the MoEngage dashboard.
  • The campaign channel filter accepts Push, Email, SMS, and MMS only. WhatsApp and Webhook campaigns cannot be filtered by channel — omit the filter to include them in results. WhatsApp is supported elsewhere: flow analytics covers WhatsApp, and WhatsApp appears in segment reachability counts.
  • Date range for campaign analytics is limited to 30 days per query; flow analytics allows up to 90 days.
  • Batch size: get_campaign_stats accepts up to 50 campaign IDs per request.
  • Content size: email HTML can be large (10–50 KB); fetch full content deliberately.
  • Campaign-name date format: campaign names often encode dates as DDMMYY (for example, 230326 = 23 March 2026). If analytics return all zeros, check your date range first.
  • PII and contact attributes are not available to the analyze tools. In run_behavior_analysis, run_funnel_analysis, run_retention_analysis, run_session_source_analysis, and run_user_analysis, these attributes cannot be used to group by user property or to split by:
    • PII-marked attributes are not exposed through the MCP.
    • Email (Standard) and Mobile Number (Standard) are masked even when they are not marked as PII.
  • Analytics response shape: stats are returned as a single cross-channel structure — metrics that don’t apply to a campaign’s channel come back as 0, not absent. Don’t infer a campaign’s channel from which fields are non-zero.

Security and Permissions

  • The MCP server can build and validate drafts, create segments, and read and analyze campaigns, flows, and dashboards. It does not publish campaigns — publishing is a human action in the dashboard.
  • Every action is scoped to the workspace and role of the authenticated user. Tools your role lacks permission for are not available to you.
  • Data shared with AI assistants is subject to the respective AI provider’s data-handling policies. MoEngage lists its AI sub-processors (including Anthropic and OpenAI) on its website.
  • Review MoEngage’s Privacy Policy and Terms of Use for more information.

Troubleshooting

The connection is bound to the workspace and environment you chose when you authorized it, independently of your dashboard session.
  1. Verify the connection was authorized against the workspace you expect. Changing workspaces on the dashboard does not change it.
  2. To point the connection at a different workspace, re-authenticate it from your MCP client and select that workspace.
First, make sure the tool is enabled in your client’s connector settings — see Enable the Tools You Need. Then confirm your MoEngage role has the matching permission (for example, campaign create/manage for build tools). If it’s a newly announced tool, refresh the tools list.
Refresh the connector’s tools list, or disconnect and reconnect the MoEngage connector to re-authenticate. See Refresh the Tools List.
Switching the workspace or database on an active connection can briefly error. Wait a short while and re-authenticate — the connection typically succeeds on retry.
This almost always means a filter uses a display name instead of an internal name. Resolve names with Catalog Discovery and re-validate with deep_validate_segment_filters before creating the segment again.
Check the response for a specific error code: 409 means the name is already taken, 400 means the filter structure or one of its operators is invalid, and 413 means the filter is too large or deeply nested. The 400 carries no field-level detail. A 400 on a filter that otherwise appears correct is usually the operator, and the right one depends on the attribute’s data type: for a text (string) attribute, equality is "operator": "in" with a list value — not equals, and not is (is is for bool attributes and for the is-empty check). Run deep_validate_segment_filters first: it answers 200 with is_valid: false and the path of each problem, instead of a flat 400. See the common-errors note under Segments.
This is not a “no”: it means the segment type does not support real-time evaluation (file-based, funnel, retention, and predictive segments are batch-only). Check the segment’s type, or fall back to a saved count with start_segment_count.
Tool availability depends on your MoEngage role and your client’s connector settings. See Security and Permissions and Enable the Tools You Need.