100+ integrations are ready to connect to your AI.Connect your first MCP

Omnisend MCP server for your AI

Draft and send email or SMS campaigns, retag contacts in bulk, build segments, switch automations on or off, and pull revenue-attributed analytics for the store the key belongs to.

PopMCPOmnisend

Show open and click rates for every campaign we sent in March

Supported Omnisend tools

Every campaign, automation, contact, segment, product, template, batch and analytics call PopMCP exposes, plus the triggers it can watch.

omnisend_cancel_campaign

Cancel a campaign and mark it as canceled.

omnisend_copy_campaign

Create a draft copy of an existing campaign, copying content, audience, and settings from the original.

omnisend_create_campaign

Create a new campaign draft.

omnisend_get_campaign

Get a single campaign by ID.

omnisend_get_campaign_utm

Get UTM tag settings for a campaign.

omnisend_list_campaigns

List campaigns with filtering, sorting, and cursor-based pagination.

omnisend_send_campaign

Submit a campaign draft for sending; supports both email and SMS campaigns.

omnisend_update_campaign

Update a campaign draft.

omnisend_update_campaign_utm

Replace UTM tag settings for a regular or A/B test campaign in draft status.

omnisend_disable_automation

Disable an automation workflow so it stops accepting new trigger events, choosing whether contacts already in the workflow are kept or removed.

omnisend_enable_automation

Enable (activate) an automation workflow so it begins processing trigger events; optionally enroll contacts that already match the trigger conditions.

omnisend_get_automation

Retrieve a single automation workflow by its 24-character hexadecimal ID.

omnisend_list_automations

List automation workflows with cursor-based pagination, filtering (by enabled status, name, created/updated date ranges) and sorting; use to browse or search automations.

omnisend_add_contact_tags

Adds the specified tags to multiple contacts in one call, identifying each contact by its contact ID.

omnisend_create_contact

Creates a new contact; if a contact with the provided email identifier already exists it is updated instead (upsert) — use to add or import a single contact.

omnisend_get_contact

Returns the single contact with the specified contact ID.

omnisend_get_email_template

Retrieve a single email template by its unique 24-character hexadecimal ID.

omnisend_list_contacts

Returns a paginated list of contacts filtered by query parameters such as email, phone, status, segment, or tag; use to search or browse the contact database.

omnisend_list_email_templates

Retrieve a paginated list of email templates with cursor-based navigation, sorting, and name filtering.

omnisend_remove_contact_tags

Removes the specified tags from multiple contacts in one call, identifying each contact by its contact ID.

omnisend_update_contact

Updates an existing contact record identified by its unique contact ID; use when you already have the contact ID rather than the email.

omnisend_update_contact_by_email

Updates the single contact matching the email address supplied in the required email query parameter (despite the family name, this updates one contact, not a batch).

omnisend_create_segment

Creates a new segment defined by a name and one or more condition groups of filter rules.

omnisend_get_segment

Returns a single segment by its unique identifier.

omnisend_get_segment_statistics

Returns statistics for a segment, including the total number of matching contacts.

omnisend_list_segments

List segments with sorting and cursor-based pagination support, returning an array of segments plus a paging object with navigation cursors.

omnisend_create_product

Create a new product in the Omnisend catalog; use to add a product (with optional variants and images) for use in automations and recommendations.

omnisend_create_product_category

Create a new product category in the Omnisend store with a caller-supplied unique categoryID and title.

omnisend_get_product

Retrieve a single product from the Omnisend catalog by its unique product ID.

omnisend_list_product_categories

Retrieve a paginated collection of product categories from the Omnisend store, with optional sorting and offset-based pagination.

omnisend_list_products

List products in the Omnisend catalog with offset/limit pagination and optional sorting; use to browse or page through all synced products.

omnisend_replace_product

Fully replace an existing product by its ID with the supplied data; any fields not provided are overwritten/cleared, so send the complete product object.

omnisend_create_batch

Creates an asynchronous batch that runs many create or update operations of one resource type in a single request to improve performance and avoid rate limits.

omnisend_get_batch

Retrieves detailed information about a single batch operation, including its status, progress counts, responses, and errors.

omnisend_list_batch_items

Retrieves all individual items belonging to a specific batch, including each item's request, response, status, and response code.

omnisend_list_batches

Retrieves a paginated list of batch operations for a given resource endpoint, optionally filtered by status or a created-date range.

omnisend_get_analytics_report

Returns aggregated marketing analytics grouped by message send date, covering delivery, engagement, and revenue-attribution metrics for campaigns and automations, with optional dimensions and filters.

omnisend_get_analytics_statistics

Returns aggregated marketing analytics grouped by event date, covering delivery, engagement, revenue, and audience-growth metrics; requires a timestamp dimension.

omnisend_get_current_brand

Retrieves the current brand's information (brandID, name, platform, currency, timezone, website, connection status, and version).

omnisend_trigger_event

Send a customer event (custom or a standard ecommerce event) to track behavior, create/update the matched contact, and trigger Omnisend automations; this single endpoint replaces the legacy v3 orders/carts REST resources.

omnisend_delete_campaign

Delete a campaign.

omnisend_pick_campaign_ab_test_winner

Manually pick a variant as the A/B test winner; the chosen variant is routed into the send pipeline immediately.

omnisend_resume_campaign_ab_test

Resume a stopped A/B test so automatic winner selection can pick this campaign again.

omnisend_stop_campaign_ab_test

Halt the A/B test winner-selection phase so automatic winner selection no longer considers this campaign until resumed.

omnisend_copy_automation

Duplicate an existing automation workflow into a new disabled automation, optionally with a custom name.

omnisend_create_automation

Create a new automation workflow with a trigger and at least one block; new automations are created in a disabled state.

omnisend_delete_automation

Delete a single automation workflow by ID; the operation is idempotent (deleting a non-existent automation still returns success).

omnisend_get_automation_block_utm

Retrieve UTM tracking tags for a single send-action block; missing or cleared tags are returned with their default values.

omnisend_get_automation_utm

Retrieve UTM tracking tags for all send-action blocks in an automation workflow, with default values synthesized for any missing fields.

omnisend_update_automation

Partially update an automation workflow, modifying only the top-level fields provided in the body; the automation must be disabled first.

omnisend_update_automation_block_utm

Set the UTM tracking tags (source, medium, campaign) for a single send-action block, replacing all three atomically.

omnisend_update_automation_blocks

Replace the full block tree of an automation workflow atomically; the automation must be disabled first.

omnisend_create_email_template

Create a new email template with a name and optional general settings and sections.

omnisend_delete_email_template

Delete an email template by its 24-character hexadecimal ID.

omnisend_import_email_template

Import an email template by parsing raw HTML content, extracting its styles, and structuring it into a template.

omnisend_render_email_template

Render an email template by ID and return its full HTML body for preview purposes.

omnisend_update_email_template

Fully replace an existing email template (identified by ID) with the provided template data.

omnisend_delete_segment

Permanently deletes a segment by its unique identifier.

omnisend_update_segment

Updates an existing segment by ID; the segment must not be in a building state or the request is rejected.

omnisend_create_email_layout

Create a new universal email layout defining a reusable section structure (rows, columns, blocks).

omnisend_delete_email_layout

Delete an universal email layout from the account by its ID.

omnisend_delete_product

Delete a product from the Omnisend catalog by its unique product ID.

omnisend_delete_product_category

Delete a product category from the Omnisend store by its unique ID.

omnisend_get_email_layout

Retrieve a single universal email layout configuration by its unique identifier.

omnisend_get_product_category

Retrieve a single product category by its unique ID, returning categoryID, title, createdAt and updatedAt.

omnisend_list_email_layouts

Retrieve a paginated list of universal email layouts (sorted by creation time descending), optionally filtered by name substring.

omnisend_update_email_layout

Update (fully replace) an existing universal email layout by its ID.

omnisend_update_product_category

Update an existing product category (identified by its ID) by setting a new title.

omnisend_create_image

Uploads/creates an image in the brand's image library from a publicly accessible URL (HTTPS PNG/JPEG/GIF/WebP, max 5MB); use to add a hosted image without raw file upload.

omnisend_delete_image

Permanently removes an image from the brand's library by its unique ID; use to delete an image that is no longer needed.

omnisend_get_image

Retrieves a single image resource by its unique ID, returning its metadata (url, type, dimensions, size, createdAt); use to look up details for one image.

omnisend_list_images

Retrieves a paginated list of a brand's images with cursor-based navigation, plus optional name filtering and sorting; use to browse or search the image library.

omnisend_get_email_content

Retrieves a single email content object (general settings plus sections) by its 24-character hexadecimal content ID.

omnisend_render_email_content

Renders the stored email content identified by the 24-character hexadecimal content ID to HTML using an empty data context (no contact, no marketing activity).

omnisend_update_email_content

Fully replaces the email content identified by the 24-character hexadecimal content ID; the complete content structure must be supplied in the request body.

omnisend_update_current_brand

Connects/updates the current brand by establishing a connection between a website and Omnisend (sets the platform, version, website, and optionally currency).

Connect Omnisend to your AI

Credentials off one Omnisend screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.

Paste your API key into the connect form — one field, no OAuth popup, no token refresh. The key is scoped to a single Omnisend store, so the connection only ever reaches that store's audience, catalog and campaigns.

API key••••••••••••3f7a
ConnectionVerified

Then just ask for the work

  • Show open and click rates for every campaign we sent in March

    • list_campaigns
    • get_analytics_report
  • Tag everyone in the Lapsed Buyers segment as winback-2026

    • list_segments
    • list_contacts
    • add_contact_tags
  • Copy the Black Friday email into a new draft and give it fresh UTM tags

    • list_campaigns
    • copy_campaign
    • update_campaign_utm
  • Did the abandoned-cart automation earn more than last week's SMS blast?

    • list_automations
    • list_campaigns
    • get_analytics_report

Use Omnisend from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Omnisend MCP server questions

What teams ask before putting Omnisend behind an AI client.

What do I need from Omnisend to connect, and what does the connection cover?

One field: API key, pasted once into the connect form. There is no OAuth popup and no token to refresh. Omnisend issues the key against a single store, so the connection is locked to that store and reaches its contacts, campaigns, automations, segments, products, email templates, brand settings and analytics.

Can the agent actually send campaigns, or only draft them?

It can do both, and they are separate steps. create_campaign makes a draft, update_campaign edits it, and send_campaign submits the draft for sending — email or SMS. cancel_campaign stops one and marks it canceled. Because sending is a write, you can hold it behind approval-required-for-writes, or set the connection to read-only so the agent can only report on campaigns.

How does it handle orders and abandoned carts?

There are no separate order or cart tools. trigger_event sends a customer event — custom or a standard ecommerce event — which tracks the behavior, creates or updates the matched contact, and fires the automations listening for it. That single endpoint replaces the legacy v3 orders and carts REST resources, which is the thing most people expect to find and don't.

What is the right way to update thousands of contacts without hitting rate limits?

Use create_batch. It runs many create or update operations of one resource type in a single asynchronous request, which is exactly what the batch endpoints exist for: better throughput and fewer rate limit problems. get_batch reports status, progress counts and errors, and list_batch_items shows each item's request, response and response code so you can find the rows that failed. PopMCP can also watch for Bulk import finished and Bulk import stopped.

Which Omnisend API version does this run on, and how much of it is covered?

The current 2026-03-15 API, with 76 operations across 14 modules — 27 reads and 49 writes. Forty tools load into your AI client by default and the rest stay searchable, so the tool list does not swamp the model's context. Triggers are covered too, from contact subscribes and campaign sends to a threshold on email and SMS revenue.

Does it need contact IDs, or can it work from email addresses?

Both, depending on the tool. create_contact upserts on the email identifier, so importing a contact that already exists updates it instead of duplicating. update_contact needs the contact ID, while update_contact_by_email takes an email in a required query parameter and updates that one contact despite the plural-sounding name. add_contact_tags and remove_contact_tags identify every contact by contact ID, so run list_contacts first to resolve emails, phone numbers, segments or tags into IDs.

Do I have to run or host the Omnisend MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

Why do only 40 of the 76 tools load by default?

Loading 76 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 40-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.

What is the difference between a tool and a trigger?

A tool is something your AI calls — there are 76 here. A trigger is something PopMCP watches for you: 15 Omnisend events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Omnisend.

Connect Omnisend to your AI in minutes

Launch a hosted MCP endpoint for Omnisend, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP