send16-mcp
Server Details
Email for AI agents: send mail, manage contacts, automations & webhooks. Zero-DNS first send.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
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 3.5/5 across 79 of 79 tools scored. Lowest: 1.8/5.
Each tool targets a distinct resource or action, with clear verb_noun naming. For example, create_contact, update_contact, delete_contact are clearly separate from create_audience, etc. Even similar-sounding tools like send_email (transactional) and send_broadcast (campaign) have distinct descriptions that prevent confusion.
The overwhelming majority of tools follow a consistent verb_noun pattern with underscores (e.g., list_campaigns, send_email, pause_automation). Only 'whoami' deviates slightly but it is a standard CLI convention. No mixing of camelCase or other styles.
With 79 tools, the server far exceeds the recommended 3-15 range. While the domain is broad (email marketing), such a high count is overwhelming for agents and often indicates excessive granularity. Many tools could be combined or omitted without loss of functionality.
The tool set covers the full lifecycle of email marketing: domain management, contacts, audiences, segments, campaigns, transactional emails, automations, templates, webhooks, suppression, inbox, workspace settings, and even AI-powered features like design and review. No obvious gaps remain.
Available Tools
79 toolsactivate_automationAInspect
Activate an automation. New events matching its triggers will start enrolling contacts.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| automationId | Yes | Automation ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose all behavioral traits. It indicates that activation causes enrollment to start, but does not mention idempotency, side effects, required permissions, or whether activation can be undone. Only a minimal behavioral effect is described.
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 sentences, no redundant words. The first sentence provides the action, the second clarifies the consequence. Every sentence 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?
Given the tool's simplicity (one required parameter, no output schema), the description adequately covers the core behavior. However, it does not indicate what the response looks like upon success or error, which would improve completeness.
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% with descriptions for both parameters. The description adds no additional meaning beyond the schema; it does not explain how to obtain the automationId or the role of apiKey. 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?
The description clearly states the action (activate) and the resource (automation), and explains the effect: 'New events matching its triggers will start enrolling contacts.' This distinguishes it from siblings like pause_automation and enroll_in_automation.
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 usage (to start enrollment), but lacks explicit guidance on when to use vs alternatives, prerequisites, or when not to use. For example, it does not state that the automation must be in a paused or inactive state prior to activation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_contacts_to_audienceBInspect
Add contacts (by ID) to an audience.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| audienceId | Yes | Audience ID | |
| contactIds | Yes | Contact IDs to add |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as idempotency, handling of duplicate contacts, or whether adding to a non-existent audience fails. The description only states the basic action.
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 that conveys the core functionality without unnecessary words. It is appropriately concise.
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?
Given the tool's simplicity and lack of output schema, the description is minimally adequate. However, it omits details like error cases (e.g., invalid audience ID) and behavior when contacts already in the audience.
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 is 3. The description adds no additional meaning beyond the schema's parameter descriptions.
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 ('Add'), the resource ('contacts to an audience'), and the method ('by ID'). It is unambiguous and distinguishes the tool from its sibling 'remove_contact_from_audience'.
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 provides no guidance on when to use this tool versus alternatives, no prerequisites, and no context about the meaning of adding contacts to an audience.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_convo_noteAInspect
Add a private internal note on a conversation. Notes are visible only to workspace members.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Note body (markdown supported) | |
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| convoId | Yes | Conversation ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that notes are private to workspace members, but omits other behavioral traits such as whether adding a note triggers notifications, permissions required (beyond workspace membership), or the tool's behavior on nonexistent conversations.
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, front-loaded sentence that conveys the essential information without any wasted words. Every part is meaningful.
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 simple tool, the description covers the core purpose and a key caveat. However, it lacks details on return value (no output schema), potential side effects, or constraints like note length limits, which would improve completeness.
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 is 3. The tool description does not add meaning beyond what the schema already provides for parameters. It confirms the overall purpose but offers no new parameter-specific context.
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 ('Add'), the resource ('private internal note on a conversation'), and a key property ('visible only to workspace members'). This effectively distinguishes it from sibling tools like 'update_convo' or 'send_reply'.
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 when to use (adding a private note) but does not explicitly specify when not to use or mention alternative tools. It provides no exclusion criteria or contextual hints for choosing between tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_domainAInspect
Register a new sending domain. Returns the DNS records the user must add to their DNS provider, after which they should call check_domain_health to verify.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| domain | Yes | FQDN to register (e.g. 'mail.example.com') |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that DNS records are returned and that verification is needed, but does not mention potential issues like idempotency, rate limits, or handling of existing domains.
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 sentences that are efficient and front-loaded, containing no unnecessary words. Every sentence adds value.
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?
With no output schema, the description explains the return value (DNS records). The tool has only 2 simple parameters, and the description provides enough context for an agent to use it 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 coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema's parameter descriptions for apiKey and domain.
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 'Register' and resource 'sending domain', clearly distinguishing it from sibling tools like check_domain_health and list_domains.
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 explains what the tool does and instructs the user to call check_domain_health afterward, providing clear context. However, it does not explicitly state when not to use this tool or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_suppressionBInspect
Add an email to the suppression list. Future sends to this address will be blocked.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | |||
| notes | No | ||
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| reason | No | manual |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It states the main effect (blocking future sends), which is useful, but omits details like reversibility, idempotency, or error handling. The transparency is adequate but not thorough.
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 concise sentences that immediately convey the tool's purpose and effect. No redundant or extraneous information.
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?
Given 4 parameters, no output schema, and low schema coverage, the description is insufficient. It lacks details on authentication requirements, parameter formats, or expected outcomes, leaving the agent without essential context for correct usage.
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 only 25%. The description does not explain the meaning or usage of 'notes', 'apiKey', or 'reason' beyond their schema definitions. For example, 'reason' has an enum but no context on when to use each value.
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 ('add'), the resource ('email to the suppression list'), and the consequence ('future sends will be blocked'). It distinctively separates this from sibling tools like 'remove_suppression' and 'list_suppressions'.
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 guidance is provided on when to use this tool versus alternatives. For example, it does not mention scenarios like adding emails due to bounces, complaints, or manual actions, nor does it explain when not to use it or potential prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_domain_healthAInspect
Check the DNS health of a specific domain, including DKIM, SPF, DMARC, and MX record verification status. Triggers a fresh DNS lookup.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| domainId | Yes | Domain ID to check health for |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'triggers a fresh DNS lookup' but does not disclose whether the operation is read-only, authentication requirements, rate limits, or error behavior. Lack of safety or idempotency information limits transparency.
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 sentences with no redundant words. First sentence defines purpose and scope; second adds a key behavioral trait. Every sentence adds value, making it highly concise and well-structured.
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?
The description covers the tool's core function and records checked but omits output format or return value. No error handling or response schema is described. Given the tool's simplicity and lack of output schema, it is partially complete but could be improved by specifying what the response contains.
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% (both 'apiKey' and 'domainId' have descriptions). The description adds no extra parameter-level meaning beyond the schema, so a baseline score of 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?
The description clearly states the verb 'check' and the resource 'DNS health of a specific domain', listing specific records (DKIM, SPF, DMARC, MX). It distinguishes this tool from siblings like 'add_domain' or 'list_domains' by focusing on health verification.
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 usage (e.g., after adding a domain) but does not explicitly state when to use this tool versus alternatives or provide any exclusion criteria. Sibling tools like 'get_deliverability_status' or 'add_domain' are not mentioned, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_actionBInspect
Create an Action that maps an event name to a transactional template. Each matching event sends one email to the contact.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Display name | |
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| enabled | No | ||
| sendOnce | No | Only send once per contact regardless of how many times the event fires | |
| eventName | Yes | Event name to match (e.g. 'order.placed') | |
| delaySeconds | No | Delay before sending | |
| templateSlug | Yes | Transactional template slug to send |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states that each matching event sends one email, but does not disclose idempotency, overwrite behavior, rate limits, or authentication nuances beyond the apiKey parameter.
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 sentences, front-loaded with core purpose, zero unnecessary words. Efficient and clear.
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?
Missing output schema and annotations; description does not explain return value, error states, or pagination. For a tool with 7 parameters (3 required), this is insufficient.
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 86%, high enough that baseline is 3. The description adds the behavioral context of sending one email, but does not elaborate on parameter meanings 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 clearly states the verb 'Create', the resource 'Action', and the specific function: mapping an event name to a transactional template that sends one email per event. This distinguishes it from siblings like send_email or send_broadcast which directly send 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?
No explicit guidance on when to use this tool versus alternatives like send_event or update_action. Lacks context on prerequisites or scenarios where this is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_audienceDInspect
Create a new audience.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| description | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears the full burden of disclosure. It only states 'Create,' implying a mutation, but does not clarify required permissions, side effects, or return behavior. This is insufficient for a creation tool.
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?
While the single sentence is short, it is under-specified; conciseness should be paired with completeness. The description does not earn its place as it adds negligible value beyond the tool name.
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 creation tool with three parameters, no output schema, and no annotations, the description is critically incomplete. It lacks definition of what an audience is, parameter constraints, success behavior, and any contextual information needed for an agent to use it 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 description adds no meaning to the parameters. Schema coverage is only 33% (only apiKey has a description), and the tool description does not mention or explain any parameters, leaving agents uninformed about mandatory fields like 'name' or optional ones like 'description'.
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 'Create a new audience.' is essentially a tautology, restating the tool name. While it indicates the verb and resource, it adds no new information beyond the name itself, failing to provide specific context or differentiate from siblings.
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 guidance is provided on when to use this tool versus alternatives like 'delete_audience' or 'list_audiences'. The description lacks any context about appropriate usage scenarios or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_campaignAInspect
Create a new email campaign in Send16. The campaign is created in draft status and can be edited before sending.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Campaign name (internal label) | |
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| replyTo | No | Reply-to email address | |
| subject | Yes | Email subject line | |
| fromName | Yes | Sender display name | |
| fromEmail | Yes | Sender email (must be from a verified domain) | |
| previewText | No | Preview text shown in inbox alongside subject |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the campaign is created in draft status, a key behavioral trait, but does not mention what the tool returns, error handling, or authentication requirements. With no annotations, more transparency would be beneficial.
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 sentence that is concise and front-loaded with the core purpose. No redundant or extraneous information.
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?
The description covers the essential purpose and draft status but lacks information about return values, error scenarios, and prerequisites. Given 7 parameters and no output schema, it is adequate but not complete.
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 adds no parameter-specific information beyond the schema, which has 100% coverage. Per guidelines, baseline 3 applies when schema coverage is high and description adds no extra context.
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 tool creates a new email campaign in Send16, specifying the verb 'create' and the resource 'email campaign'. It also mentions the draft status, which distinguishes it from sending or updating campaigns.
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 usage when creating a campaign and notes it can be edited before sending, but it does not explicitly state when not to use this tool or provide alternatives. Sibling tools like update_campaign and send_campaign are not referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_contactBInspect
Add a new contact to your Send16 audience. Contacts are automatically subscribed to receive emails.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Tag names to assign to this contact | |
| Yes | Contact email address | ||
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| lastName | No | Contact last name | |
| firstName | No | Contact first name | |
| customFields | No | Custom field key-value pairs |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It mentions auto-subscription but omits critical details: handling of duplicate emails, confirmation emails, rate limits, or success/failure behavior. The agent lacks sufficient behavioral context to use this tool safely.
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 sentences, no redundant information, front-loaded with the core action. Every word 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 mutation tool with 6 parameters (including nested objects) and no output schema or annotations, the description is too sparse. It fails to explain return value, error cases, or duplicate contact behavior, leaving the agent under-informed.
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 baseline is 3. The description adds no parameter-specific information beyond what the schema already provides, but does not detract.
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 (Add a new contact) and the resource (Send16 audience), and distinguishes from siblings like update_contact and delete_contact by specifying 'Add a new contact' and noting auto-subscription.
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 implicitly suggests use for adding new contacts, but provides no explicit guidance on when to use this tool versus alternatives like import_contacts or add_contacts_to_audience, nor any when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_topicBInspect
Create a new subscription topic. Contacts opt into topics individually via the preference center.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Display name shown to contacts | |
| slug | No | URL-safe slug (auto-derived from name if omitted) | |
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| isDefault | No | Auto-subscribe new contacts to this topic | |
| description | No | Description shown in the preference center |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must bear the full burden of behavioral disclosure. It mentions opt-in behavior but omits important traits such as required permissions, potential side effects, or rate limits. The mutation nature is implicit but not elaborated.
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 concise at two sentences, front-loading the primary action. While efficient, it could afford a bit more detail without becoming verbose, making it slightly under-informative for its length.
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?
Given the tool has 5 parameters, no output schema, and no annotations, the description should explain the creation process, return value (e.g., created topic ID), and any prerequisites. It fails to address these, leaving gaps for an AI agent.
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 is 3. The description adds no additional meaning beyond what the schema already provides for each parameter. It does not clarify nuances like auto-derivation of slug or the effect of isDefault.
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 verb 'Create' and the resource 'a new subscription topic', distinguishing it from siblings like update_topic, delete_topic, and list_topics. It also adds context about opt-in via the preference center.
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 hints at usage context (opt-in mechanism) but provides no explicit guidance on when to use this tool vs. alternatives like update_topic or delete_topic. No when-not-to-use or alternative recommendations are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_webhookAInspect
Register an outgoing webhook endpoint. Send16 POSTs event JSON to this URL with an HMAC-SHA256 signature. Outgoing webhooks are a plan feature.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | HTTPS endpoint to receive events | |
| name | Yes | A label for this endpoint | |
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| events | Yes | Event types to subscribe to | |
| enabled | No | Whether the endpoint is active (default true) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses that events are sent as POSTs with HMAC-SHA256 signature. But it omits details like whether registration is immediate, validation steps, or what happens on failure. Moderate transparency.
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 sentences, no filler. The purpose is front-loaded. Minor typo ('Send16') detracts slightly but overall concise.
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 creation tool with 5 parameters, no output schema, and no annotations, the description is somewhat complete but lacks details on response, permissions, or error behavior. The plan feature mention adds 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 baseline is 3. The description adds that the URL is an endpoint receiving events with signature, but this only slightly reinforces schema descriptions. No additional meaning for other parameters.
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 ('Register') and resource ('outgoing webhook endpoint'), distinguishing it from sibling tools like list_webhooks or delete_webhook. The mention of 'Send16' is a minor typo but does not obscure the purpose.
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 mentions 'Outgoing webhooks are a plan feature', which provides a constraint on usage. However, it lacks explicit guidance on when to use this tool versus alternatives (e.g., regenerate_webhook_secret) 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.
delete_actionCInspect
Delete an Action.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| actionId | Yes | Action ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral transparency. It merely states 'delete' without disclosing whether the operation is irreversible, has cascading effects, or requires specific permissions, which is insufficient for safe use.
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 extremely concise (one sentence), but it sacrifices useful detail. While not verbose, its brevity without additional context makes it minimally adequate.
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 delete operation with two parameters (one optional), the description lacks context about return values, side effects, error conditions, or behavior if the action does not exist. It feels incomplete for an AI agent to use safely.
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 descriptions already cover both parameters (apiKey and actionId) with 100% coverage. The description adds no extra meaning beyond what the schema provides, earning a baseline score of 3.
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 'Delete an Action' clearly states the verb and resource, making the tool's purpose easy to understand. However, it does not differentiate from sibling tools like create_action or get_action, which is acceptable for a distinct action like deletion.
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 provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites, such as the action existing before deletion. It lacks any contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_audienceAInspect
Delete an audience (list). Contacts are not deleted — only the list and its memberships are removed.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| audienceId | Yes | Audience ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It discloses that contacts are preserved while list memberships are removed, providing key behavioral insight beyond the name.
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?
Single sentence conveys purpose, resource, and critical behavior with no wasted words. Front-loaded and efficient.
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 simple delete tool with full schema coverage, description is mostly sufficient. Missing note on return value, but acceptable given lack of 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 coverage is 100%, so description adds no extra meaning to parameters. 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?
Description uses specific verb 'Delete' and resource 'audience (list)', and clarifies that contacts are not deleted, distinguishing it from contact deletion tools.
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?
Description states the operation but does not provide guidance on when to use this tool versus alternatives like remove_contact_from_audience or delete_contact. Usage context 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.
delete_campaignAInspect
Delete a draft campaign. Sent campaigns cannot be deleted (only archived).
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| campaignId | Yes | Campaign ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the critical behavioral constraint that only draft campaigns can be deleted, while sent campaigns cannot. With no annotations provided, the description carries full burden and adequately conveys this limitation, though it could mention that deletion is irreversible.
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 sentences with zero waste. Front-loaded with the core action and constraint, every word 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 simple 2-parameter tool with no output schema, the description is largely complete. It covers the essential constraint about draft vs. sent. Missing guidance on what happens upon attempting deletion of a sent campaign (e.g., error response), but otherwise adequate.
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% for the two parameters, so baseline is 3. The description adds no extra meaning beyond the schema; the parameter 'campaignId' is simply implied.
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 the tool deletes draft campaigns, distinguishing that sent campaigns cannot be deleted (only archived). The verb 'delete' and resource 'draft campaign' are specific, and the distinction from archiving differentiates from siblings.
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?
Explicitly provides when to use (draft campaigns) and when not to use (sent campaigns), and mentions the alternative action (archive). This gives clear guidance for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_contactBInspect
Delete a contact and all associated events. Irreversible.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| contactId | Yes | Contact ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses irreversibility and deletion of associated events, but lacks details on permissions, rate limits, or cascade effects. Without annotations, more depth would be beneficial.
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, no fluff. Efficient but 'Irreversible.' as a standalone sentence is slightly fragmented.
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?
Adequate for a simple delete tool: defines purpose and finality. Lacks mention of return behavior or undo possibilities, which would improve completeness.
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 covers both parameters (100% coverage). Description adds no extra meaning; baseline applies.
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 verb 'Delete' and resource 'contact' with added detail 'all associated events.' Distinguishes from siblings like 'remove_contact_from_audience' but could specify scope more precisely.
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?
Only hints at caution via 'Irreversible.' No explicit when-to-use vs alternatives, no prerequisite or context guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_topicAInspect
Delete a subscription topic. All subscribers will be detached.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| topicId | Yes | Topic ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Explicitly states that all subscribers will be detached, which is a behavioral consequence not captured in the input schema. With no annotations provided, this disclosure is valuable.
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 concise, informative sentences with no superfluous words. Each sentence adds value: the first states the action, the second highlights a key side effect.
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 simple delete operation, the description covers the primary effect. It could optionally mention idempotency or error handling for missing topics, but overall it is sufficiently complete.
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 already provides 100% coverage with descriptions for both parameters. The description does not add any additional semantic meaning beyond what the schema offers.
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?
Description clearly states the tool deletes a subscription topic and adds the side effect of detaching subscribers. This distinguishes it from sibling tools like create_topic, update_topic, and list_topics.
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 guidance on when to use this tool versus alternatives. For example, it does not suggest using list_topics first to confirm the topic exists, or mention scenarios where deletion is inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_webhookBInspect
Delete an outgoing webhook endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| webhookId | Yes | Webhook ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only states 'Delete' which implies a destructive action, but it does not disclose whether the deletion is reversible, if there are any side effects (e.g., breaking integrations), or authorization requirements. With no annotations, the agent lacks critical behavioral context.
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 very concise—only four words—which avoids verbosity. However, it lacks any structure or additional details that could aid the agent, but for a simple operation, brevity is acceptable.
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 straightforward delete operation, the description provides minimal context. It does not explain the return value (since no output schema) or potential errors, but given the tool's simplicity, it is just adequate.
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 has 100% description coverage for both parameters (apiKey and webhookId), so the description adds no further meaning. The baseline score of 3 is appropriate as the schema already documents parameter semantics.
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 'Delete an outgoing webhook endpoint' clearly specifies the action (delete) and resource (outgoing webhook endpoint). It distinguishes itself from sibling tools like create_webhook and list_webhooks.
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 provides no guidance on when to use this tool versus alternatives, such as when a webhook should be removed or prerequisites like needing the webhook ID. It is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
design_email_templateBInspect
Use AI to generate a complete email HTML template based on a description. Returns ready-to-use HTML that can be sent or used in campaigns.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Type of email template to generate | |
| style | Yes | Visual style/aesthetic for the template | |
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| brandColor | No | Primary brand color as hex code (e.g. "#4F46E5") | |
| companyName | No | Company or brand name to include in the template | |
| description | Yes | Detailed description of the email content and purpose (e.g. 'Welcome email for a SaaS product with feature highlights and CTA to start trial') |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It states 'Use AI to generate,' which implies a generative (non-read-only) operation that likely consumes API credits. It does not disclose side effects, rate limits, or authentication requirements beyond the apiKey parameter.
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 sentences, both providing valuable information: the action (generate using AI) and the output (ready-to-use HTML). It is concise and 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?
Given the complexity (6 parameters, no output schema), the description mentions the return type (HTML) but lacks details on the AI model, potential costs, or API key usage. It is adequate but 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?
Schema coverage is 100% with parameter descriptions. The tool description adds no additional meaning beyond the schema, so baseline score of 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?
The description clearly states it generates a complete email HTML template from a description, distinguishing it from sibling tools like 'render_email_content' which likely renders existing content. However, it could more explicitly differentiate from 'generate_email_from_url'.
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 usage when a user needs to create an HTML template from a description, but it does not specify when not to use it or mention alternative tools for similar tasks like 'render_email_content' or 'send_email'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duplicate_campaignAInspect
Duplicate a campaign as a new draft. Useful for A/B variants or re-using a successful template.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| campaignId | Yes | Campaign ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It does not mention side effects, required permissions, whether the duplicate is a full copy, or what happens to the original campaign. The phrase 'as a new draft' is helpful but insufficient detail.
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 sentences with no extraneous words. The primary action is front-loaded, and the use cases follow logically. Perfectly concise.
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 tool with no output schema and no annotations, the description should explain expected return value (e.g., the new campaign ID), any constraints (e.g., campaign status requirements), and what is duplicated. It lacks these details, leaving the agent with gaps.
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 schema already documents both parameters. The description adds no additional meaning beyond what the schema provides. 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?
The description clearly states the action ('duplicate a campaign') and the outcome ('as a new draft'). It distinguishes from siblings like 'create_campaign' and 'update_campaign' by specifying duplication. The use cases ('A/B variants or re-using a successful template') reinforce the purpose.
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 provides clear contexts for using the tool (A/B testing, template reuse). It does not explicitly list when not to use it or mention alternatives, but the intended usage is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enroll_in_automationAInspect
Manually enroll a contact in an active automation. The automation must be in 'active' status. Use send_event for event-driven enrollment.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| contactId | Yes | Contact UUID (use search_contacts to look up by email first) | |
| automationId | Yes | Automation ID to enroll into |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It discloses the precondition (active automation) but does not mention effects like idempotency, error behavior, or success response. This is adequate but lacks depth.
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 focused sentences. No wasted words. Front-loaded with purpose, then constraint and alternative. Excellent conciseness.
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 simple 3-parameter tool with no output schema, the description covers purpose, precondition, and alternative. Could mention expected result (e.g., enrollment confirmation) but overall complete enough.
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% and parameter descriptions in schema are complete. The description adds no new parameter semantics beyond restating the action's purpose. 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?
The description clearly states the action: 'Manually enroll a contact in an active automation.' It specifies the resource (contact) and the target (automation), and distinguishes from siblings like 'send_event' and 'activate_automation'.
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?
Explicit usage constraints: 'The automation must be in active status' and an alternative: 'Use send_event for event-driven enrollment.' This provides clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_email_from_urlAInspect
Scrape a URL (e.g. a launch blog post or product page) and generate an email draft from its content. Returns subject, preview text, and HTML body.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public URL to scrape and turn into an email | |
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| instructions | No | Additional guidance — e.g. 'announcement style, focus on the new feature' |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full behavioral disclosure. It states the tool scrapes a URL and generates an email draft, but omits important details such as required permissions, error handling (invalid URL), rate limits, or privacy considerations. The return format is mentioned, but behavioral traits beyond that are lacking.
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, well-structured sentence that fully conveys the tool's purpose and output. No redundant information.
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?
Given the absence of an output schema, the description usefully explains the return values (subject, preview text, HTML body). It does not cover edge cases or prerequisites (e.g., URL accessibility), but for a scraping-and-generation tool, it provides sufficient completeness.
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%, with each parameter having a clear description in the schema. The tool description adds no further parameter-specific meaning beyond what the schema already provides. 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?
The description clearly specifies the verb 'scrape' and resource 'URL', states the output (subject, preview text, HTML body), and gives usage examples like 'launch blog post or product page', which effectively distinguishes it from sibling tools like design_email_template or send_email.
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 provides clear context with examples of when to use the tool (blog post, product page). However, it does not explicitly state when not to use it or mention alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_actionAInspect
Get a single Action with its trigger config and template binding.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| actionId | Yes | Action ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, authentication needs, rate limits, or side effects. For a 'get' operation, stating it is safe or read-only would add value.
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, concise sentence that is front-loaded with the core purpose. It contains no unnecessary words or repetition.
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?
Given the lack of an output schema and the simplicity of the tool (2 parameters, no nested objects), the description is adequate but minimal. It does not explain the return format or what fields an 'Action' contains, which could be helpful for an agent.
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 schema already documents both parameters sufficiently. The description adds no additional meaning beyond 'Get a single Action...', which is minimal but acceptable given the 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 clearly states the verb 'Get' and the resource 'Action' and specifies what is included ('trigger config and template binding'), effectively distinguishing it from sibling tools like list_actions, create_action, etc.
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 usage for retrieving a single action's details, but it does not explicitly state when to use this tool versus alternatives like list_actions or get_automation, nor does it provide exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_automationAInspect
Get a single automation by ID, including its trigger, steps, and current status.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| automationId | Yes | Automation ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Covers basic read behavior and returned fields but omits idempotency, error conditions, and auth requirements (apiKey parameter not mentioned). No annotations to supplement.
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?
Single sentence, 12 words, no redundancy. Front-loaded with purpose and key details.
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?
Return shape is partially described (trigger, steps, status), compensating for missing output schema. No output schema, but description gives enough context for a simple retrieval.
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 baseline is 3. Description adds no extra meaning beyond the schema's parameter descriptions.
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?
Description clearly states the tool retrieves a single automation by ID, specifying included attributes (trigger, steps, status). Distinct from sibling list_automations and activate_automation.
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 guidance on when to use this tool versus siblings like list_automations or get_automation_stats. Usage is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_automation_statsAInspect
Get aggregate analytics for an automation: total enrollments, completed, exited, open/click rates per step.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| automationId | Yes | Automation ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist. Description discloses return type (aggregate analytics) and specific metrics, but does not mention side effects, permissions needed, or behavior beyond listing. Partial transparency, but not comprehensive for a no-annotation case.
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?
Single, focused sentence that directly states purpose and key metrics. No wasted words. Front-loaded with action and resource.
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?
No output schema, so description must clarify return structure. It names metrics but not their format (e.g., nested steps, totals vs rates). Among many sibling tools, differentiation is minimal. Adequate but 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?
Schema covers both parameters (apiKey, automationId) with 100% description coverage. Description does not add new semantic insights beyond what the schema provides, so 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?
Specific verb 'Get' + resource 'aggregate analytics for an automation', listing exact metrics (enrollments, completed, exited, open/click rates per step). Clearly distinguishes from siblings like get_automation (which returns automation details) and get_campaign_stats (campaign-specific).
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 guidance on when to use this tool versus alternatives like get_automation or list_automations. No prerequisites, when-not-to-use, or context provided. Agent must infer from name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_brandAInspect
Get the workspace's brand settings: colors, logo, fonts, and the DESIGN.md spec injected into AI generation prompts.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral aspects. It states what the tool retrieves (color, logo, fonts, DESIGN.md) but does not disclose if it is read-only, authentication requirements beyond the apiKey parameter, or any side effects. The description is adequate but lacks detail on permissions or request impact.
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, well-structured sentence that front-loads the key action and includes specific details about what is returned. Every word is essential, no fluff.
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?
With no output schema, the description provides useful context by listing the brand settings (colors, logo, fonts, DESIGN.md). However, it could mention the response format or any pagination/limits. Overall, it is sufficiently complete for a simple get operation.
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 only parameter 'apiKey' is fully described in the schema (100% coverage). The tool description does not add additional meaning beyond the schema, so it scores the baseline of 3.
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 identifies the tool as retrieving the workspace's brand settings, listing specific elements (colors, logo, fonts, DESIGN.md). It uses a strong verb 'Get' and a specific resource, distinguishing it from sibling 'update_brand'.
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 usage for obtaining brand settings but does not provide explicit guidance on when to use this tool versus others, nor does it mention when not to use it. No alternatives are listed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_campaign_statsAInspect
Get detailed performance statistics for a specific campaign including open rate, click rate, bounce rate, and delivery metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| campaignId | Yes | Campaign ID to get stats for |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description lists the metrics returned, giving a clear idea of the output, but does not disclose any behavioral aspects like required permissions, rate limits, or whether the operation is read-only (though implied).
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 sentence that is concise and front-loaded, containing no unnecessary words or repetition.
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?
Without an output schema, the description compensates by listing the key metrics returned (open rate, click rate, bounce rate, delivery metrics). However, it lacks details on response format or pagination. Given the tool's simplicity, it is mostly complete.
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% (apiKey and campaignId are documented in the schema). The description does not add additional meaning beyond what the schema already provides, so baseline score of 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?
The description clearly states the tool's action (Get) and resource (campaign statistics), listing specific metrics (open rate, click rate, bounce rate, delivery metrics). This distinguishes it from sibling tools like get_automation_stats or list_campaigns.
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 guidance on when to use this tool versus alternatives (e.g., get_automation_stats for automation stats, list_campaigns for campaign overview). No prerequisites or contextual clues provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_contact_health_scoreBInspect
Get a contact's 0-100 health score based on recent engagement (opens, clicks, replies).
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| contactId | Yes | Contact ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, description provides minimal behavioral info. It mentions basis (opens, clicks, replies) but doesn't disclose if the tool is read-only, permission requirements, or response structure.
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?
Single sentence, 12 words, directly states purpose. No extraneous information.
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 simple read-only query with no output schema, the description doesn't specify the response format beyond the score range. It could mention example return structure or error conditions.
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 covers both parameters with descriptions. The description adds no additional parameter-level context beyond what schema already provides.
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?
Description clearly states the tool returns a numeric health score (0-100) based on recent engagement metrics, distinguishing it from siblings like get_contact_timeline or search_contacts.
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 guidance on when to use this tool versus alternatives. For example, it doesn't mention that for detailed engagement breakdown, one should use get_contact_timeline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_contact_timelineCInspect
Get a contact's full activity timeline: emails received, events fired, opens, clicks, automation enrollments, topic changes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Page size | |
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| cursor | No | Pagination cursor | |
| contactId | Yes | Contact ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose behavior such as pagination limits, rate limits, auth requirements, or whether it is read-only. Minimal behavioral insight.
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?
Single sentence is efficient and front-loaded with purpose. No redundant information.
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?
No output schema; description omits details on pagination, ordering, time range, or return format. Incomplete for a list-retrieval tool.
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% with descriptions for all parameters. Description adds no extra semantics beyond schema, meeting baseline but not exceeding.
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?
Description specifies verb 'Get' and resource 'contact activity timeline' with concrete examples. Clear what tool does, though does not explicitly differentiate from siblings.
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 guidance on when to use this tool versus alternatives like list_contacts or get_contact_health_score. Lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_convoAInspect
Get a single conversation with its full thread of posts (incoming + outgoing).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Conversation ID | |
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool retrieves a conversation with posts, which is clear, but it omits details like authentication requirements, rate limits, or error behavior. Adequate but minimal.
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 concise sentence (12 words) that front-loads the core purpose. No wasted words.
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?
The description covers what the tool returns (a conversation with its thread), but could mention if pagination or sorting applies. Still, for a simple get-by-ID tool, it is sufficiently complete.
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% with descriptions for both parameters ('id' and 'apiKey'). The tool description adds no additional meaning beyond what the schema already provides, so 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?
The description explicitly states the verb 'Get', the resource 'a single conversation', and the scope 'with its full thread of posts (incoming + outgoing)'. This clearly distinguishes it from sibling tools like list_convos which would return multiple conversations without thread details.
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 guidance is provided on when to use this tool versus alternatives such as list_convos, get_message, or update_convo. There is no mention of prerequisites or use case context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_deliverability_statusAInspect
Get your workspace's deliverability summary — sending reputation, domain authentication status, and recent bounce/complaint health. (Deliverability Hub plan feature.)
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It implies a read operation and details the data returned, indicating non-destructive behavior. However, it does not explicitly state safety or other traits like auth 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with a parenthetical note, no wasted words. It front-loads the core purpose and is appropriately concise.
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?
Given no output schema, the description provides a high-level list of return data but lacks structural details (e.g., format, nesting). It is adequate but could be more complete for an agent to fully understand the response.
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 schema already fully describes the apiKey parameter. The description adds no additional meaning or context for the parameter, meeting the baseline of 3.
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 tool retrieves a deliverability summary, listing specific components (sending reputation, domain authentication, bounce/complaint health). It is distinct from sibling tools, none of which focus on deliverability.
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 only mentions the Deliverability Hub plan requirement, but does not provide explicit guidance on when to use this tool over alternatives or when not to use it. No comparisons or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_messageAInspect
Fetch a single message with its full event timeline (created → sent → delivered → opened → clicked → ...).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Message ID | |
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosure. It effectively communicates that the tool performs a read operation and returns a message with its event timeline. No contradictions or missing behavioral traits are apparent, but it could be slightly improved by mentioning what is not included.
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, front-loaded sentence that conveys the essential purpose without extraneous information. Every word earns its place, making it highly efficient.
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?
Given the simple parameter set, lack of an output schema, and no annotations, the description provides adequate context. It tells the user exactly what to expect (a single message with full timeline). Minor points like response format or error handling are not specified but are not critical for a straightforward fetch operation.
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% and both parameters (id and apiKey) are self-explanatory from their descriptions. The tool description adds no additional semantics 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Fetch', the resource 'single message', and the specific content 'full event timeline', which distinguishes it from sibling tools like list_messages or get_message_events.
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 does not provide explicit guidance on when to use this tool versus alternatives, such as get_message_events. It only implies the use case of fetching a single message with events, but lacks 'when not to use' or comparative context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_message_eventsAInspect
Get just the delivery event timeline for a message — no body or recipient details.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Message ID | |
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It states that the tool returns delivery event timeline and excludes body/recipient details, which is good, but it does not disclose any additional behavioral traits like authentication needs, error handling, or performance characteristics.
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, concise sentence with no filler. Every word adds value, clearly stating the purpose and scope.
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?
Given the tool's simplicity (2 parameters, no nested objects, no output schema), the description adequately explains what the tool returns and its limitation. However, it could mention if events are returned in order or paginated, which would improve completeness.
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% with parameters id and apiKey described in the schema. The description adds no additional meaning beyond what the schema already provides, so baseline score of 3 applies.
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 ('Get') and resource ('delivery event timeline for a message'), and explicitly distinguishes itself from siblings by stating 'no body or recipient details', making it clear what this tool does versus related tools like get_message.
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 usage for fetching only the event timeline without body or recipient details, but it does not explicitly say when to use this tool over alternatives or provide when-not-to-use guidance. The context is clear but not directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_templateBInspect
Get a single starter template by ID, including its EmailContent JSON.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| templateId | Yes | Template ID (slug) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It mentions including 'EmailContent JSON' in the response, which is helpful. However, it does not disclose that this is a read-only operation, any authentication requirements (though apiKey is in schema), or rate limits. The description is adequate but could be more comprehensive.
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 sentence that conveys the essential information without any fluff. It is front-loaded with the action and resource, and efficiently communicates the key detail about the response 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?
Given the simplicity of the tool (2 params, no nested objects, no output schema), the description sufficiently explains the input (templateId) and the key aspect of the output (includes EmailContent JSON). It does not explain other potential response fields or error conditions, but for a read operation with such a narrow focus, it is nearly complete.
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%, with both parameters described in the schema (apiKey: string for overriding env var; templateId: string, slug). The description adds that the tool gets by ID, which aligns with the schema, but does not provide additional meaning or constraints beyond the schema's own descriptions.
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 ('Get a single starter template by ID') and includes the resource type and what is included in the response ('EmailContent JSON'). It distinguishes from sibling tools like list_templates which fetch multiple templates. However, the term 'starter template' is not explained, and it might be unclear if this works for templates that are not starter templates.
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 provides no guidance on when to use this tool versus alternatives (e.g., list_templates for a list, or design_email_template for modifying). There are no explicit conditions or exclusions stated, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workspaceAInspect
Get the current workspace (the one the API key belongs to).
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It states 'Get' indicating a read operation, but does not mention any behavioral traits such as permission requirements, rate limits, or side effects. With zero annotation coverage, this minimal description lacks sufficient behavioral disclosure.
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 that conveys the core purpose without any superfluous words. It is appropriately front-loaded and concise.
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?
Given the tool's simplicity (no required parameters, 1 optional parameter, no output schema), the description provides the essential purpose. However, it lacks details about the output structure or properties. For a simple get operation, this is mostly complete but could hint at what fields are returned.
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 single parameter 'apiKey' is fully described in the schema with a description. The tool description adds context about overriding the environment variable, which is helpful. Since schema coverage is 100%, the description adds slight value 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 clearly states the tool retrieves the current workspace associated with the API key. Its verb 'Get' is specific, and the resource 'workspace' is distinguished from sibling 'list_workspaces' by noting it's the one the API key belongs to.
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 use when needing the current workspace, but does not explicitly state when to use this over alternatives like 'list_workspaces', nor does it mention prerequisites or exclusions. Thus, only implied usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workspace_usageAInspect
Get the current month's send count, contact count, and plan limits.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It accurately conveys a read operation returning usage metrics for the current month, but lacks details on security, rate limits, or side effects. Adequate but minimal.
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?
Single sentence with no waste. Front-loads the action and the key data items, making it efficient for quick comprehension.
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 simple read tool with one optional parameter and no output schema, the description sufficiently outlines the return values (send count, contact count, plan limits). Could be considered complete enough for correct agent 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?
Schema coverage is 100% with a single parameter (apiKey) already described in the schema. The tool description adds no extra meaning beyond what the schema provides, meeting the baseline.
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?
Description clearly states the verb 'get' and the resource 'workspace usage', listing specific data returned (send count, contact count, plan limits). It is distinct from sibling tools like 'get_workspace' or other list tools.
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 guidance on when to use this tool versus alternatives. No prerequisites, context, or exclusions are mentioned, leaving the agent without situational advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_contactsAInspect
Bulk import contacts from CSV data. Each row should have at minimum an email column. Tags can be applied to all imported contacts.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Tag names to apply to all imported contacts | |
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| csvData | Yes | CSV string with headers. Required column: "email". Optional: "firstName", "lastName", "tags" (comma-separated within quotes) | |
| updateExisting | No | Whether to update contacts that already exist |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It mentions CSV import and tag application but does not clarify error handling, idempotency, rate limits, or authentication details beyond the apiKey parameter. The updateExisting behavior is implied but not elaborated.
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 sentences, no fluff. Every sentence provides essential information: the action and format, then the minimum requirements and optional tags. Highly concise and well-structured.
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?
Given 4 parameters, no output schema, and no annotations, the description covers the core functionality but misses details like return value, batch limits, or error behavior. It is adequate for a simple import tool but not thoroughly complete.
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 baseline is 3. The description adds value by clarifying that each CSV row must have an email column and that tags apply to all imported contacts, which goes beyond the schema's parameter descriptions. However, it does not explain the CSV format in detail beyond what the schema provides.
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 ('Bulk import'), the resource ('contacts'), and the data format ('CSV data'). It also specifies the minimum requirement (email column) and the ability to apply tags, making the tool's purpose distinct from sibling tools like create_contact (single contact) or add_contacts_to_audience (add to audience).
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 usage for bulk imports but does not explicitly contrast with other contact-related tools (e.g., create_contact for single contacts, add_contacts_to_audience for adding to audiences). It lacks when-to-use or when-not-to-use guidance, relying on the user to infer from the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_actionsCInspect
List Actions. Actions fire a transactional template when a custom event arrives — Plunk-style 'event_name → template' pairings, simpler than full automations.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, required permissions, rate limits, or pagination. The description carries the full burden but fails to add significant transparency.
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 sentences, front-loaded with the purpose. The second sentence adds context about what Actions are, though it could be slightly more focused. Efficient overall.
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?
No output schema, and the description does not mention what the response contains, pagination, or limiting factors. For a simple list tool, it leaves out important context about return values and potential filtering.
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 baseline is 3. The description does not add extra context beyond what the schema provides for the apiKey parameter. It is adequate but not enhanced.
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 'List Actions' and explains what Actions are (event->template pairings). This distinguishes it from sibling tools like get_action and create_action, though it could be more explicit about the resource scope (all actions in workspace).
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 guidance on when to use list_actions vs get_action or other siblings. No mention of prerequisites, filters, or context for choosing this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_audiencesAInspect
List audiences (lists). An audience is a static, manually-managed group of contacts.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It does not disclose whether results are paginated, sorted, or require authentication (the apiKey parameter is optional). The description adds minimal behavioral context beyond the action itself.
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 uses only two sentences, with no unnecessary words. Every sentence adds value: the first states the action, the second defines the resource. It is perfectly concise.
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?
The description is adequate for a simple list tool, defining the resource. However, it lacks information about the response format, pagination, or any ordering. Given no output schema, these details would enhance completeness.
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?
With 100% schema description coverage, the baseline is 3. The description does not add any additional meaning to the apiKey parameter beyond what the schema already provides (overrides env var).
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 verb 'list' and resource 'audiences', and defines what an audience is ('static, manually-managed group of contacts'), distinguishing it from related concepts like segments. It is specific and 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 description implies usage for retrieving all audiences but provides no explicit guidance on when to use this tool vs siblings (e.g., list_segments) or when not to use it. No prerequisites or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_automation_enrollmentsBInspect
List active and historical enrollments for an automation.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| state | No | ||
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| cursor | No | ||
| automationId | Yes | Automation ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description lacks behavioral details such as pagination (cursor parameter not explained), authentication (apiKey only hinted), rate limits, or whether it returns full enrollment objects. Insufficient disclosure for a list endpoint.
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?
Single sentence, front-loaded with key information, no unnecessary words. Highly concise.
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?
Given 5 parameters and no output schema or annotations, description is incomplete. Missing explanation of pagination, filter options, return format, and required state parameter behavior. Not sufficient for an agent to use correctly without additional hints.
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?
With only 40% schema description coverage, description does not compensate. Does not explain state enum values, cursor usage, or limit meaning beyond what schema provides. The mention of 'active and historical' only vaguely hints at the state filter.
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?
Description uses specific verb 'List' and resource 'enrollments for an automation', clarifying scope with 'active and historical'. Clearly distinguishes from siblings like 'enroll_in_automation' and 'list_automations'.
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 guidance on when to use this tool versus alternatives like 'list_automations' or 'get_automation_stats'. No prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_automationsAInspect
List all automations in the workspace, including draft/active/paused status and trigger types.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It lists status and trigger types but does not disclose whether the operation is read-only, authentication requirements, rate limits, or what happens if the workspace is empty. The word 'List' implies idempotency, but that is not explicit.
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?
Single concise sentence front-loading the core purpose and key details (status and trigger types). No unnecessary words; every phrase 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?
Given no output schema, the description should indicate what the response contains. It mentions status and trigger types but not the full structure, pagination, or ordering. Adequate for a simple list tool, but could be more complete.
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%, and the schema already describes the single parameter 'apiKey' with its purpose. The tool description does not mention parameters, so it adds no additional meaning. 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 the action (list), resource (automations), scope (workspace), and additional details (draft/active/paused status and trigger types). Effectively distinguishes from sibling tools like 'get_automation' (single) and 'get_automation_stats' (statistics).
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?
Implied usage: use when you need an overview of all automations. However, no explicit guidance on when to use this versus alternatives like 'get_automation' for details, nor any exclusions or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_campaignsAInspect
List email campaigns with optional status filtering and pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| status | No | Filter campaigns by status | |
| pageSize | No | Results per page (max 100) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It states listing with filtering and pagination, which is clear but lacks details on authentication, rate limits, or result shape. It is adequate but not thorough.
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, front-loaded sentence with no extraneous information. Every word contributes value.
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 tool with 4 optional parameters and no output schema, the description is minimal. It does not explain return format, error handling, or pagination behavior beyond what the schema provides. Adequate but not complete.
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 each parameter is already documented. The description reinforces the purpose of status and pagination but adds no new meaning 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 'List email campaigns with optional status filtering and pagination' uses a specific verb-resource pair, clearly distinguishing it from sibling tools like list_actions or list_audiences.
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 guidance is provided on when to use this tool versus alternatives such as list_campaign_stats or get_campaign_stats. The description does not mention exclusions or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_contactsBInspect
List all contacts with optional filtering by subscription status and tag. Supports pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| tagId | No | Filter by tag ID | |
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| pageSize | No | Results per page (max 100) | |
| subscribed | No | Filter by subscription status |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry full burden. Only mentions pagination and filtering, but fails to disclose authentication, rate limits, or return value structure.
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 succinct sentences that front-load key information. No unnecessary words.
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?
Adequate for a simple list tool but lacks details on result ordering, total count, or default behavior. No output schema, so more context would help.
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 has 100% description coverage; description mentions subscription status and tag but adds no new semantics beyond what schema already provides.
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 it lists contacts with optional filters. However, no distinction from sibling search_contacts, which may have similar purpose.
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 guidance on when to use this tool versus search_contacts or other list tools. Alternatives are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_convosAInspect
List inbox conversations. Filter by state, mailbox, label, screener status, or full-text search. Send16's unified inbox combines transactional reply threading with team-managed shared inboxes.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Filter by label slug | |
| limit | No | Page size (default 50) | |
| state | No | Conversation state | |
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| offset | No | Page offset | |
| search | No | Full-text search across subject + body | |
| mailboxId | No | Filter to one mailbox | |
| screener_status | No | Screener gate status |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the core behavior (listing with filters) but omits details like default sorting order, rate limits, or whether deleted conversations are excluded. The mention of 'unified inbox' adds context but is not directly behavioral.
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 concise sentences cover the main purpose. The first sentence front-loads the action and filters. However, the second sentence about 'Send16's unified inbox' is slightly vague and could be replaced with more concrete behavior (e.g., pagination details).
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?
No output schema is provided, yet the description does not explain what is returned (e.g., conversation IDs, subjects, timestamps). Pagination parameters (limit, offset) are in schema but not described in terms of behavior (e.g., 'returns results in reverse chronological order'). For a listing tool, this is a notable gap.
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% with all parameters described. The tool description merely echoes the filter options without adding extra semantic meaning. Baseline of 3 is appropriate since schema already documents parameters well.
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 tool's purpose: 'List inbox conversations' with explicit filtering options (state, mailbox, label, screener status, full-text search). It distinguishes from sibling tools like get_convo (single conversation) and list_messages (messages within conversations).
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 provides basic use cases (listing with filters) but lacks guidance on when to use alternatives (e.g., search_contacts, list_inbox_counts) or when not to use this tool. No mention of pagination behavior or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_domainsAInspect
List all sending domains configured in your Send16 workspace, including their verification status and DNS records.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It states what the tool returns but does not disclose read-only nature, authentication requirements beyond parameter, or any side effects. Adequate but lacks depth.
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?
Single sentence is concise and front-loaded with core action and included details. No wasted words.
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 simple list tool with one optional parameter and no output schema, description is largely complete. Could mention return format or authentication reliance, but not critical.
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% for the single parameter (apiKey). Description adds no additional meaning beyond schema, so baseline 3 applies.
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?
Description uses specific verb 'List' and resource 'sending domains', and specifies included information (verification status and DNS records). Clearly distinguishes from related sibling tools like add_domain and check_domain_health.
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?
Description provides no guidance on when to use this tool vs alternatives (e.g., check_domain_health for individual domain health). Lacks context for appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_inbox_countsAInspect
Get unread/total counts per category and label for the inbox sidebar (newsletter, transactional, marketing, calendar, social, cold).
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It lacks disclosure of authentication requirements, read-only nature, rate limits, or idempotency. The description is minimal on behavior beyond the action.
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?
Single sentence, front-loaded with essential information, no waste.
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?
Describes output as counts per category and label, but lacks details on output format (e.g., object structure, array). Without output schema, a bit more detail would improve completeness.
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% with one parameter fully described in the schema. Description adds no additional meaning beyond what the schema already provides.
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?
Description clearly states the verb 'Get' and specific resource 'unread/total counts per category and label for the inbox sidebar', listing categories. Distinguishes from sibling tools as no other tool relates to inbox counts.
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?
Implied usage for inbox sidebar counts, but no explicit guidance on when to use vs alternatives. No exclusions or when-not-to-use mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_messagesAInspect
List messages from the unified send log (transactional + campaign). Filter by recipient, sender, status, date range, or source.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Page size (default 50) | |
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| offset | No | Page offset | |
| source | No | Restrict to one message source | |
| status | No | Delivery status filter | |
| to_email | No | Recipient email filter | |
| from_email | No | Sender email filter | |
| created_after | No | ISO-8601 timestamp lower bound | |
| created_before | No | ISO-8601 timestamp upper bound |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It does not mention pagination, default ordering, rate limits, or the return format. The description only restates filtering capabilities without additional behavioral context.
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, front-loaded sentence that efficiently communicates the tool's purpose and key features without extraneous words.
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?
The description covers core filtering but omits important context like pagination behavior (though limit/offset params exist), default values, and the structure of the returned data (no output schema). Adequate but could be more complete.
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% with each parameter having a description. The description summarizes filterable parameters but adds no new meaning beyond the schema. Baseline score of 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?
The description specifies a clear verb ('list'), resource ('messages from the unified send log'), and scope ('transactional + campaign'), uniquely distinguishing it from siblings like get_message or other list_* tools.
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 lists filter dimensions but does not explicitly state when to use this tool vs alternatives like get_message for a single message or list_campaigns for campaigns. Usage context is implied but not made explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_segmentsBInspect
List dynamic segments. Segments compute their members from a filter expression at send time.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains that segments compute their members dynamically, which is a key behavioral trait. However, it does not address permissions, rate limits, pagination, or return format, leaving gaps for an agent without annotations.
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 sentences with zero waste, front-loaded purpose, and efficient communication. Every sentence 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 simple tool with one optional parameter and no output schema, the description explains what the tool lists and the nature of segments. Missing details on output format or potential limitations, which would help completeness.
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% for the single parameter (apiKey), so the schema already documents it. The description adds no additional meaning beyond the schema, making the baseline 3 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?
The description clearly states the tool 'list dynamic segments' and distinguishes from siblings by noting they compute members from a filter expression. However, it does not explicitly differentiate from other list tools.
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 guidance on when to use this tool versus alternatives like list_audiences or list_contacts. No prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_suppressionsBInspect
List suppressed email addresses (bounces, complaints, unsubscribes, manual).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| offset | No | ||
| reason | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavioral traits. It does not mention that the tool is read-only, required authentication, rate limits, or any side effects. The description is minimal.
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, concise sentence that efficiently communicates the tool's purpose. No unnecessary words or repetition.
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?
The description is too minimal for a list tool with pagination parameters and no output schema. It lacks information about return format, pagination behavior, or what fields are included in the response.
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 parameter description coverage is low (25% for apiKey). The description adds value by listing the reason enum values, clarifying what they represent. However, it does not explain limit or offset parameters, nor their role in pagination.
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 tool lists suppressed email addresses and specifies the four reason types (bounces, complaints, unsubscribes, manual). It distinguishes from sibling tools like add_suppression and remove_suppression which are mutation operations.
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 guidance on when to use this tool versus other list tools (e.g., list_contacts, list_audiences) or when not to use it. The description merely states what it does without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_templatesBInspect
List starter-gallery email templates available to every workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only states the action without disclosing authentication needs, rate limits, pagination, or response format. For a simple list operation, more context is needed.
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, concise sentence with no wasted words. It is front-loaded with the essential information.
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?
Given the lack of output schema and annotations, the description is too brief. It does not explain return values, whether pagination exists, or any edge cases. More context is needed for a complete understanding.
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 only parameter, apiKey, is described in the schema. The description adds no further meaning beyond the schema, and schema coverage is 100%. Baseline 3 applies.
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 verb (List), the resource (email templates), and the scope (starter-gallery available to every workspace). It distinguishes from siblings like get_template and other list_* tools.
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 tool is for listing pre-made templates, but lacks explicit guidance on when to use this tool vs alternatives like get_template, design_email_template, or list_campaigns. No when-not or alternative tool mention.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_topicsAInspect
List subscription topics. Topics are granular categories contacts can subscribe to (e.g. 'product-updates', 'weekly-digest'). Campaigns and automations can be gated to subscribers of a specific topic.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states basic purpose without disclosing behavior like pagination, ordering, or rate limits. For a read operation, more detail is needed.
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 efficient sentences: first states action, second defines topics. No wasted words, but could be slightly more structured.
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 simple list tool with one optional param and no output schema, the description explains the concept. Lacks mention of response format or sorting, but adequate.
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 has 100% coverage with one parameter (apiKey). The description does not add parameter semantics beyond what the schema provides. 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?
Description clearly states it lists subscription topics and explains what topics are (granular categories). This distinguishes it from sibling list tools like list_campaigns or list_automations.
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?
Description implies usage for viewing topics used in gating (campaigns, automations) but does not explicitly state when to use or avoid, nor does it mention alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_webhooksBInspect
List configured outgoing webhooks (your endpoints that Send16 POSTs delivery events to). Outgoing webhooks are a plan feature.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only states the tool lists webhooks, with no mention of pagination, rate limits, or any side effects. This is minimal transparency.
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 sentences, no unnecessary words. The description is front-loaded with the core action and adds one contextual detail (plan feature). Efficient and to the point.
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 simple list tool with one optional parameter and no output schema, the description is adequate but lacks details about what the response includes (e.g., webhook details like URL, events). It could be more complete by mentioning typical return fields.
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 has one optional parameter (apiKey) with 100% schema description coverage. The tool description does not add any additional meaning about the parameter, but the baseline of 3 is appropriate since the schema already covers it.
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 tool lists configured outgoing webhooks, which is a specific verb and resource. However, it does not explicitly differentiate from sibling tools like create_webhook or delete_webhook, though the verb 'list' naturally sets it apart.
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 usage by indicating the tool lists webhooks and that webhooks are a plan feature. It provides no explicit guidance on when to use this tool versus alternatives 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.
list_workspacesAInspect
List workspaces the authenticated user has access to (owner or member).
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the tool is read-only and scope-limited, but lacks details on pagination, rate limits, or response format. For a simple list tool, the transparency is adequate but not enhanced beyond the basic function.
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, concise sentence that front-loads the key action and scope. No unnecessary words, earning 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?
The tool has low complexity with one optional parameter and no output schema. The description covers purpose and access scope but does not explain return values or any list behavior (e.g., ordering, filtering). Given no output schema, more detail would improve completeness.
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% with one parameter (apiKey) well-described in the schema. The description adds no additional meaning beyond this, so baseline score of 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?
The description clearly states the tool lists workspaces the authenticated user has access to, with explicit scope 'owner or member'. The verb 'list' and resource 'workspaces' are specific, and it distinguishes from sibling 'get_workspace' which retrieves a single workspace.
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 usage when needing to see all accessible workspaces, and the scope ('owner or member') provides context. It does not explicitly mention when not to use or alternatives, but for a list tool, this is sufficient context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_convo_readBInspect
Mark a conversation as read for the current viewer.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| convoId | Yes | Conversation ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the basic action. It fails to disclose behavioral traits like idempotency, side effects, permissions, or what 'read' means in terms of state changes.
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 sentence that is front-loaded and contains no wasted words. It efficiently communicates the tool's core purpose.
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?
Given the lack of output schema, the description should hint at return values or success/failure behavior, but it does not. It also provides no context about the system's conversation state or viewer concept, leaving the agent with incomplete information.
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% (both parameters have descriptions in the input schema). The tool description adds no additional meaning beyond what the schema already provides, so baseline score of 3 applies.
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 tool's action ('mark a conversation as read') and target resource ('conversation'), with a specific scope ('for the current viewer'). It distinguishes from sibling tools like 'update_convo' which is broader.
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 guidance is provided on when to use this tool versus alternatives such as 'update_convo' or 'get_convo'. There is no mention of prerequisites or contexts where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pause_automationAInspect
Pause an automation. Existing enrollments freeze in place; no new contacts enroll.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| automationId | Yes | Automation ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry full behavioral weight. It accurately states that enrollments freeze and no new contacts enroll, but does not disclose reversibility, permissions, or effects on other automations.
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 concise sentences deliver the core purpose and key behavioral detail with no superfluous words. Front-loaded and efficient.
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?
Given the tool's simplicity (2 parameters, no output schema), the description covers the essential behavior. However, it could mention that the action is reversible or provide a pointer to 'activate_automation' for resuming.
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 schema already documents both parameters ('apiKey' and 'automationId'). The description adds no additional semantic meaning beyond the schema descriptions.
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 ('Pause') and resource ('automation'), and adds distinct behavioral details ('Existing enrollments freeze in place; no new contacts enroll'). This clearly distinguishes it from siblings like 'activate_automation' or 'resume_campaign'.
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 usage for pausing an automation but does not explicitly state when to use it versus alternatives like 'pause_campaign' or 'deactivate_automation', nor does it mention prerequisites or post-conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pause_campaignAInspect
Pause a sending campaign. Already-sent messages are unaffected; remaining sends halt.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| campaignId | Yes | Campaign ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. Discloses key behavior: sent messages are unaffected, remaining sends halt. However, could mention reversible nature or permissions needed.
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 sentences, zero waste. Directly states purpose and key behavioral detail. Front-loaded and efficient.
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?
Given simple action (no output schema, 2 params), description is complete. Covers what happens to sent and unsent messages, sufficient for agent to understand effect.
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%, and description adds no additional meaning beyond the schema. Both parameters are already described, so 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 verb 'pause' and resource 'sending campaign', with explicit scope (already-sent messages unaffected, remaining sends halt). Distinguishes from sibling tools like resume_campaign and pause_automation.
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?
Provides implicit usage context (pausing a sending campaign) but no explicit when-to-use, when-not-to-use, or alternatives. Lacks guidance on prerequisites or side effects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pre_send_reviewAInspect
Run an AI pre-send review on an email's HTML before sending. Surfaces tone issues, broken links, missing alt text, spam triggers, and accessibility problems.
| Name | Required | Description | Default |
|---|---|---|---|
| html | Yes | Full HTML body to review | |
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| subject | Yes | Email subject line | |
| audience | No | Short description of the audience (helps tone analysis) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description implies a non-destructive read-only analysis by stating it 'surfaces' issues. It does not contradict any known behavior and adequately conveys that the tool performs a review without side effects.
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 concise sentences: first states the action and second lists the outputs. No extraneous words, front-loaded with the primary purpose.
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?
The description lacks details about the output format (e.g., structure of returned issues), and there is no output schema to compensate. While it lists what the review surfaces, an agent would benefit from knowing whether results are a list, report, or flags.
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% with clear descriptions for all four parameters. The tool description adds minimal context beyond the schema, such as emphasizing 'email's HTML' and the purpose of audience. Baseline score of 3 is appropriate as the schema already provides sufficient parameter 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?
The description begins with a clear verb 'Run' and specifies the resource 'AI pre-send review on an email's HTML before sending'. It distinguishes itself from siblings by focusing on review rather than sending or design, and lists specific types of issues surfaced.
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 'before sending' clearly indicates when to use the tool (prior to actual send commands). However, it does not explicitly state when not to use it or mention alternative tools for related tasks like previewing recipients or designing templates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_campaign_recipientsAInspect
Preview the recipient set for a campaign before sending. Returns count + sample list.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| campaignId | Yes | Campaign ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It implies read-only behavior ('Preview') and mentions returning count and sample list, but it does not disclose potential side effects, authentication requirements, or rate limits. Adequate but not thorough.
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 sentences with no unnecessary words. It immediately states the purpose and output, making it efficient and 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?
Given the tool's low complexity (2 parameters, no nested objects) and absence of output schema, the description is reasonably complete. It notes the return type (count + sample list), which provides sufficient context for an agent.
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 parameters are already well-described in the schema. The description adds no additional meaning beyond 'campaignId' and 'apiKey'. 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?
The description clearly states the verb 'Preview' and the resource 'recipient set for a campaign', and specifies output 'Returns count + sample list'. This distinguishes it from sibling tools like send_broadcast or create_campaign.
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 mentions 'before sending', implying a pre-send validation use case, but does not explicitly state when not to use it or compare with alternatives like pre_send_review or preview_segment. Guidance is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_segmentBInspect
Preview the contacts that match a segment without sending.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| segmentId | Yes | Segment ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states it previews contacts without sending. It does not disclose whether the result is a list, count, or paginated, nor any side effects 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no fluff, but it sacrifices detail needed for completeness.
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?
Given the simplicity of the tool (2 parameters, no output schema), the description provides the basic purpose but lacks detail on what 'preview' returns, making it minimally adequate.
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 baseline is 3. The description adds no additional meaning beyond the schema for the two parameters.
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 the verb 'preview' and specifies the resource 'contacts that match a segment', clearly distinguishing it from sibling tools like preview_campaign_recipients which pertain to campaigns.
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 'without sending' implies a read-only context, but there is no explicit guidance on when to use this tool versus alternatives like preview_campaign_recipients or list_segments, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regenerate_webhook_secretAInspect
Rotate the HMAC signing secret for an outgoing webhook endpoint. Returns the new secret once.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| webhookId | Yes | Webhook ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It mentions 'Returns the new secret once' but fails to disclose that the old secret becomes invalid, any authorization requirements, or rate limits. This is a significant omission for a mutation tool.
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 concise sentences with no fluff. It is front-loaded with the action and resource, making it efficient and easy to parse.
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?
Given the tool has 2 parameters and no output schema, the description is minimal. It lacks critical context such as what happens to the old secret, whether there's a grace period, or if the endpoint needs updating. This is insufficient for a security-sensitive operation.
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% (both parameters apiKey and webhookId are described). The tool description adds no extra meaning to the parameters beyond what the schema provides, meeting the baseline for high 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 clearly states the action (rotate), the resource (HMAC signing secret for an outgoing webhook endpoint), and the outcome (returns the new secret). It is specific and distinguishes itself from sibling tools like create_webhook or delete_webhook.
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 purpose is self-evident from the name and description, but no explicit guidance is given on when to use this tool versus alternatives or when not to use it. The description implies a single use case without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_contact_from_audienceCInspect
Remove a contact from an audience.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| contactId | Yes | Contact ID | |
| audienceId | Yes | Audience ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavioral traits. It only states 'Remove a contact from an audience' without addressing side effects (e.g., whether it triggers events, idempotency, or if the contact is permanently removed). The parameter apiKey is not explained in terms of its behavioral role 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 a single sentence that efficiently conveys the core action. It is appropriately sized for a simple operation, with no wasted words. However, it could benefit from slightly more detail without becoming verbose.
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?
Given the lack of annotations, output schema, and minimal description, the tool is only partially complete. An agent lacks information about return values (e.g., success/failure response), side effects, or any confirmation of the removal. This is insufficient for safe 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?
Schema description coverage is 100%, so the baseline is 3. The description does not add any additional meaning beyond what the schema already provides for the three parameters (apiKey, contactId, audienceId). Hence, no extra value.
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 ('Remove') and the resource ('contact from an audience'), making the tool's purpose unambiguous. It also distinguishes itself from the sibling 'add_contacts_to_audience' by being the inverse operation.
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 guidance is provided on when to use this tool versus alternatives, such as the inverse 'add_contacts_to_audience' or other removal tools like 'remove_suppression'. There is no mention of prerequisites (e.g., the contact must exist in the audience) 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.
remove_suppressionAInspect
Remove an email from the suppression list. Use only when you've confirmed the recipient wants to receive mail again.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | |||
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description does not disclose side effects (e.g., will the recipient start receiving emails again?), authentication requirements, or rate limits. It only states the action without behavioral context.
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?
Extremely concise with only two sentences, no filler. Every sentence adds value.
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?
Lacks information about return values or response format (no output schema). For a simple removal tool, it is adequate but could be more complete by mentioning what happens after removal or any confirmation.
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 does not mention any parameters, even though the schema has two parameters (email and apiKey) with partial documentation. Schema coverage is 50%, so description should compensate but does not add any meaning beyond what is in 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 clearly states the action ('Remove') and the resource ('an email from the suppression list'). It distinguishes itself from the sibling tool 'add_suppression' which does the opposite.
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?
Provides a conditional guideline: 'Use only when you've confirmed the recipient wants to receive mail again.' This gives clear context for when to use the tool. However, it does not explicitly mention when not to use it or alternatives like checking suppression status first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_email_contentAInspect
Compile an EmailContent JSON object (the shape used by the Send16 builder + templates) into HTML using the platform's authoritative renderer. Returns the exact HTML the API would send. Useful for previews and post-processing.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| content | Yes | EmailContent JSON (from get_template or the builder) | |
| variables | No | Variable replacements (e.g. {firstName:'Alice'}) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It states that the tool returns 'the exact HTML the API would send,' indicating a read-only transformation. However, it does not disclose potential side effects, required permissions, or whether it modifies any state. The description is partly transparent but leaves gaps.
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 sentences, front-loaded with the core action, and contains zero unnecessary words. It efficiently communicates the tool's purpose and utility 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?
The description is largely complete given the tool's moderate complexity (3 params, nested objects, no output schema). It explains the input, output, and use cases. Minor gaps exist, such as error handling or response format details, but these are not critical for basic usage.
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%, meaning all parameters have descriptions in the input schema. The tool description adds general context about EmailContent JSON shape and variable replacements but does not provide additional meaning beyond what the schema already documents. 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?
The description clearly states the tool compiles EmailContent JSON into HTML using the platform's renderer. It identifies the specific resource (EmailContent JSON) and action (compile/render). However, it does not explicitly differentiate from sibling tools like design_email_template or generate_email_from_url, though it implies a distinct function.
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 mentions the tool is 'useful for previews and post-processing,' giving some context for when to use it. However, it provides no guidance on when not to use it or alternatives (e.g., send_email for sending). The usage guidance is present but minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resume_campaignCInspect
Resume a paused campaign.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| campaignId | Yes | Campaign ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are given, and the description only states the action without disclosing behavioral traits like idempotency, error handling for non-paused campaigns, or authentication requirements beyond the parameter 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 a single, concise sentence that directly states the tool's purpose. It is front-loaded and efficient, with no wasted words.
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?
Despite the tool's simplicity, the description lacks details about return values, what happens if the campaign is not paused, or any side effects. With no annotations or output schema, the description should provide more context for complete understanding.
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?
With 100% schema description coverage, the schema already documents both parameters. The tool description adds no additional meaning beyond what the schema provides, meeting the baseline expectation for high 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 clearly states the tool resumes a paused campaign, implying it is the counterpart to pause_campaign. However, it does not explicitly distinguish from other sibling tools beyond the name, lacking explicit differentiation.
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 guidance is provided on when to use this tool versus alternatives, such as when a campaign is already active or when to use schedule_campaign instead. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schedule_campaignBInspect
Schedule (or send immediately) an existing draft campaign to an audience/segment/topic.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| topicId | No | ||
| segmentId | No | ||
| audienceId | No | ||
| campaignId | Yes | Campaign ID | |
| scheduleAt | No | ISO-8601 future datetime; omit to send immediately |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only mentions scheduling/sending but does not disclose state changes, required campaign status, or effects (e.g., campaign becomes scheduled/sent). Lacks 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?
Single sentence capturing main action, front-loaded and direct. However, lacks structure like bullet points or sections. Concise but could be more organized.
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?
With 6 parameters, no output schema, and no annotations, description fails to explain parameter relationships, campaign state requirements, validation, or error scenarios. Leaves significant gaps for agent usage.
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?
Description adds that scheduleAt can be omitted for immediate send, but does not explain audienceId/segmentId/topicId relationships or required combinations. Schema already covers apiKey, campaignId, scheduleAt descriptions. Baseline 3 due to 50% schema coverage and some added value.
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?
Description clearly states the action (schedule or send immediately), the resource (existing draft campaign), and the targets (audience/segment/topic), distinguishing it from siblings like send_broadcast or send_campaign_test.
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 guidance on when to use this tool vs alternatives, no mention of prerequisites (e.g., campaign must be in draft status), and no distinction between scheduling vs immediate send for usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screener_decideAInspect
Decide a pending screener conversation (first-time sender). 'allow' lets future emails through, 'reject' blocks, 'cold' marks as cold outreach.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| convoId | Yes | Conversation ID | |
| decision | Yes | Screener decision |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description explains outcomes (allow, reject, cold) and that it affects future email flow. Does not discuss reversibility or side effects, but sufficient for a simple decision tool.
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?
Single, well-structured sentence followed by brief explanation. Every part is necessary. No 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?
Covers purpose, decisions, and target audience. Lacks mention of return value or prerequisites (e.g., conversation must be pending). Adequate for a simple tool.
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%, but description adds value by explaining the decision enum values and the context of 'pending screener conversation', which is not in schema descriptions.
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 the verb 'decide' and resource 'pending screener conversation' for first-time senders. Explains three decision options and their effects. Distinct from sibling tools.
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?
Implies usage context (pending screener, first-time sender). Does not explicitly state when not to use or mention alternatives, but context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_contactsAInspect
Search contacts by email address or name. Returns matching contacts with their tags and subscription status.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| query | Yes | Search query (matches against email, first name, last name) | |
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| pageSize | No | Results per page (max 100) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It discloses that it returns contacts with tags and subscription status, but omits behavioral details such as pagination behavior, case sensitivity, or partial matching. This is adequate but not extra.
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, direct sentence with no wasted words. It is front-loaded with the action 'Search' and provides key information efficiently.
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?
Given no output schema, the description adequately explains what is returned. However, it does not mention pagination behavior despite the presence of page and pageSize parameters. Overall, it is mostly complete for a search tool.
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%, setting a baseline of 3. The description adds value by stating the return contents (tags and subscription status), which is not in the schema. This 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'search' and the resource 'contacts', and specifies what is returned (tags and subscription status). It effectively distinguishes from sibling tools like 'list_contacts' and 'get_contact'.
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 when to use (search by email or name) but provides no explicit guidance on when not to use or how it compares to alternatives like list_contacts. No exclusions or alternative tool references are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_broadcastAInspect
One-shot broadcast: create a campaign and immediately schedule it to send. Mirrors Resend's one-call broadcast API. Pass either an audienceId, segmentId, topicId, or fully-qualified filter. Provide html OR templateSlug.
| Name | Required | Description | Default |
|---|---|---|---|
| html | No | Full HTML body (one of html/templateSlug required) | |
| name | Yes | Internal campaign name | |
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| replyTo | No | ||
| subject | Yes | ||
| topicId | No | Send to all subscribers of this topic | |
| fromName | Yes | ||
| fromEmail | Yes | Must be a verified domain | |
| segmentId | No | Send to all contacts matching this segment | |
| audienceId | No | Send to all contacts in this audience | |
| scheduleAt | No | ISO-8601 future datetime; omit to send immediately | |
| previewText | No | ||
| templateSlug | No | Workspace template slug to use |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states the tool creates and immediately sends a campaign, but does not disclose potential side effects (e.g., costs, irreversibility), required permissions, rate limits, or what happens when 'scheduleAt' is used. The description is adequate but lacks depth for a high-stakes action.
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 sentences with no wasted words. The first sentence front-loads the purpose, the second provides key constraints. Perfectly sized for a tool with 13 parameters; all information is earned.
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?
Given no output schema and 13 parameters, the description covers the core action and targeting/content constraints. It lacks explanation of 'fully-qualified filter' and return value, but overall it provides sufficient context for an agent 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 description adds value beyond the input schema by specifying mutual exclusivity constraints ('either audienceId, segmentId, topicId, or fully-qualified filter' and 'html OR templateSlug'), which are not enforced in the schema. With 69% schema coverage, the description compensates by clarifying parameter relationships.
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 explicitly states 'One-shot broadcast: create a campaign and immediately schedule it to send', clearly indicating a combined create-and-send action. It differentiates from siblings like 'create_campaign' or 'schedule_campaign' by noting it is a single-call API that mirrors Resend's broadcast API.
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 provides clear usage guidelines: 'Pass either an audienceId, segmentId, topicId, or fully-qualified filter. Provide html OR templateSlug.' This tells the agent which parameter combinations are valid. However, it does not explicitly state when not to use this tool versus alternatives like 'send_email' or 'schedule_campaign', leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_campaign_testAInspect
Send a test email for an existing campaign to preview how it will look in recipients' inboxes.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| testEmail | Yes | Email address to send the test to | |
| campaignId | Yes | Campaign ID to send test for |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the tool as sending a test email, implying a mutation, but does not disclose side effects like whether test sends consume credits, increment a test counter, or affect campaign state. The transparency is adequate but not thorough.
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 sentence that directly conveys the tool's purpose without any redundant words. It is optimally concise for an AI agent to parse quickly.
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?
Given low complexity (3 params, no nesting, no output schema), the description provides sufficient context for understanding the tool's function. It briefly explains the outcome (preview appearance) but does not mention the return value (e.g., status or message ID), which is a minor gap.
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 schema already documents all three parameters. The description adds no additional meaning beyond the schema (e.g., it doesn't clarify that 'testEmail' should be a verified address or that 'apiKey' is optional). 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?
The description precisely states the action ('send a test email'), the resource ('existing campaign'), and the purpose ('preview how it will look in recipients' inboxes'). It clearly distinguishes from siblings like 'send_broadcast' (sends to actual audience) and 'send_email' (general email sending).
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 implicitly tells when to use this tool: after creating a campaign but before sending to actual recipients, to preview formatting. However, it does not explicitly state when not to use it or mention alternative tools, leaving some ambiguity for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_emailAInspect
Send a transactional email through Send16. Provide html, text, or both (text-only is fine for OTPs/receipts/alerts). from_email must belong to a domain that is verified in the workspace — call whoami for the account and list_domains to see which senders are allowed; a send from an unverified domain returns a clear error, not a silent failure. For a zero-setup first send, use from_email onboarding@send16.com — the sandbox sender delivers with no DNS, but only to your own account email.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient email address or array of addresses (max 50) | |
| html | No | HTML body content | |
| text | No | Plain text body content | |
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| subject | Yes | Email subject line | |
| reply_to | No | Reply-to email address | |
| template | No | Transactional template slug to use instead of inline content | |
| from_name | No | Sender display name (e.g. "Acme Co") | |
| variables | No | Template variables for merge tags | |
| from_email | No | Sender email address (must be from a verified domain) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It covers the verification requirement and error behavior for unverified domains, but omits details on rate limits, idempotency, handling of duplicates in the to array, or how template variables work. The sandbox sender disclosure is helpful but not comprehensive.
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 concise at about 100 words in a single paragraph, front-loading the main action and following with practical guidance. Every sentence adds value without repetition. Could be slightly improved with bullet points for readability, but overall efficient.
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?
Given the tool's complexity (10 parameters, no output schema), the description covers key aspects like verification and sandbox usage but lacks details on template behavior, variables, apiKey override, return value, and error handling beyond unverified domains. It does not fully equip an agent to use all parameters 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 coverage is 100%, so the baseline is 3. The description adds meaningful context beyond schema descriptions: it explains that text-only is suitable for OTPs/receipts/alerts, advises on from_email verification, and introduces the sandbox sender option. This enhances parameter understanding.
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 it sends a transactional email via Send16, and provides specific use cases (OTPs, receipts, alerts) for text-only. While it doesn't explicitly distinguish from sibling tools like send_broadcast, the term 'transactional' implies a different use case, making the purpose clear.
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 explicit guidance on when to use text vs html, how to handle from_email verification (calling whoami and list_domains), and mentions a zero-setup sandbox option. It also clarifies that unverified domains return a clear error. However, it does not explicitly compare to sibling tools or state 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.
send_eventAInspect
Fire a custom event for a contact. Automations whose trigger is {type:'custom_event', eventName:'<name>'} will enroll the contact and start running. Payload is exposed to condition steps as event.<key>.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Event name (e.g. 'trial_started', 'order.placed') | |
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| payload | No | Arbitrary JSON metadata available to automation conditions | |
| contactId | No | Contact UUID (provide either this or contactEmail) | |
| occurredAt | No | ISO-8601 timestamp; defaults to now | |
| contactEmail | No | Contact email (provide either this or contactId) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly states that automations with matching triggers will enroll contacts and start running, and that payload is exposed as event.<key>. This is detailed behavioral disclosure, though it could also mention error handling or idempotency.
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 sentences, no filler. Front-loaded with the action and resource, then provides behavioral effect. Every sentence serves a purpose.
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?
Given no output schema and 6 parameters, the description covers the core behavior well. It explains the trigger mechanism and payload usage. However, it could mention return value or confirmation of event firing.
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 baseline is 3. The description adds context about payload exposure in conditions, but this is a minor addition beyond the schema descriptions. No significant new meaning is provided.
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 the specific verb 'fire' and clearly identifies the resource as 'a custom event for a contact'. It distinguishes from sibling tools like 'send_email' or 'enroll_in_automation' by focusing on custom event triggering.
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 explains the effect (triggering automations and exposing payload) but does not explicitly state when to use this tool versus alternatives like 'enroll_in_automation'. The usage context is implied but lacks direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_replyAInspect
Reply to an inbox conversation. The reply is sent from the original recipient address (the alias the convo arrived on) and threaded back to the contact.
| Name | Required | Description | Default |
|---|---|---|---|
| html | No | HTML body of the reply | |
| text | No | Plain text body of the reply | |
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| convoId | Yes | Conversation ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. It discloses threading and use of original recipient address, but does not mention side effects, error cases, or permissions needed for a mutation tool.
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 sentences, front-loaded with purpose, no wasted words. Efficient and easy to parse.
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?
Given no output schema and 4 parameters, description covers key behavioral context (threading, sender alias). Lacks mention of response or success confirmation, but is largely complete for a simple reply action.
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%, and schema descriptions are already clear. The description adds no additional meaning beyond what's in schema, meeting baseline.
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 tool's purpose: replying to an inbox conversation, with specifics about threading and sender alias. It distinguishes from sibling tools like send_broadcast or send_email.
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?
Description indicates when to use (to reply to an inbox conversation) but does not explicitly exclude scenarios or mention alternatives. Context is clear enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_actionBInspect
Update an Action (toggle enabled, change template, change event name).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| enabled | No | ||
| actionId | Yes | Action ID | |
| sendOnce | No | ||
| eventName | No | ||
| delaySeconds | No | ||
| templateSlug | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description implies a mutation but lacks details on permissions, side effects, idempotency, or response behavior, which are needed for a mutation tool.
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?
Single, focused sentence that front-loads the verb and resource, with no unnecessary words.
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?
Given 8 parameters and no output schema or annotations, the description is too minimal to fully inform an AI agent about usage and expected outcomes.
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 adds meaning for enabled, templateSlug, and eventName, corresponding to 'toggle enabled, change template, change event name'. However, with 25% schema description coverage, it only partially compensates for other undocumented parameters like name, sendOnce, delaySeconds, apiKey.
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 'Update an Action' with specific examples of updatable fields (toggle enabled, change template, change event name), distinguishing it from sibling tools like create_action, delete_action, and get_action.
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 lists what can be updated but does not provide guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_brandAInspect
Update workspace brand settings. The designSpec field is a Markdown DESIGN.md document fed into AI generation system prompts — use it to encode voice, do/don't lists, and visual rules.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| logoUrl | No | ||
| designSpec | No | Markdown DESIGN.md spec for AI generation | |
| fontFamily | No | ||
| primaryColor | No | Hex color (e.g. '#4F46E5') | |
| secondaryColor | No | Hex color |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description reveals a critical behavioral trait: the designSpec field is used as a system prompt for AI generation. This adds significant value beyond the schema. However, it does not disclose other potential side effects, permissions, or immediacy of updates.
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 sentences: the first states purpose, the second provides essential parameter context. Every sentence earns its place, no 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 tool with 6 parameters, no output schema, and no annotations, the description covers purpose and one key behavioral detail but lacks information on success response, prerequisites (e.g., existing brand), and effects on other workspace elements. It is minimally adequate for a simple update operation.
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?
With 67% schema coverage, the description only adds meaning to designSpec (explaining its role as a system prompt). For logoUrl and fontFamily, which lack schema descriptions, no additional information is provided. Thus, it partially compensates but not fully.
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 tool updates workspace brand settings, using a specific verb and resource. It distinguishes from siblings like get_brand (read) and design_email_template (template-level design).
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 usage for updating brand settings but does not explicitly guide when to use this tool versus alternatives like design_email_template or when not to use it. No usage context or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_campaignCInspect
Update a draft campaign's content, subject, preview text, or sender info.
| Name | Required | Description | Default |
|---|---|---|---|
| html | No | ||
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| replyTo | No | ||
| subject | No | ||
| fromName | No | ||
| fromEmail | No | ||
| campaignId | Yes | Campaign ID | |
| previewText | No | ||
| templateSlug | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full burden. It describes a mutation ('Update') but does not disclose required permissions, reversibility, or effect on campaign status. The response format is not mentioned.
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 sentence of 14 words, front-loaded with the action and resource. It is concise but could benefit from further detail without becoming verbose.
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?
Given 9 parameters, low schema coverage, and no output schema, the description is incomplete. It does not cover required status, optionality, or interaction with campaign state. The sibling tools suggest a rich campaign lifecycle, but no context is provided for when this tool fits.
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 only 22% (only campaignId and apiKey have descriptions). The description groups parameters (e.g., 'sender info' for fromName/fromEmail/replyTo) adding some meaning, but it lacks detail on format or constraints. The input schema provides patterns and formats, but their semantics are not explained.
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 verb 'Update' and resource 'draft campaign', and lists updatable fields (content, subject, preview text, sender info). It distinguishes from sibling tools like create_campaign and delete_campaign. However, it does not clarify that only draft campaigns can be updated, which may be a constraint.
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 guidance is provided on when to use this tool versus alternatives like schedule_campaign or send_campaign_test. There are no explicit when-to-use, when-not-to-use, or prerequisite conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_contactBInspect
Update a contact's profile fields, custom fields, or subscription state.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| lastName | No | ||
| contactId | Yes | Contact ID | |
| firstName | No | ||
| subscribed | No | ||
| customFields | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description fails to disclose important behavioral traits such as whether updates are partial or full, idempotency, permissions required, or effect on unspecified fields. For a mutation tool, this is insufficient.
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, well-structured sentence that covers the essential purpose. It is concise but could marginally benefit from more detail without becoming verbose.
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?
With no output schema and only a basic description, the tool's return value, error handling, and behavior for partial updates are unclear. For a tool with nested parameters, this lacks completeness.
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?
Given 33% schema coverage, the description adds value by categorizing parameters into profile fields, custom fields, and subscription state. However, it does not provide details on customFields structure, field constraints, or defaults, so it's only moderately helpful.
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 verb 'Update' and the resource 'contact', specifying the updatable aspects (profile fields, custom fields, subscription state). It effectively distinguishes from sibling tools 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use for updating a contact, but it lacks explicit guidance on when to use this tool versus alternatives (e.g., create_contact for new contacts). No when-not or context for exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_convoBInspect
Update conversation state (open/closed/snoozed/spam/trash), star, or assignee.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | New state | |
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| convoId | Yes | Conversation ID | |
| starred | No | Star/unstar | |
| assigneeId | No | Workspace member ID, or null to unassign |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only mentions mutation but lacks details on side effects, permissions, or immediate updates.
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?
Single sentence, front-loaded with the action, no unnecessary words.
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?
No output schema; description does not explain return value or behavior when multiple params are set. Incomplete for a mutation tool.
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 schema already defines each parameter. The description does not add new meaning beyond listing actions.
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 tool updates conversation state, star, or assignee, using specific verbs and resource. It distinguishes itself from siblings like mark_convo_read and get_convo.
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 guidance on when to use this tool versus alternatives (e.g., add_convo_note, send_reply). Agent must infer usage from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_topicCInspect
Update a subscription topic (name, description, default).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) | |
| topicId | Yes | Topic ID | |
| isDefault | No | ||
| description | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states it updates but does not disclose consequences like idempotency, permissions required, error handling, or return behavior.
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 concise sentence with no fluff, but could include more useful information without becoming verbose.
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?
With 5 parameters, no output schema, and no annotations, the description is insufficient to fully understand the tool's behavior, error cases, or return format.
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?
Only 40% of parameters have descriptions in schema; description merely repeats field names without adding constraints, formats, or default values beyond what schema provides.
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 specifies the verb 'Update' and resource 'subscription topic', and lists the updatable fields (name, description, default), distinguishing it from create_topic and delete_topic.
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 guidance on when to use this tool versus creating a new topic or other alternatives; lacks context 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.
whoamiAInspect
Verify the API key and return the authenticated workspace: name, plan, email quota (used/limit), and owner. Call this first to confirm the key works before sending. Pair with list_domains to see which from addresses are allowed.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Send16 API key (overrides SEND16_API_KEY env var) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It states the return fields (name, plan, email quota, owner) and implies authentication. However, it does not describe behavior on invalid keys, error responses, or side effects, which limits transparency.
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 consists of two concise sentences with no wasted words. The first sentence delivers the core purpose and output, the second provides usage guidance. Excellent front-loading.
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?
Given the lack of output schema, the description compensates by listing the return fields (name, plan, email quota, owner). It omits error handling details, but for a simple auth check, the information is largely sufficient.
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%, with the only parameter apiKey fully documented in the schema. The description adds no additional parameter meaning beyond what the schema provides, so baseline score of 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?
The description clearly states the tool's function: verify API key and return authenticated workspace info. It distinguishes itself from sibling tools like get_workspace and list_workspaces by emphasizing its role as a lightweight auth check via 'Call this first to confirm the key works before sending.'
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 provides explicit usage guidance: 'Call this first' and 'Pair with list_domains to see which `from` addresses are allowed.' It lacks explicit when-not-to-use instructions, but the context is clear enough for a simple tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
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!