Connect Omnisend to MCP clients using the v2 MCP server at mcp.omnisend.com/v2/mcp — with action-specific tools and embedded reference documentation.
Omnisend MCP Server v2
MCP (Model Context Protocol) is an open protocol that helps AI models securely interface with different data sources and tools. You connect Omnisend's MCP server to an MCP client — such as Claude, ChatGPT, or Cursor — to get assistance with your Omnisend data. Your MCP client can help with a variety of tasks from campaign analytics to contact management and reporting. Here are some examples of prompts you can give:
- "Give me the performance of my email campaigns for last month. Show revenue, orders, conversion rate, click rate, open rate, and unsubscribes. Exclude SMS and push."
- "Show me the top-performing flows in the last 30 days with revenue, conversion, and message-level performance."
- "30-day subscriber trend: daily new subscriptions vs unsubscribes broken down by each channel."
Note: This page documents the v2 MCP server. If you are already connected to https://mcp.omnisend.com/mcp, see Omnisend MCP Server for the original version.
Before you connect
Important: You must have the "Owner", "Admin", "Manager", or "Partner" role in Omnisend to connect your account to the Omnisend MCP server.
You will also need an MCP-compatible client such as Claude, ChatGPT, or Cursor.
Setup
The Omnisend MCP server v2 URL is:
https://mcp.omnisend.com/v2/mcp
Claude
- Click Customize on the left menu panel, then go to Connectors.
- Click + and then Add custom connector.
- Enter Omnisend as the name and
https://mcp.omnisend.com/v2/mcpas the URL, then click Add. - Select the Omnisend connector and click Connect. You will be redirected to the OAuth flow — log in to your Omnisend account and approve the permissions.
- Start a conversation and ask something that requires Omnisend context to verify the connection works.
ChatGPT
Note: Developer Mode is available for ChatGPT Pro, Team, Enterprise, and Edu users.
- Go to Settings > Apps > Advanced settings and toggle Developer mode on.
- Go back to Apps and click Create app.
- Enter Omnisend as the name,
https://mcp.omnisend.com/v2/mcpas the MCP server URL, set authentication to OAuth, and click Create. - You will be redirected to the OAuth flow — log in to your Omnisend account and approve the permissions.
- You can now start chatting and ask questions that require Omnisend context.
Cursor
- Open Cursor Settings > MCP > New MCP Server (or the equivalent MCP configuration for your Cursor version).
- Add a server entry using this URL:
{
"mcpServers": {
"omnisend": {
"url": "https://mcp.omnisend.com/v2/mcp"
}
}
}- Save, then complete the OAuth flow when prompted — log in to your Omnisend account and approve the permissions.
- Start a chat and verify tools appear by asking a simple question that requires Omnisend context.
Multiple Omnisend accounts
Define separate server entries with distinct names (for example omnisend-brand-a and omnisend-brand-b) and different credentials. Enable only the server that matches the account you intend to use in each conversation.
{
"mcpServers": {
"omnisend-mcp-brand-a": {
"url": "https://mcp.omnisend.com/v2/mcp?brand=a"
},
"omnisend-mcp-brand-b": {
"url": "https://mcp.omnisend.com/v2/mcp?brand=b"
},
"omnisend-mcp-brand-c": {
"url": "https://mcp.omnisend.com/v2/mcp?brand=c"
},
"omnisend-mcp-brand-d": {
"url": "https://mcp.omnisend.com/v2/mcp?brand=d"
}
}
}How the Omnisend MCP server v2 works
Omnisend's API surface is large — covering campaigns, contacts, segments, templates, products, analytics, forms, and more. Exposing every API operation as a separate MCP tool would overwhelm the MCP client's context window and degrade performance.
To solve this, Omnisend follows a compact tool design: a small number of generic tools that give the AI agent access to the entire API. When you connect to the Omnisend MCP server v2, your MCP client will see 7 tools:
| Tool | Purpose |
|---|---|
omnisend_search | Lists all available Omnisend API operations with short descriptions. The AI agent calls this first to discover what it can do. Optional action filter: query, create, update, or delete. |
omnisend_tool_schema | Retrieves the full JSON Schema (input parameters, required fields, enums) and curated markdown for a specific API operation, so the AI agent knows exactly what to pass before calling it. |
omnisend_reference | Retrieves embedded Omnisend reference documentation by topic — including payload examples, event property paths, and behavioral hints beyond what the raw schema provides. Call without topic_id to list topics; call with topic_id to load a topic. |
omnisend_query | Runs read operations (action=query) — GET requests and read-shaped analytics POSTs such as reports and statistics. |
omnisend_create | Creates new resources (action=create) — campaigns, contacts, segments, products, images, email templates, batches, and more. |
omnisend_update | Updates existing resources or performs state transitions (action=update) — PATCH, PUT, and verb-style POSTs such as send, cancel, and tag operations. |
omnisend_delete | Deletes resources (action=delete). |
The typical workflow is: the AI agent calls omnisend_search to discover available operations, uses omnisend_tool_schema and omnisend_reference to understand how to call a specific one, then calls the matching action tool (omnisend_query, omnisend_create, omnisend_update, or omnisend_delete) to perform it. This keeps the context window footprint small and fixed — no matter how many API endpoints Omnisend adds in the future.
Splitting execution by action type helps MCP clients route calls safely: read operations never go through create, update, or delete tools.
Embedded reference topics
The omnisend_reference tool exposes curated documentation for these topics:
| Topic ID | Title |
|---|---|
analytics | Analytics reports and statistics |
batches | Batches API |
brands | Brands API |
campaigns | Campaigns API |
contacts | Contacts API |
email_content | Email content API |
email_templates | Email templates and universal layouts |
events | Events API reference |
images | Images API |
product_categories | Product categories API |
products | Products API |
segments | Segments API and event properties |
Available API operations
Through the 7 tools above, the MCP server v2 exposes the following Omnisend API operations:
| Category | Operation | Description | Method | Path |
|---|---|---|---|---|
| Analytics | post_analytics_reports | Generate campaign analytics report grouped by send date | POST | /api/analytics/reports |
| Analytics | post_analytics_statistics | Generate campaign analytics report grouped by event date | POST | /api/analytics/statistics |
| Automations | get_automations | List automations | GET | /v5/automations |
| Batches | get_batch_id | Get batch information | GET | /api/batches/{batchID} |
| Batches | get_batches | Get batches | GET | /api/batches |
| Batches | get_batches_batch_id_items | Get batch items | GET | /api/batches/{batchID}/items |
| Batches | post_batches | Create batch | POST | /api/batches |
| Brands | get_brands_current | Get information about brand | GET | /api/brands/current |
| Brands | post_brands_current | Connect brand | POST | /api/brands/current |
| Campaigns | delete_campaigns_id | Delete campaign | DELETE | /api/campaigns/{id} |
| Campaigns | get_campaigns | List campaigns | GET | /api/campaigns |
| Campaigns | get_campaigns_id | Get campaign | GET | /api/campaigns/{id} |
| Campaigns | patch_campaigns_id | Update campaign | PATCH | /api/campaigns/{id} |
| Campaigns | post_campaigns | Create campaign | POST | /api/campaigns |
| Campaigns | post_campaigns_id_cancel | Cancel campaign | POST | /api/campaigns/{id}/cancel |
| Campaigns | post_campaigns_id_copy | Copy campaign | POST | /api/campaigns/{id}/copy |
| Campaigns | post_campaigns_id_send | Send campaign | POST | /api/campaigns/{id}/send |
| Contacts | delete_contacts_tags | Batch remove tags | DELETE | /api/contacts/tags |
| Contacts | get_contacts | List contacts | GET | /api/contacts |
| Contacts | get_contacts_id | Get contact | GET | /api/contacts/{id} |
| Contacts | patch_contacts | Update contact by email | PATCH | /api/contacts |
| Contacts | patch_contacts_id | Update contact by ID | PATCH | /api/contacts/{id} |
| Contacts | post_contacts | Create or update existing contact | POST | /api/contacts |
| Contacts | post_contacts_tags | Batch add tags | POST | /api/contacts/tags |
| Email Content | get_email_content_id | Get email content | GET | /api/email-content/{id} |
| Email Content | put_email_content_id | Update email content | PUT | /api/email-content/{id} |
| Email Content | post_email_content_id_render | Render email content | POST | /api/email-content/{id}/render |
| Email Templates | delete_email_templates_id | Delete email template | DELETE | /api/email-templates/{id} |
| Email Templates | get_email_templates | Get email templates | GET | /api/email-templates |
| Email Templates | get_email_templates_id | Get email template | GET | /api/email-templates/{id} |
| Email Templates | post_email_templates | Create email template | POST | /api/email-templates |
| Email Templates | post_email_templates_id_render | Render email template | POST | /api/email-templates/{id}/render |
| Email Templates | post_email_templates_import | Import email template from HTML | POST | /api/email-templates/import |
| Email Templates | put_email_templates_id | Update email template | PUT | /api/email-templates/{id} |
| Email Universal Layouts | delete_email_universal_layouts_id | Delete universal layout | DELETE | /api/email-universal-layouts/{id} |
| Email Universal Layouts | get_email_universal_layouts | Get universal layouts | GET | /api/email-universal-layouts |
| Email Universal Layouts | get_email_universal_layouts_id | Get universal layout | GET | /api/email-universal-layouts/{id} |
| Email Universal Layouts | post_email_universal_layouts | Create universal layout | POST | /api/email-universal-layouts |
| Email Universal Layouts | put_email_universal_layouts_id | Update universal layout | PUT | /api/email-universal-layouts/{id} |
| Events | post_event_metadata_query | Query events metadata | POST | /api/event-metadata |
| Forms | get_forms | List forms | GET | /api/forms |
| Forms | get_forms_form_id_ab_setup_reports | List completed AB setup reports for a form | GET | /api/forms/{formID}/ab-setup/reports |
| Forms | get_forms_form_id_contacts | Get form submitted contacts | GET | /api/forms/{formID}/contacts |
| Forms | get_forms_form_id_report | Get form report | GET | /api/forms/{formID}/report |
| Forms | get_forms_form_id_report_periodic | Get form periodic report | GET | /api/forms/{formID}/report/periodic |
| Images | delete_images_id | Delete image | DELETE | /api/images/{id} |
| Images | get_images | List images | GET | /api/images |
| Images | get_images_id | Get image | GET | /api/images/{id} |
| Images | post_images | Upload image by URL | POST | /api/images |
| Images | post_images_upload | Upload image file | POST | /api/images/upload |
| Product Categories | delete_category_id | Delete product category | DELETE | /api/product-categories/{categoryID} |
| Product Categories | get_category_id | Get product category | GET | /api/product-categories/{categoryID} |
| Product Categories | get_product_categories | List product categories | GET | /api/product-categories |
| Product Categories | patch_category_id | Update product category | PATCH | /api/product-categories/{categoryID} |
| Product Categories | post_product_categories | Create product category | POST | /api/product-categories |
| Products | delete_product_id | Delete product | DELETE | /api/products/{productID} |
| Products | get_product_id | Get product | GET | /api/products/{productID} |
| Products | get_products | List products | GET | /api/products |
| Products | post_products | Create product | POST | /api/products |
| Products | put_product_id | Replace product | PUT | /api/products/{productID} |
| Segments | delete_segment_id | Delete segment | DELETE | /api/segments/{segmentID} |
| Segments | get_segment_id | Get segment | GET | /api/segments/{segmentID} |
| Segments | get_segments | List segments | GET | /api/segments |
| Segments | get_segments_segment_id_statistics | Get segment statistics | GET | /api/segments/{segmentID}/statistics |
| Segments | post_segments | Create segment | POST | /api/segments |
| Segments | put_segment_id | Update segment | PUT | /api/segments/{segmentID} |
| Reference | get_reference_topics | List reference documentation topics | GET | /_reference/topics |
| Reference | get_reference_documentation | Get reference documentation by topic | GET | /_reference/documentation |
Troubleshooting
- Cannot connect — Confirm the URL is exactly
https://mcp.omnisend.com/v2/mcp(no trailing slash unless your MCP client documentation says otherwise). Verify network and firewall rules. - Authentication fails — Make sure your Omnisend account has the "Owner", "Admin", "Manager", or "Partner" role and that the OAuth flow completes successfully.
- Tools missing — Restart your MCP client and check that the correct server entry is enabled for the chat or workspace. Your MCP client should show 7 tools (
omnisend_search,omnisend_tool_schema,omnisend_reference,omnisend_query,omnisend_create,omnisend_update,omnisend_delete). - Operation errors — If an API call returns an error, the AI agent will typically explain the issue. Common causes include insufficient permissions, invalid parameters, or rate limiting. Most endpoints allow 400 requests per minute; analytics endpoints are stricter and may return 429.
For product issues, contact Omnisend support.