Skip to main content
Glama

emailoctopus

Server Details

Manage lists, contacts and campaigns, and read campaign performance reports on EmailOctopus.

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.1/5 across 13 of 13 tools scored. Lowest: 3.3/5.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct resource (list, contact, campaign) and action (create, get, update, delete, list, reports), with no overlap in purpose.

Naming Consistency5/5

All tools follow the emailoctopus_{verb}_{resource} pattern consistently, using clear verbs and correct singular/plural forms.

Tool Count5/5

13 tools cover the key operations for an email marketing platform without being excessive or sparse, well-scoped to the domain.

Completeness3/5

List and contact operations are complete (CRUD), but campaign management is read-only—missing create, update, send, and delete campaigns, which is a notable gap.

Available Tools

13 tools
emailoctopus_create_contactCreate contactA
Destructive
Inspect

CREATES a new contact in a list — this MODIFIES live data (adds a subscriber). email_address is required; optionally set fields (keyed by field tag), tags, and status. EmailOctopus: POST /lists/{list_id}/contacts. Returns the created contact.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoTags to apply to the contact, e.g. ["vip", "beta"].
fieldsNoCustom field values, keyed by the list's field tag (e.g. {"FirstName": "Ada"}).
statusNoSubscription status: subscribed, pending, or unsubscribed.
list_idYesThe list's id to add the contact to.
email_addressYesThe contact's email address.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already set destructiveHint=true. The description adds that it modifies live data and returns the created contact, but this is minimal beyond the annotation. No contradictions.

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 sentences front-loaded with 'CREATES a new contact' and includes essential details (required, optional, HTTP method, return value). No extraneous 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?

Given 5 parameters and no output schema, the description covers creation action, required fields, and return value. It lacks error handling or rate limits but is sufficient for a straightforward create tool.

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% with descriptions for each parameter. The description echoes required fields and mentions 'keyed by field tag' for fields, which adds slight context but largely duplicates schema. 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?

The description clearly states it creates a new contact in a list, modifies live data, and provides the HTTP method. It distinguishes itself from siblings like delete, update, and get by specifying creation action.

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?

It mentions required and optional parameters but does not explicitly guide when to use this tool versus siblings like update_contact or delete_contact. Usage context is implied but not directly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

emailoctopus_create_listCreate listA
Destructive
Inspect

CREATES a new list — this MODIFIES live data. Provide a name. EmailOctopus: POST /lists. Returns the created list.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesHuman-readable name for the new list.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true; description adds that it modifies live data and returns the created list, but no extra detail on auth or limits.

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 concise sentences, no wasted words, front-loaded with key warning and action.

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 simple 1-param tool with annotations, the description covers creation, return value, and live data warning. Could mention error scenarios, but not essential.

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% with a clear description; the description merely repeats 'Provide a `name`' without adding meaning 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?

Description clearly states 'CREATES a new list' with verb and resource, and distinguishes from sibling tools like get_list or update_list.

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?

Implies use case (creating a list) but provides no explicit guidance on when to use vs alternatives, nor any exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

emailoctopus_delete_contactDelete contactA
Destructive
Inspect

PERMANENTLY REMOVES a contact from a list — this MODIFIES live data and cannot be undone. contact_id is the MD5 hash of the lowercased email address, or the id from list_contacts. EmailOctopus: DELETE /lists/{list_id}/contacts/{contact_id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_idYesThe list's id.
contact_idYesThe contact's id to delete — the MD5 hash of the lowercased email address, or the id from list_contacts.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly states permanence and live data modification, going beyond the destructiveHint annotation to emphasize irreversibility and the contact_id derivation. No contradiction.

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 sentences, front-loaded with critical info (permanent removal, irreversibility). No redundant words.

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 tool with 2 parameters and no output schema, the description covers the action, parameter semantics, and behavior. Lacks mention of error handling or permissions, but adequate given simplicity.

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 covers both parameters with descriptions identical to part of the tool description, so no additional meaning added beyond schema. However, the description provides context by tying contact_id to the API endpoint. Baseline 3 applies due to 100% 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 clearly states the action (permanently removes), resource (contact from a list), and notes the irreversible nature. It distinguishes from sibling tools like create, update, get by focusing on deletion.

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?

No explicit guidance on when to use vs alternatives. The description implies usage for permanent deletion but does not mention when not to use or alternative tools like update_contact for deactivation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

emailoctopus_get_campaignGet campaignA
Read-only
Inspect

Get a single campaign by its id. Returns the campaign's full state — name, status, subject, from, content, and created_at. EmailOctopus: GET /campaigns/{campaign_id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idYesThe campaign's id.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as readOnlyHint=true. The description adds value by detailing the returned fields and confirming the HTTP GET method and endpoint. It does not contradict annotations. However, it omits potential error conditions or rate limits, which would be useful for completeness.

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 consists of two concise sentences. The first states the primary action and parameter, the second details the return value. It also includes the API endpoint for reference. No extraneous information.

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?

Given the simplicity of the tool (single parameter, no output schema), the description adequately explains what the tool does and what it returns. It could briefly note that the campaign_id is required, but the schema already specifies this.

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 schema covers 100% of the single parameter (campaign_id) with a description. The tool description adds minimal extra meaning beyond stating 'by its id'. Baseline 3 is appropriate given the high schema coverage and simple parameter.

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 explicitly states 'Get a single campaign by its id' and lists the returned fields (name, status, subject, from, content, created_at). This clearly identifies the action, resource, and scope, distinguishing it from sibling tools like listing campaigns or getting reports.

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 usage when retrieving a campaign's full state, but it does not explicitly state when to use this tool versus alternatives like emailoctopus_get_campaign_report or emailoctopus_list_campaigns. No exclusions or when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

emailoctopus_get_campaign_reportGet campaign reportA
Read-only
Inspect

Get a campaign's aggregate performance report — sent, opened, clicked, bounced, unsubscribed, complained, and related counts. EmailOctopus: GET /campaigns/{campaign_id}/reports/summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idYesThe campaign's id.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the tool is known as read-only. The description adds context on what data is returned (specific counts) but does not disclose other behavioral aspects like authentication requirements or rate limits.

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 efficient sentences: first states purpose and lists key data points, second provides the API endpoint. No superfluous information, front-loaded with actionable details.

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 simple tool with one parameter, no output schema, and clear context from sibling names, the description fully covers what the tool does and what it returns. No further details are needed.

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?

Only one parameter (campaign_id) exists and the schema already describes it as 'The campaign's id.' with 100% coverage. The description does not add additional meaning or usage hints 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 clearly states it retrieves a campaign's aggregate performance report with specific metrics (sent, opened, clicked, bounced, etc.). It distinguishes from sibling tools like get_campaign (campaign details) and get_campaign_links_report (links report) by focusing on aggregate performance.

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 usage for obtaining aggregate report data but does not explicitly state when to use this tool versus alternatives or provide exclusions. Sibling tools are listed but no guidance on selection is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

emailoctopus_get_contactGet contactA
Read-only
Inspect

Get a single contact in a list. Returns email_address, fields, tags, status, and created_at. contact_id is the MD5 hash of the lowercased email address, or the id returned by emailoctopus_list_contacts. EmailOctopus: GET /lists/{list_id}/contacts/{contact_id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_idYesThe list's id.
contact_idYesThe contact's id — the MD5 hash of the lowercased email address, or the id from list_contacts.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, consistent with 'Get'. The description adds useful context about the contact_id format (MD5 hash of lowercased email) and the underlying API call, enhancing transparency beyond annotations.

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 concise sentences with no fluff. Each sentence adds value: purpose, return fields, ID format, and API reference. Front-loaded with the main action.

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?

Given no output schema, the description covers return fields and ID format. It references the API endpoint for further context. Missing explicit error handling or edge cases, but sufficient for a simple read tool.

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?

Schema coverage is 100%, so description adds limited new parameter info. However, it clarifies the contact_id format and lists return fields, which compensates for the lack of output 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 clearly states the verb 'Get' and the resource 'a single contact in a list', and lists specific return fields. This distinguishes it from sibling tools like list_contacts (listing multiple contacts) and create_contact.

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 usage for retrieving a single contact by ID, but does not explicitly state when to use it versus alternatives like list_contacts. No guidance on prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

emailoctopus_get_listGet listA
Read-only
Inspect

Get a single list by its id. Returns the list's full state — name, contact counts by status, and created_at. EmailOctopus: GET /lists/{list_id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_idYesThe list's id.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, and the description confirms it's a GET request (read-only). No additional behavioral context (e.g., error handling, rate limits, data freshness) is provided beyond the annotation, which is adequate but not enhanced.

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 sentences, front-loaded with the core purpose and return values. Every sentence adds value, with no redundancy or unnecessary details.

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?

Given the tool's simplicity (1 parameter, no output schema, with annotations), the description provides a clear picture of what the tool returns (name, contact counts, created_at) and the API endpoint. It is nearly complete, though could mention potential error states.

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% with the single parameter list_id already described. The description does not add any extra semantics or usage details beyond the schema, meeting the baseline for high 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 clearly states the tool retrieves a single list by its ID and specifies the returned data (name, contact counts, created_at). It distinguishes from sibling tools like emailoctopus_list_lists by focusing on a single list.

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 usage for fetching a specific list's details but provides no explicit guidance on when to avoid this tool or use alternatives like emailoctopus_list_lists. It lacks explicit 'when to use' and 'when not to use' instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

emailoctopus_list_campaignsList campaignsA
Read-only
Inspect

List all campaigns in the account. Returns {data:[...],paging:{...}} — each campaign's id, name, status, subject, and created_at. Paginate with limit (max 100) and starting_after. EmailOctopus: GET /campaigns.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax campaigns to return (1..100).
starting_afterNoPagination cursor — the id to start after (from the previous page's paging).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true, consistent with description. Description adds pagination details and API endpoint, enhancing understanding beyond annotations.

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 sentences, front-loaded with action and return format, no unnecessary words.

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?

Full return shape described, parameters documented, siblings listed. No missing context for this simple list tool.

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?

Schema covers 100% of parameters with descriptions; description adds context (limit max 100, starting_after is a cursor), providing additional 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?

Clearly states verb 'List' and resource 'campaigns', specifies return fields and pagination structure. Distinguishes from siblings like get_campaign (single campaign) and list_contacts/lists.

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?

Implies listing all campaigns but does not explicitly state when to use this vs. get_campaign or provide alternative guidance. No usage exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

emailoctopus_list_contactsList contactsA
Read-only
Inspect

List the contacts in a list. Returns {data:[...],paging:{...}} — each contact's id, email_address, fields, tags, status, and created_at. Paginate with limit (max 100) and starting_after. EmailOctopus: GET /lists/{list_id}/contacts.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax contacts to return (1..100).
list_idYesThe list's id.
starting_afterNoPagination cursor — the id to start after (from the previous page's paging).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description provides the response structure, pagination mechanism, and endpoint, adding value beyond the readOnlyHint annotation. It does not contradict annotations.

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 sentences plus endpoint, no filler. Front-loaded with the core purpose, highly efficient.

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?

Adequate for a list tool with 3 params and no output schema. Describes response format and pagination, though could mention default limit or ordering.

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?

Schema coverage is 100%, and the description adds context by showing the response shape and how limit and starting_after work for pagination, enhancing understanding 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 explicitly states 'List the contacts in a list' and specifies returned fields (id, email_address, etc.) and the endpoint, clearly distinguishing it from sibling tools like get_contact.

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?

Usage is implied via the verb 'list' and pagination details, but no explicit guidance on when to use this tool versus alternatives (e.g., get_contact for a single contact) or 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.

emailoctopus_list_listsList listsA
Read-only
Inspect

List all lists in the account. Returns {data:[...],paging:{...}} — each list's id, name, contact counts by status, and created_at. Paginate with limit (max 100) and starting_after (cursor from the previous page). EmailOctopus: GET /lists.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax lists to return (1..100).
starting_afterNoPagination cursor — the id to start after (from the previous page's paging).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, so the description does not need to reiterate safety. It adds valuable behavioral details like return format ({data, paging}) and pagination mechanics, which go beyond annotations.

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 sentences, front-loaded with purpose and return structure. Every sentence provides essential information without 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?

Given the tool's simplicity (2 params, 100% schema coverage, readOnlyHint annotation), the description fully covers purpose, return shape, and pagination. No output schema needed as description specifies the response structure.

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 description adds meaning beyond the schema by explaining pagination: 'Paginate with `limit` (max 100) and `starting_after` (cursor from the previous page)'. Schema coverage is 100%, but this contextual explanation enhances understanding.

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 'List all lists in the account' with a specific verb and resource. It distinguishes from sibling tools like emailoctopus_get_list (single list) and emailoctopus_create_list (create).

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 usage for listing all lists but does not explicitly mention when not to use it or suggest alternative tools like get_list for a single list. However, the context of listing all lists is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

emailoctopus_update_contactUpdate contactA
Destructive
Inspect

UPDATES an existing contact in a list — this MODIFIES live data. Send only the fields you want to change (email_address, fields, tags, status). contact_id is the MD5 hash of the lowercased email address, or the id from list_contacts. EmailOctopus: PUT /lists/{list_id}/contacts/{contact_id}. Returns the updated contact.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoTags to apply to the contact, e.g. ["vip", "beta"].
fieldsNoCustom field values, keyed by the list's field tag (e.g. {"FirstName": "Ada"}).
statusNoSubscription status: subscribed, pending, or unsubscribed.
list_idYesThe list's id.
contact_idYesThe contact's id — the MD5 hash of the lowercased email address, or the id from list_contacts.
email_addressNoThe contact's email address.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses mutation effect ('MODIFIES live data') matching annotation destructiveHint=true. Adds that it returns the updated contact and explains partial update behavior. Provides API endpoint info.

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 sentences: first states purpose and effect, second gives usage advice and API reference. No wasted words, front-loaded with key action.

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?

Given no output schema, description still mentions return value (updated contact). All parameters are documented, and the tool's effect is clear. Sufficient for an update operation.

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?

Schema coverage is 100%, so baseline is 3. Description adds value by explaining the contact_id derivation (already in schema) and advising to send only changed fields, which is helpful beyond what schema provides.

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 ('UPDATES an existing contact') and the resource ('contact in a list'), with the warning 'this MODIFIES live data'. It effectively distinguishes from siblings like create_contact and delete_contact.

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?

Provides guidance to send only fields to change (partial update), and explains contact_id format. Lacks explicit when-not-to-use or alternatives, but context is clear for a focused update tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

emailoctopus_update_listUpdate listA
Destructive
Inspect

UPDATES an existing list by id — this MODIFIES live data. Sets the list's name. EmailOctopus: PUT /lists/{list_id}. Returns the updated list.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe new name for the list.
list_idYesThe list's id to update.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as destructive (destructiveHint: true). The description adds value by emphasizing 'this MODIFIES live data' and specifying it returns the updated list, providing clarity beyond the annotation. No contradiction with annotations.

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 extremely concise, using two sentences plus an API endpoint reference. It front-loads the key action and result, with no wasted words. Every sentence serves a clear purpose.

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 simple tool with two required parameters and no output schema, the description covers the main behavior (update, return list) and side effect (modifies live data). It could mention prerequisites or error cases, but overall it is fairly complete given the tool's simplicity.

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 both parameters (list_id, name) are already well-documented in the schema. The description only mentions 'Sets the list's `name`' which repeats the schema, adding no new semantics beyond what is already provided.

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 (UPDATES), the resource (existing list by id), and the specific field ('Sets the list's `name`'). It also notes that it modifies live data and returns the updated list, distinguishing it from sibling tools like create_list, get_list, or delete_list.

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 does not explicitly state when to use this tool versus alternatives like create_list or get_list. It implies usage for updating a list name, but lacks explicit 'when to use' or 'when not to use' guidance, making it less helpful for an AI agent deciding between siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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
    581
    29
    ISC
  • F
    license
    B
    quality
    D
    maintenance
    Enables management of email campaigns, subscribers, lists, segments, journeys, templates, transactional email, and client/account settings through the Campaign Monitor API via natural language.
    100
  • A
    license
    -
    quality
    D
    maintenance
    Enables sending and managing emails via Postmark, including email delivery with templates, template listing, and delivery statistics.
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    Manage Mailchimp audiences, campaigns, and members via the Mailchimp Marketing API through natural language queries.
    6
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.