The MoEngage AI Connector (MCP server) is currently available in DC01, DC02, DC03, and DC04.
Setup
- MCP Server URL
- Connect with Claude
- Connect with ChatGPT
- Connect with GitHub Copilot (VS Code)
For the MoEngage docs MCP, use
https://www.moengage.com/docs/mcpAuthentication
The MoEngage MCP server uses OAuth-based authentication tied to your MoEngage account. The first time you connect, you authenticate with your MoEngage credentials; if you are already signed in, you will 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 (for example, reading campaign data and creating or managing campaigns)

Key authentication behaviors
- The server inherits the environment, workspace, and role of your active MoEngage session.
- Authentication tokens are derived from your active MoEngage session.
- If you log out or switch workspaces, you are prompted to re-authenticate.
- All actions respect your existing MoEngage role-based permissions — including which tools your role can use. Reading campaign data requires read access; building or editing campaigns requires campaign create/manage permission.
Built for agents
The server is designed so that any AI assistant — not just one vendor’s — can build a correct campaign on the first try. Two capabilities make that possible:discover_schemareturns 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_guideserves 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 remains a human action in the MoEngage dashboard.
What you can do
Build
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.
Search & review
Find campaigns across every channel; read a campaign’s full configuration and content.
Analyze
Pull performance, delivery funnels, click breakdowns, and device analytics.
Available tools
Create, edit, and test-send are supported for Push and Email. Search and analytics work for all channels (Push, Email, SMS, WhatsApp, Webhook); SMS and other non‑Push/Email channels are read-only.Build a campaign
| Tool | Description |
|---|---|
discover_schema | Returns the exact request shape for a campaign type, component, template, or modifier — required/forbidden fields, a proven minimum example, and the rules for that type. Call this before building any payload. |
create_campaign_draft | Create a campaign draft in one call. |
patch_campaign_components | Update one or more components of an existing draft. |
validate_campaign_draft | Dry-run the full publish validation against a draft without changing it; returns field-level errors if anything is missing. |
create_personalization_preview | Render personalization for sample users to spot-check content before creating. |
test_campaign_inline / test_campaign_by_draft_id | Send a test message to verify a draft. |
update_campaign_status | STOP, PAUSE, or RESUME an already-running campaign (not drafts). |
Author content
| Tool | Description |
|---|---|
get_content_guide | Validated authoring guidance for content — how to write Jinja personalization and email HTML well. Request a topic (jinja, email_html, email_deliverability) and an optional section to get just the part you need. This is authoring quality guidance, distinct from discover_schema (which gives the request shape). |
Content blocks
| Tool | Description |
|---|---|
create_content_block / edit_content_block | Create or update a reusable content block (for example, a shared email footer). |
search_content_blocks / get_content_blocks_by_ids | Find content blocks by label, or fetch them by ID. |
Search & read
| Tool | Description |
|---|---|
search_campaigns | Search campaigns across all channels by name, status, ID, channel, delivery type, or date range. Include DRAFT in the status filter to see drafts. |
get_campaign / get_campaign_meta | Fetch a single campaign’s full configuration and content, or just its metadata. |
list_custom_segments / get_custom_segment | Browse and read custom segments for audience targeting. |
ACTIVE, DRAFT, EXPIRED, NOT_SENT, PAUSED, SCHEDULED, SENDING, SENT, STOPPED, UNDER_REVIEW, REJECTED.
Analytics
All analytics tools enforce a maximum date range of 30 days.
| Tool | Description |
|---|---|
get_campaign_stats | Aggregate performance — delivery rate, opens, clicks, CTR, and channel-specific metrics. Up to 50 campaigns per call. |
get_detailed_campaign_stats | Breakdowns by conversion goal, device/platform, locale, and A/B variation. |
get_delivery_stats | The delivery funnel — reachable users, frequency-cap removals, send/delivery failures, and per-platform device stats. |
get_click_performance | Per-URL click breakdown, with total and unique counts. |
get_device_analytics | Performance by device dimensions — OEM, app version, or dormancy, with multi-dimensional splits. |
Building a campaign, step by step
Discover the shape
The assistant calls
discover_schema for your channel and delivery type to get the exact payload structure.Author the content
For email HTML or Jinja personalization, it calls
get_content_guide for validated patterns.Preview personalization
create_personalization_preview confirms the content renders correctly for sample users.Example prompts
| What you want to do | Example prompt |
|---|---|
| Build a campaign | ”Draft a one-time push to all users for tomorrow 10am IST titled ‘Weekend sale’.” |
| Personalize content | ”Write the email greeting with a first-name fallback and mention the user’s city.” |
| Find campaigns | ”List all active push campaigns.” |
| Check performance | ”What’s the CTR for my email campaigns over the last 2 weeks?” |
| Diagnose delivery | ”Why did my last push campaign have a low delivery rate?” |
| Analyze A/B tests | ”Which variation won in campaign XYZ?” |
| Review content | ”Show me the email content for campaign ABC.” |
| Device insights | ”How does Android vs iOS performance compare for my push campaigns?” |
Known behaviors and limitations
We document known quirks so you and your assistant can work around them instead of hitting them unexpectedly.- Publishing is not available through the MCP — drafts are published from the MoEngage dashboard.
- SMS and other non-Push/Email channels are read-only: searchable and analyzable, but not creatable.
- Date range for analytics is limited to 30 days per query.
- Batch size:
get_campaign_statsaccepts 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. - 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 campaign drafts and read and analyze campaign data. 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.
- Review MoEngage’s Privacy Policy and Terms of Use for more information.
Troubleshooting
Cannot access the MCP server or your campaign data
Cannot access the MCP server or your campaign data
The server inherits the active session from your MoEngage account.
- Verify you are signed in to the correct MoEngage workspace.
- If you signed out or switched workspaces, re-authenticate the MCP connection to restore access.
A tool you expected isn't available
A tool you expected isn't available
Tool availability follows your MoEngage role. If you can’t see build tools, confirm your role has campaign create/manage permission in the current workspace.