customerio
Server Details
Query people, segments, campaigns, and message deliveries; send transactional email or broadcasts.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4/5 across 13 of 13 tools scored.
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.
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.
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.
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 toolscustomerio_get_campaignGet campaignARead-onlyInspect
Get a single campaign by id. App API: GET /v1/campaigns/{campaign_id}.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Campaign id. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description reinforces this with the GET endpoint. It adds the API path context but does not disclose error behavior, auth requirements, or response format, so it adds only modest value beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with the core purpose front-loaded and the API path appended for reference. There is no redundant or misleading content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only lookup with complete schema coverage and supporting annotations, the description is sufficient. Nothing needed to invoke the tool correctly is missing, and the API endpoint provides useful context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the single parameter campaign_id is already fully documented in the schema. The description adds no additional meaning beyond the endpoint placeholder, which matches the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise action and resource: 'Get a single campaign by id.' It clearly differentiates from sibling tools like customerio_list_campaigns and customerio_get_campaign_metrics by focusing on a single campaign lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'by id' phrasing makes the use case clear: call this when you already have a specific campaign_id and want one campaign. It does not explicitly mention alternatives like listing campaigns, but the context is sufficient for an agent to choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customerio_get_campaign_metricsGet campaign metricsARead-onlyInspect
Get delivery/engagement metrics for a campaign over time. App API: GET /v1/campaigns/{campaign_id}/metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Metric type filter (e.g. email, push, sms). | |
| steps | No | Number of periods to return. | |
| period | No | Bucket size. Default days. | |
| campaign_id | Yes | Campaign id. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds a concrete API endpoint (GET /v1/campaigns/{campaign_id}/metrics) and the notion of 'over time,' but does not disclose behavior like returned metric types, pagination, or time-range constraints beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the first states the core purpose, and the second gives the exact API route. No filler or redundant explanation, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only metrics tool with fully documented parameters and no output schema, the description provides enough context: it identifies the metric category (delivery/engagement), the time-series nature, and the endpoint. It does not describe the return shape, but that is less critical given the otherwise strong schema and annotation coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so parameters like period, steps, and type are already documented. The description only restates campaign_id in the endpoint path and adds no further semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Get delivery/engagement metrics for a campaign over time.' This clearly distinguishes it from sibling tools like customerio_get_campaign, which would fetch campaign details rather than metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool does but gives no guidance on when to choose it over alternatives, such as customerio_get_campaign for campaign details or customerio_list_campaigns for campaign discovery. No exclusions or alternative routes are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customerio_get_customer_attributesGet customer attributesARead-onlyInspect
Get a single person's attributes (profile fields). App API: GET /v1/customers/{customer_id}/attributes.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | The person's id (or cio_id / email, per your identifier setup). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint already conveys the read-only nature; the description reinforces it with the GET method and endpoint path. It adds no further behavioral detail such as response shape or empty-attribute behavior, but annotations carry the main burden here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, with the core action first and the endpoint as a concise reference. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only GET with no output schema, the description plus schema fully cover what is needed to call it: resource, endpoint, identifier semantics, and safety. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 100% of the one parameter, including identifier alternatives (id, cio_id, email), so the description need not restate it. The endpoint path indirectly confirms customer_id placement but adds no new semantic meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource precisely: a single person's attributes/profile fields, via a GET to the customers attributes endpoint. This differentiates it from siblings like customerio_get_customer_messages and customerio_get_customer_segments by resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the appropriate use case: retrieving profile fields for one person, which is distinct from messages or segments. It does not explicitly name alternatives or exclusions, but the 'attributes/profile fields' scoping provides clear enough context for this simple tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customerio_get_customer_messagesGet customer messagesARead-onlyInspect
List messages (deliveries) sent to a single person. App API: GET /v1/customers/{customer_id}/messages.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max messages to return. | |
| start | No | Pagination cursor from a previous response's `next`. | |
| customer_id | Yes | The person's id. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that this is a safe read operation, so the description does not need to re-justify safety. It adds the API endpoint and clarifies that messages mean deliveries, but it does not describe response format, pagination behavior, or any other behavioral nuance beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The core purpose comes first, and the API endpoint provides precise reference without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity read-only tool with fully documented parameters, the description is nearly sufficient. It could mention the shape of the returned list, but the absence of an output schema and the clear endpoint make this a minor gap rather than a blocking one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents customer_id, limit, and start. The description adds no parameter-level meaning beyond what the schema already provides, which meets the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and a clear resource ('messages (deliveries) sent to a single person'), which immediately distinguishes it from list-all sibling tools. The endpoint string reinforces the exact scope. This is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'sent to a single person' implies the intended use case, and the customer_id requirement reinforces that. However, it does not explicitly contrast with customerio_list_messages or state when to prefer one over the other, so the guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customerio_get_customer_segmentsGet customer segmentsARead-onlyInspect
List the segments a single person belongs to. App API: GET /v1/customers/{customer_id}/segments.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | The person's id. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the per-customer scope and exact GET endpoint, but doesn't mention response format, empty results, or pagination behavior; with readOnly covered, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences; the first states behavior and scope, the second the exact endpoint. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only lookup with full schema coverage and readOnlyHint, the description plus schema leave no critical gap for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema describes customer_id as 'The person's id' and coverage is 100%, so the schema carries the parameter definition. Description merely reinforces the person context and endpoint placeholder; no additional format or lookup guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('List') and resource ('segments') constrained to a single person, and names the exact API endpoint. The 'single person' qualifier distinguishes it from sibling customerio_list_segments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear that this is for segment membership of one person, not a general segment catalog. However, it does not explicitly name the sibling alternative (customerio_list_segments) or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customerio_list_campaignsList campaignsARead-onlyInspect
List all campaigns in the workspace. App API: GET /v1/campaigns.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds the HTTP GET method, which is consistent but minimal. It does not disclose pagination, rate limits, or response structure, though these are less critical for a zero-parameter read-only list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no redundant wording. The core behavior is front-loaded, and the API endpoint provides useful technical context without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only list tool, the description is complete. It identifies the resource, the scope (workspace), and the underlying API call. No additional context seems necessary for an agent to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so parameter semantics are not applicable. The description correctly explains the operation without needing to add parameter-specific detail, and the schema coverage is complete by virtue of being empty.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List all campaigns in the workspace.' This clearly distinguishes the tool from siblings like customerio_get_campaign, which retrieves a single campaign. The API endpoint reinforces the exact scope without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the tool's purpose: listing all campaigns in the workspace. It does not explicitly name alternatives or exclusions, but the 'all campaigns' framing makes the use case evident and distinct from single-entity or metric-focused tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customerio_list_collectionsList collectionsARead-onlyInspect
List reusable data collections in the workspace. App API: GET /v1/collections.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that this is a safe read operation. The description adds modest context via 'GET /v1/collections' and the workspace scoping, but does not disclose pagination, response format, or other behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The core action is front-loaded and the API endpoint is included as valuable context without bloating the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only list tool, the description is nearly complete: it names the resource, the workspace scope, and the underlying endpoint. The only minor gap is that it does not describe the response structure, and no output schema is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so parameter-level documentation is unnecessary. The description's reference to listing all collections in the workspace is sufficient context for an agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List'), the resource ('reusable data collections'), and the scope ('in the workspace'). The explicit App API endpoint 'GET /v1/collections' further disambiguates it from sibling list tools like list_campaigns or list_segments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. It does not mention any exclusions, prerequisites, or conditions that would help an agent decide between this and the other list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customerio_list_exportsList exportsARead-onlyInspect
List data exports in the workspace. App API: GET /v1/exports.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that this is a safe read operation, and the description adds the HTTP route and workspace scope. However, it provides no additional behavioral context such as pagination, auth requirements, or response details, so the description only modestly extends the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb, resource, and scope, and each part adds value including the API endpoint. There is no redundant language or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only listing tool, the description is largely sufficient: it identifies the resource, scope, and exact endpoint. It could optionally mention pagination or return format, but an agent has enough information to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty, so there are no parameters to document; the baseline for zero-parameter tools is 4. The description's mention of 'workspace' provides scope context rather than parameter semantics, which is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List'), names the resource ('data exports'), and defines the scope ('in the workspace'), making the operation unambiguous. It also provides the exact API endpoint, and because sibling tools target different resources (campaigns, segments, messages), this is clearly distinguishable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance or alternative tools are mentioned; the intended context is implied by the resource name and the sibling list tools. Since there is no dedicated export sibling, exclusions are not strictly necessary, but an agent is left to infer when this is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customerio_list_messagesList messagesARead-onlyInspect
List sent messages (deliveries) across the workspace, filterable by type/campaign/newsletter. App API: GET /v1/messages.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Message type filter, e.g. email | push | sms | in_app | webhook | slack | twilio. | |
| limit | No | Max messages to return. | |
| start | No | Pagination cursor from a previous response's `next`. | |
| drafts | No | Include drafts. | |
| campaign_id | No | Filter to a specific campaign. | |
| newsletter_id | No | Filter to a specific newsletter. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint=true, and the description reinforces this with 'sent messages (deliveries)' and a GET endpoint. It adds useful scope ('across the workspace') but does not disclose pagination/return characteristics or other behavioral traits beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the primary action and scope are front-loaded, filters are summarized in one phrase, and the endpoint line is useful context without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, optional-parameter list tool this is nearly complete: scope, filterable fields, and endpoint are all present, and pagination/limit semantics are fully covered by the schema. The only small gap is no mention of the response envelope, and there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description only echoes the filters (type/campaign/newsletter) already documented in the schema. It adds no new meaning beyond the parameter names and schema descriptions, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'List sent messages (deliveries) across the workspace' – a specific verb, resource, and scope. It also names filter dimensions and the API endpoint, and 'across the workspace' distinguishes it from sibling customerio_get_customer_messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a broad workspace-level read and lists filters, so an agent can tell when a general list is intended. However, it never states when to prefer sibling tools like customerio_get_customer_messages for per-customer messages, or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customerio_list_segmentsList segmentsARead-onlyInspect
List all segments in the workspace (id + name + type). App API: GET /v1/segments.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds the REST endpoint and the returned fields, but discloses no pagination, rate-limit, or authorization behavior; for a zero-parameter list this is acceptable but not especially rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, focused sentence front-loads the action and scope, then adds a useful API reference. There is no filler and every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only list operation with no output schema, the description is sufficiently complete. It names the exact resource, scope, and response fields, and the annotation covers the safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so there is no parameter documentation burden. The baseline of 4 applies, and the description avoids any ambiguity by focusing on what the response contains rather than on inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States an explicit verb ('List'), resource ('all segments in the workspace'), and result shape (id + name + type). The phrase 'all segments in the workspace' also distinguishes it from the customer-scoped sibling tool customerio_get_customer_segments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies workspace-level enumeration, but it does not explicitly say when to choose this over sibling tools such as customerio_get_customer_segments. No alternative is named and no exclusion is given, so guidance remains implicit rather than direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customerio_search_customersSearch customersARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max people to return. | |
| start | No | Pagination cursor from a previous response's `next`. | |
| filter | Yes | Customer.io filter object, e.g. {"segment":{"id":7}} or {"and":[{"attribute":{"field":"email","operator":"exists"}}]}. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds the underlying App API endpoint (POST /v1/customers) plus filter-query examples. It does not disclose pagination behavior or response characteristics, but the annotation covers the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences: the first states purpose, the second gives filter examples, and the third provides the endpoint. Every sentence contributes information without redundancy or padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with one required nested object parameter, the description plus schema is nearly complete. It could be stronger with explicit pagination or response hints, but the schema already documents start as a cursor from a previous response's 'next'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline applies; the filter examples in the description largely mirror the schema's own examples. Limit and start are already documented in the schema, and the description adds no extra semantic detail for them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search/list') applied to people, with a concrete mechanism: a Customer.io filter of segment or attribute conditions. Worked examples make the tool's intent unmistakable, and it is clearly distinct from sibling tools like list_segments or get_customer_attributes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes a clear context: use this when you need people matching a Customer.io filter. It does not explicitly name alternatives or exclusion criteria, but the filter-based search context is enough to route most calls correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customerio_send_transactional_emailSend transactional emailADestructiveInspect
⚠️ 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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient email address. | |
| body | No | Override the email body. | |
| from | No | Override the sender address. | |
| subject | No | Override the subject line. | |
| identifiers | Yes | Person identifiers, e.g. {"id":"..."} or {"email":"..."}. | |
| message_data | No | Template variables (liquid) to interpolate into the message. | |
| send_to_unsubscribed | No | If true, send even to unsubscribed recipients. | |
| transactional_message_id | Yes | The transactional message template id (or trigger name). | |
| disable_message_retention | No | If true, don't retain the message body. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation destructiveHint=true already signals side effects, but the description goes further with the explicit warning '⚠️ SENDS A REAL EMAIL', immediate delivery, and the underlying App API endpoint. It adds meaningful behavioral context beyond the annotation, though it omits details like retention or consent implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, purposeful sentences with the critical side-effect warning front-loaded. There is no filler, and the endpoint/delivery details earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a side-effecting tool with 9 parameters, nested objects, no output schema, and a sibling broadcast tool, this description is thin. It warns about real delivery but does not describe the return/ack behavior, error expectations, or how to choose between a message id and trigger name. Schema descriptions compensate for parameters, but the overall operational context remains incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema description coverage is 100%, so the baseline is 3. The description only echoes the `to` recipient and template concept without adding new meaning beyond the schema's per-parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific language: 'Send a transactional email using a transactional message template' and names the concrete recipient behavior ('Delivers immediately to the `to` recipient'). The 'transactional' qualifier differentiates it from the sibling broadcast tool even without naming it explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to prefer this tool over alternatives such as customerio_trigger_broadcast. The description implies transactional use but never states exclusions or routing criteria, leaving the agent to infer the right choice from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customerio_trigger_broadcastTrigger broadcastADestructiveInspect
⚠️ 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).
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | Liquid variables available to the broadcast templates. | |
| recipients | No | Recipient filter object (overrides the broadcast's configured audience). | |
| broadcast_id | Yes | The API-triggered broadcast id. | |
| id_ignore_missing | No | Skip recipients missing an id instead of erroring. | |
| email_add_duplicates | No | Allow duplicate email recipients. | |
| email_ignore_missing | No | Skip recipients missing an email instead of erroring. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description adds a crucial warning that this 'SENDS TO REAL RECIPIENTS' and delivers to the 'resolved recipient set.' This goes well beyond the annotation by emphasizing real-world side effects and that recipient resolution is part of execution, which is exactly the behavioral context an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loads the most important warning, then states the action and endpoint with no wasted words. Every element contributes meaning, and it remains easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive 6-parameter send operation with no output schema, the description provides the essential safety warning and operation clarity. The schema fills in parameter semantics, though the description could have added a bit more about expected outcomes or response behavior; as-is it is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description itself does not explain any parameters, but the input schema covers 100% of them with meaningful descriptions such as 'Recipient filter object (overrides the broadcast's configured audience)' and 'Skip recipients missing an id instead of erroring.' With full schema coverage, the description does not need to add parameter detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Trigger an API-triggered broadcast') on a clear resource ('broadcast'), and the warning 'SENDS TO REAL RECIPIENTS' strongly distinguishes it from the read-only sibling tools. It also names the exact API endpoint, leaving no doubt about what operation this tool performs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the use case clear: trigger an API-driven broadcast to a resolved recipient set. It does not explicitly name alternatives or say when not to use it, but the broadcast resource and the sibling 'send_transactional_email' implicitly separate the two sending paths.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user or an account that owns the GitHub organization, then choose Claim with GitHub.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseBqualityFmaintenanceProvides an interface to manage email marketing, contact lists, dynamic templates, and email analytics via SendGrid's API.211,30529ISC
- AlicenseBqualityCmaintenanceManages SendGrid email workflows including design library, transactional templates, marketing contacts and lists, single sends, and direct email sends via the SendGrid v3 API.801,305MIT
- FlicenseNot gradedqualityDmaintenanceEnables sending emails (including mass emailing), querying, updating, and canceling delayed emails via the Resend API.
- AlicenseBqualityBmaintenanceEnables sending transactional emails, managing templates, suppression lists, sending domains, webhooks, subaccounts, and retrieving account metrics via the SparkPost API.2023MIT