Skip to main content
Glama

Customer.io MCP by usefulapi

Server Details

Query people, segments, campaigns, and message deliveries; send transactional email or broadcasts.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
69.6% over 54 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

TDQS

A4/5.0

Scored across 13 tools

Disambiguation5/5

Each tool maps to a distinct resource and action: campaign, customer, segment, message, collection, export, or send. The potentially similar pairs like list_messages/get_customer_messages and list_segments/get_customer_segments are clearly differentiated by workspace-wide vs per-customer scope.

Naming Consistency5/5

All tools consistently use a customerio_ prefix with verb_noun snake_case naming. get_ is used for single-resource operations, list_ for collections, and send_/trigger_ for actions, creating a predictable pattern.

Tool Count5/5

13 tools is well within the ideal range for an API integration and each tool represents a meaningful endpoint. There is no obvious redundancy or padding; campaigns, customers, messages, segments, collections, exports, and sends all have coverage.

Completeness3/5

The surface is solid for reading Customer.io data and triggering sends, but it lacks common lifecycle operations like creating/updating/deleting customers, tracking events, or listing transactional templates. These are notable gaps that can force agents to rely on out-of-band IDs for send workflows.

Available Tools

13 tools
customerio_get_campaignGet campaign
Read-only
Inspect

Get a single campaign by id. App API: GET /v1/campaigns/{campaign_id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idYesCampaign id.
customerio_get_campaign_metricsGet campaign metrics
Read-only
Inspect

Get delivery/engagement metrics for a campaign over time. App API: GET /v1/campaigns/{campaign_id}/metrics.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoMetric type filter (e.g. email, push, sms).
stepsNoNumber of periods to return.
periodNoBucket size. Default days.
campaign_idYesCampaign id.
customerio_get_customer_attributesGet customer attributes
Read-only
Inspect

Get a single person's attributes (profile fields). App API: GET /v1/customers/{customer_id}/attributes.

ParametersJSON Schema
NameRequiredDescriptionDefault
customer_idYesThe person's id (or cio_id / email, per your identifier setup).
customerio_get_customer_messagesGet customer messages
Read-only
Inspect

List messages (deliveries) sent to a single person. App API: GET /v1/customers/{customer_id}/messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax messages to return.
startNoPagination cursor from a previous response's `next`.
customer_idYesThe person's id.
customerio_get_customer_segmentsGet customer segments
Read-only
Inspect

List the segments a single person belongs to. App API: GET /v1/customers/{customer_id}/segments.

ParametersJSON Schema
NameRequiredDescriptionDefault
customer_idYesThe person's id.
customerio_list_campaignsList campaigns
Read-only
Inspect

List all campaigns in the workspace. App API: GET /v1/campaigns.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

customerio_list_collectionsList collections
Read-only
Inspect

List reusable data collections in the workspace. App API: GET /v1/collections.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

customerio_list_exportsList exports
Read-only
Inspect

List data exports in the workspace. App API: GET /v1/exports.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

customerio_list_messagesList messages
Read-only
Inspect

List sent messages (deliveries) across the workspace, filterable by type/campaign/newsletter. App API: GET /v1/messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoMessage type filter, e.g. email | push | sms | in_app | webhook | slack | twilio.
limitNoMax messages to return.
startNoPagination cursor from a previous response's `next`.
draftsNoInclude drafts.
campaign_idNoFilter to a specific campaign.
newsletter_idNoFilter to a specific newsletter.
customerio_list_segmentsList segments
Read-only
Inspect

List all segments in the workspace (id + name + type). App API: GET /v1/segments.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

customerio_search_customersSearch customers
Read-only
Inspect

Search/list people by a Customer.io filter (segment or attribute conditions). e.g. filter={"segment":{"id":7}} or {"and":[...]}. App API: POST /v1/customers.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax people to return.
startNoPagination cursor from a previous response's `next`.
filterYesCustomer.io filter object, e.g. {"segment":{"id":7}} or {"and":[{"attribute":{"field":"email","operator":"exists"}}]}.
customerio_send_transactional_emailSend transactional email
Destructive
Inspect

⚠️ SENDS A REAL EMAIL. Send a transactional email using a transactional message template. Delivers immediately to the to recipient. App API: POST /v1/send/email.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient email address.
bodyNoOverride the email body.
fromNoOverride the sender address.
subjectNoOverride the subject line.
identifiersYesPerson identifiers, e.g. {"id":"..."} or {"email":"..."}.
message_dataNoTemplate variables (liquid) to interpolate into the message.
send_to_unsubscribedNoIf true, send even to unsubscribed recipients.
transactional_message_idYesThe transactional message template id (or trigger name).
disable_message_retentionNoIf true, don't retain the message body.
customerio_trigger_broadcastTrigger broadcast
Destructive
Inspect

⚠️ SENDS TO REAL RECIPIENTS. Trigger an API-triggered broadcast, delivering to the resolved recipient set. App API: POST /v1/send/broadcast (posts to /v1/campaigns/{broadcast_id}/triggers).

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNoLiquid variables available to the broadcast templates.
recipientsNoRecipient filter object (overrides the broadcast's configured audience).
broadcast_idYesThe API-triggered broadcast id.
id_ignore_missingNoSkip recipients missing an id instead of erroring.
email_add_duplicatesNoAllow duplicate email recipients.
email_ignore_missingNoSkip recipients missing an email instead of erroring.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 13 tool updates
    • Changedcustomerio_get_campaign3 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / properties / campaign_id / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "number"
        -  }
        -]
      • addedInput schema / properties / campaign_id / type
        Added value: +[
        +  "string",
        +  "number"
        +]
    • Changedcustomerio_get_campaign_metrics3 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / properties / campaign_id / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "number"
        -  }
        -]
      • addedInput schema / properties / campaign_id / type
        Added value: +[
        +  "string",
        +  "number"
        +]
    • Changedcustomerio_get_customer_attributes1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcustomerio_get_customer_messages1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcustomerio_get_customer_segments1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcustomerio_list_campaigns1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcustomerio_list_collections1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcustomerio_list_exports1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcustomerio_list_messages5 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / properties / campaign_id / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "number"
        -  }
        -]
      • addedInput schema / properties / campaign_id / type
        Added value: +[
        +  "string",
        +  "number"
        +]
      • removedInput schema / properties / newsletter_id / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "number"
        -  }
        -]
      • addedInput schema / properties / newsletter_id / type
        Added value: +[
        +  "string",
        +  "number"
        +]
    • Changedcustomerio_list_segments1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcustomerio_search_customers1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcustomerio_send_transactional_email3 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / properties / transactional_message_id / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "number"
        -  }
        -]
      • addedInput schema / properties / transactional_message_id / type
        Added value: +[
        +  "string",
        +  "number"
        +]
    • Changedcustomerio_trigger_broadcast3 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / properties / broadcast_id / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "number"
        -  }
        -]
      • addedInput schema / properties / broadcast_id / type
        Added value: +[
        +  "string",
        +  "number"
        +]
  2. 13 tool updates
    • First observedcustomerio_get_campaign
    • First observedcustomerio_get_campaign_metrics
    • First observedcustomerio_get_customer_attributes
    • First observedcustomerio_get_customer_messages
    • First observedcustomerio_get_customer_segments
    • First observedcustomerio_list_campaigns
    • First observedcustomerio_list_collections
    • First observedcustomerio_list_exports
    • First observedcustomerio_list_messages
    • First observedcustomerio_list_segments
    • First observedcustomerio_search_customers
    • First observedcustomerio_send_transactional_email
    • First observedcustomerio_trigger_broadcast

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables sending transactional email and campaigns, managing contacts and templates, and reading delivery reports and wallet usage from any MCP client.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to send transactional email, authenticate sending domains, track delivery, and diagnose deliverability issues programmatically.
    13
    33 npm
    MIT
  • A
    license
    B
    quality
    F
    maintenance
    Provides an interface to manage email marketing, contact lists, dynamic templates, and email analytics via SendGrid's API.
    21
    898 npm
    32
    ISC
  • A
    license
    B
    quality
    D
    maintenance
    Manages SendGrid email workflows including design library, transactional templates, marketing contacts and lists, single sends, and direct email sends via the SendGrid v3 API.
    80
    898 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.