Skip to main content
Glama

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 with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
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.

MCP client
Glama
MCP server

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.

100% free. Your data is private.
Tool DescriptionsA

Average 4/5 across 13 of 13 tools scored.

Server CoherenceA
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 campaignA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idYesCampaign id.
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 metricsA
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.
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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 attributesA
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).
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 messagesA
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.
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 segmentsA
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.
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 campaignsA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 collectionsA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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 exportsA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 messagesA
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.
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 segmentsA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 customersA
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"}}]}.
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 emailA
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.
Behavior4/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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 broadcastA
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.
Behavior5/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • 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
    1,305
    29
    ISC
  • A
    license
    B
    quality
    C
    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
    1,305
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables sending emails (including mass emailing), querying, updating, and canceling delayed emails via the Resend API.
  • A
    license
    B
    quality
    B
    maintenance
    Enables sending transactional emails, managing templates, suppression lists, sending domains, webhooks, subaccounts, and retrieving account metrics via the SparkPost API.
    20
    23
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.