Skip to main content
Glama

Server Details

Email infrastructure for AI agents — send, receive, search, and reply to email over MCP.

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.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.2/5 across 28 of 28 tools scored. Lowest: 3.3/5.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose covering domain management, email sending/receiving, webhooks, filters, and account info. No two tools overlap in functionality.

Naming Consistency5/5

All tools follow a consistent camelCase verb_noun pattern (e.g., addDomain, getEmail, listDomains). No mixing of conventions or vague verbs.

Tool Count4/5

28 tools are on the high side but justified by the broad domain coverage (domains, email, webhooks, filters, etc.). Could be slightly reduced, but each tool earns its place.

Completeness5/5

Covers the full email lifecycle: domain setup, sending, receiving, threading, attachments, webhooks, filters, and account status. No obvious gaps for the stated purpose.

Available Tools

28 tools
addDomainAdd domainAInspect

Claim a new domain and receive the DNS records to publish. Returns dns_records with the exact records to add. If the domain has an mx_conflict (existing mail provider), re-call with confirmed: true to proceed. After publishing DNS records, call verifyDomain to complete setup.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestBodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior4/5

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

Annotations are minimal (readOnlyHint=false, destructiveHint=false). Description adds context about the mutation behavior, conflict handling, and return of dns_records. No contradictions. Could mention Auth or rate limits but not essential.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with purpose, each sentence adds critical information (output, conflict resolution, next step). No waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Explains workflow, conflict scenario, and next step (verifyDomain). Missing error cases or auth requirements, but given the tool's simplicity and the presence of an output schema, it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite schema description coverage reported as 0%, the schema actually contains descriptions for both domain and confirmed. The tool description adds workflow context for confirmed but does not elaborate on domain format beyond schema. Compensates partially but not fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'claim' and resource 'domain', and distinguishes from sibling verifyDomain by pointing to that tool for the next step. Also mentions the output (dns_records).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly describes when to use (claim a new domain), when to re-call with confirmed: true after mx_conflict, and directs to verifyDomain after publishing DNS records. Provides clear workflow guidance.

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

awaitReplyAwait replyA
Read-onlyIdempotent
Inspect

Get the threaded reply to a sent email — the canonical 'did they reply yet?' call. Pass the sent email's id (from a sendEmail response). With wait=true it long-polls up to wait_timeout_ms for the reply to arrive (synchronous agent-to-agent chat); with wait=false (default) it returns immediately with the reply if one has arrived, else reply=null. Matches on the reply's threading, not a from/subject guess.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe sent email id to fetch the reply for (from a sendEmail/replyToEmail response).
waitNoWhen "true", long-poll until a reply arrives or wait_timeout_ms elapses. Default no-wait.
wait_timeout_msNoHow long to wait when wait=true (1000–30000 ms, default 10000).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior5/5

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

Adds behavioral context beyond annotations: long-polling behavior, threading matching logic, and defaults. Aligns with readOnlyHint and idempotentHint. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three efficient sentences, no fluff. Each sentence serves a distinct purpose: purpose, parameter usage, and matching detail. Front-loaded with importance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, description need not detail return values. Covers purpose, all parameters, behavior (polling, threading), and use cases. Complete for a 3-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description adds value by explaining id origin, wait mode meanings, and how wait_timeout_ms relates to polling, which is beyond the schema's type/constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a specific verb ('Get') and resource ('threaded reply to a sent email'), and distinguishes from siblings by mentioning synchronous agent-to-agent chat and threading-based matching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly explains when to use: pass sent email id, with options for wait=true (long-poll) or wait=false (immediate check). Implies usage for reply checking but does not explicitly exclude alternatives like getSentEmail or getConversation.

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

createEndpointCreate webhook endpointAInspect

Create a webhook endpoint to receive email.received events. If an endpoint with the same URL already exists but is deactivated, it is reactivated. After creating, call testEndpoint to confirm your signature verifier accepts the payload.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestBodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior4/5

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

The description adds behavioral context beyond annotations: it clarifies that creating an endpoint also reactivates if deactivated, and recommends testing. Annotations only indicate non-read-only and non-destructive, so the description enriches understanding without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loading the main purpose and then giving a necessary follow-up step. No extraneous information; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers key behavior (reactivation) and a critical post-creation step (testing). It mentions the event type and implies domain restriction via domain_id parameter. While it omits error handling or permission details, the presence of an output schema likely documents return values. Overall, it is sufficiently complete for a creation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides individual parameter descriptions (e.g., url, enabled, domain_id). The tool description does not elaborate on parameters beyond stating the purpose (receiving email.received events), which adds minimal extra value. With full schema coverage, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create a webhook endpoint') and the specific event type ('to receive email.received events'). It also mentions the reactivation behavior for existing deactivated endpoints, which distinguishes it from similar tools like listEndpoints or deleteEndpoint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a follow-up instruction to call testEndpoint after creation to confirm signature verification. It implies the tool is used for setting up new endpoints or reactivating deactivated ones, but does not explicitly state when not to use it or provide alternatives. The context is helpful but could be more detailed.

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

createFilterCreate filterAInspect

Create a whitelist or blocklist filter rule. Patterns are stored lowercase. Per-domain filters require a Pro plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestBodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior4/5

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

Beyond annotations (which indicate non-read-only, non-destructive), the description adds that patterns are stored lowercase and that per-domain filters require a Pro plan. This provides useful behavioral context that helps the agent understand consequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. The purpose is front-loaded in the first sentence. Every sentence provides distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists and the tool is a straightforward creation operation, the description covers the key behavioral aspects (lowercase storage, Pro plan requirement). It does not discuss error cases or input validation, but this is acceptable for a simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not explicitly mention the parameters (type, pattern, domain_id), but the schema already provides descriptions for each. The description adds the 'stored lowercase' behavior for the pattern parameter, which adds value. Since schema coverage is 0% from the tool description, it partially compensates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a whitelist or blocklist filter rule. The verb 'Create' and resource 'filter rule' are specific, and it distinguishes from sibling tools like deleteFilter and listFilters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions a prerequisite (Pro plan for per-domain filters) and a behavioral trait (lowercase storage), but does not provide guidance on when to use this tool vs alternatives like whitelist vs blocklist, or contrast with other creation tools.

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

deleteEndpointDelete webhook endpointA
Destructive
Inspect

Soft-delete a webhook endpoint. The endpoint will no longer receive deliveries.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesEndpoint ID from listEndpoints or createEndpoint.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior4/5

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

The description adds 'soft-delete' context beyond the annotations' destructiveHint: true, indicating the deletion is not permanent. However, it doesn't clarify if the endpoint can be recovered or how it appears afterwards.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that front-load the key information: the action and the consequence. No superfluous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and an output schema, the description covers the core purpose and effect. Minor gaps: no mention of prerequisites or reversibility, but these are not critical for a basic delete operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the tool description adds no additional meaning for the 'id' parameter beyond what the schema already provides ('Endpoint ID from listEndpoints or createEndpoint').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('soft-delete') and resource ('webhook endpoint'), and the effect ('no longer receive deliveries'), distinguishing it from siblings like createEndpoint or testEndpoint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description only states what happens after deletion, not when deletion is appropriate or what conditions must be met.

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

deleteFilterDelete filterB
Destructive
Inspect

Delete a filter rule.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesFilter rule ID from listFilters or createFilter.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior2/5

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

Annotations already declare destructiveHint: true, but the description adds no additional behavioral context such as irreversible deletion or permission requirements. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words, efficiently conveying the core function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (one required parameter, output schema present, annotations), the minimal description is borderline adequate but lacks any explanation of behavior post-deletion or error cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter description 'Filter rule ID from listFilters or createFilter' is explicit. The tool description does not add further meaning, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Delete a filter rule' clearly states the verb (delete) and resource (filter rule), distinguishing it from sibling tools like createFilter and listFilters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, or prerequisites like the filter must exist. The description simply states the action without context.

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

downloadDomainZoneFileDownload DNS zone fileA
Read-onlyIdempotent
Inspect

Download a BIND-format DNS zone file for a domain. Useful when users want to import all required DNS records at once rather than copying them individually. Returns plain text in BIND zone file format.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDomain ID from listDomains or addDomain.
outbound_onlyNoWhen true, include only outbound DNS records (SPF, DKIM, DMARC). Defaults to all records for unverified domains, outbound-only for verified.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds value by stating it returns 'plain text in BIND zone file format', which is beyond the annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first clearly states the action and resource, the second provides the use case and return format. Every sentence is essential, front-loaded, with zero waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, excellent annotations, 100% schema coverage, and presence of an output schema, the description sufficiently covers the tool's behavior. It explicitly mentions the output format, which is the key behavioral detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for both parameters (id and outbound_only), with clear descriptions in the schema. The description does not add additional meaning 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific verb 'Download' and the resource 'BIND-format DNS zone file for a domain'. It distinguishes this tool from siblings like listDomains or verifyDomain by focusing on exporting records in a bulk format.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description briefly mentions a use case ('useful when users want to import all required DNS records at once'), but does not provide explicit guidance on when not to use this tool or mention alternatives among the siblings. It implies usage but lacks comparative context.

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

downloadEmailAttachmentsDownload email attachmentsA
Read-onlyIdempotent
Inspect

Download all attachments for an inbound email as a gzip-compressed tar archive. Returns the archive as a base64-encoded string along with the attachment count and SHA-256 digest. Prefer getEmail first to check the attachment manifest before downloading.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesInbound email ID.
tokenNoSigned download token from a webhook payload. Optional — the bearer token is used when this is omitted.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior5/5

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

Annotations declare readOnlyHint, idempotentHint, destructiveHint. The description adds value by detailing the return format (tar archive, base64, count, digest) and the optional token's purpose, going beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: first explains what the tool does and returns, second provides usage guidance. No extraneous words, front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists (though not shown), the description appropriately focuses on the tool's behavior and usage. It covers all essential aspects: purpose, output, and prerequisite check.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for both parameters (id and token). The description does not add additional meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'download', the resource 'attachments for an inbound email', and the output format (gzip-compressed tar archive as base64 string with count and SHA-256). It distinguishes from sibling tools like getEmail.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises to 'Prefer getEmail first to check the attachment manifest before downloading', providing clear when-to-use and when-not-to-use guidance with a named alternative.

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

getAccountGet accountA
Read-onlyIdempotent
Inspect

Use this when you need the authenticated Primitive account summary, including email, plan, onboarding state, and webhook secret rotation time.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value by listing the returned fields, providing context beyond annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One efficient sentence with no wasted words. Perfectly sized for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values are documented. The description adds useful field names. Complete for a simple read-only tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so description need not add parameter info. Schema description coverage is 100%, baseline is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns the authenticated Primitive account summary with specific fields (email, plan, onboarding state, webhook secret rotation time). It distinguishes from sibling tools as none other seem to retrieve account summary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear usage context: 'when you need the authenticated Primitive account summary'. It does not explicitly mention when not to use it or alternatives, but given siblings, there is no alternative for this purpose.

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

getConversationGet conversationA
Read-onlyIdempotent
Inspect

Get the full conversation an inbound email belongs to as ordered, chat-model-ready turns with bodies. Each message is oldest-first with a direction (inbound/outbound) and a derived role (inbound→user, outbound→assistant). For a brand-new message, returns just that one turn. The response includes a truncated boolean (true when the message cap was reached) and a message_count field.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID of any inbound email in the conversation.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior5/5

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

The description adds substantial behavioral context beyond annotations: it explains the output format (oldest-first turns with direction and role), handling of brand-new messages (returns single turn), and response fields (truncated boolean and message_count). Annotations already declare readOnlyHint and idempotentHint, so the description complements them effectively.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (two sentences) and front-loaded: the first sentence states the core purpose and structure, the second covers edge cases and response fields. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema, the description covers all necessary aspects: what the tool returns, behavior for new messages, and key response fields. It is complete for the complexity level of this read-only, single-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single parameter ('id') clearly described. The description does not add new semantic meaning to the parameter beyond what the schema provides, but it confirms the parameter's role. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: retrieving a full conversation from an inbound email as ordered, chat-model-ready turns. It distinguishes itself from siblings like getEmail and getThread by specifying the structured output format and the inclusion of direction and role fields.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide guidance on when to use this tool versus alternative sibling tools such as getThread or getEmail. It lacks explicit 'when-to-use' or 'when-not-to-use' instructions, leaving the agent to infer from context.

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

getEmailGet emailA
Read-onlyIdempotent
Inspect

Use this when you need full details for one inbound email ID, including parsed bodies, threading metadata, SMTP envelope, webhook state, and replies.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesInbound email ID from listEmails or searchEmails.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive. Description adds specifics on returned data (parsed bodies, threading metadata, etc.), enhancing understanding beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with 'Use this when', no redundant words. Efficient and structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With output schema present, description covers tool purpose, usage context, and returned data. Single parameter well-documented. No gaps given complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description for id is clear ('Inbound email ID from listEmails or searchEmails.'). Main description adds no extra parameter meaning. Baseline 3 due to 100% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Explicitly states it retrieves full details for one inbound email ID, listing included data fields. Distinguishes from sibling tools like listEmails and searchEmails, which are for listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear when to use: for a single email's full details. Implicitly not for multiple emails. Could explicitly mention alternatives for related contexts like conversation or thread.

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

getInboxStatusGet inbox statusA
Read-onlyIdempotent
Inspect

Use this when the user asks whether inbound email is ready or needs setup. Returns domains, routes, deployed Functions, and recent inbound activity.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. Description adds value by listing the exact data returned (domains, routes, deployed Functions, recent inbound activity), but doesn't mention potential staleness or caching behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first provides usage guidance, second lists return contents. No wasted words, front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and presence of an output schema (indicated), the description sufficiently covers what the tool does and what it returns. No gaps for a simple status check tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in input schema (0 params, 100% coverage). Baseline for 0 params is 4. Description does not need to add parameter info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool's purpose: to check inbound email readiness. It specifies what it returns (domains, routes, deployed Functions, recent activity) and distinguishes from sibling tools like getOutboundStatus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use ('when the user asks whether inbound email is ready or needs setup'). Provides clear context, though does not explicitly mention when not to use or list alternatives.

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

getOutboundStatusGet outbound statusA
Read-onlyIdempotent
Inspect

What can I send FROM? Lists this account's verified outbound (sendable) domains plus any domains still pending DNS verification, with next actions. Call this BEFORE sendEmail to pick a valid from domain — the account email is not necessarily sendable. The same sendable list is echoed in a cannot_send_from_domain error.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior4/5

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

Annotations already indicate readOnly, idempotent, and non-destructive. Description adds context about DNS verification status and next actions, enhancing transparency without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no fluff. Front-loaded with key purpose, then usage hint. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with no parameters and an output schema. Description fully covers what it lists, why it's useful, and next steps. No gaps given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in schema (coverage 100%), so no need for parameter explanations. Baseline 4 for zero parameters is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description specifies the tool lists sendable domains and pending verification domains with next actions. Verb 'lists' and resource 'domains with status' are clear. It distinguishes from siblings like sendEmail, addDomain, verifyDomain by targeting outbound status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises calling before sendEmail to pick a valid from domain, and notes that account email may not be sendable. Provides context with error message reference, but could also mention 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.

getSentEmailGet sent emailA
Read-onlyIdempotent
Inspect

Get the full record for a single sent email by id, including body_text and body_html. Use to inspect delivery details for a specific send — e.g. the SMTP response on a bounced row, or the gate denial reason on a gate_denied row.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSent email ID from listSentEmails or a /send-mail response.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior5/5

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

Annotations already declare readOnly, idempotent, non-destructive. Description adds valuable behavioral context: returns body_text and body_html, and typical fields like SMTP response and gate denial reason. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences. First states core functionality, second gives usage examples. No wasted words, front-loaded with key action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple get-by-ID tool with output schema, description covers purpose, use cases, and key return fields. Annotations provide safety profile. Complete enough for agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already describes param id with full coverage (100%). Tool description reinforces that id comes from listSentEmails or send-mail response, adding contextual value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States specific verb 'Get', resource 'full record for a single sent email', and scope 'by id'. Examples of use cases (SMTP response, gate denial) clarify purpose and distinguish from siblings like getEmail (inbox) and listSentEmails.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use to inspect delivery details for a specific send' with concrete examples. Does not explicitly state when not to use, but context implies it's for sent emails only, differentiating from getEmail for inbox.

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

getThreadGet threadA
Read-onlyIdempotent
Inspect

Get a conversation thread by id: metadata plus all inbound and outbound messages interleaved oldest-first. Each message has a direction (inbound/outbound) and id; fetch inbound message bodies via getEmail, or outbound bodies via getSentEmail. Discover thread_id from any email or sent-email record. Compare message_count against messages.length to detect truncation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThread ID from the thread_id field on any email or sent-email.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. Description adds behavioral details: returns interleaved messages oldest-first, each with direction and id, and truncation detection method. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, then essential details. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool (1 param, output schema present), the description fully covers the output structure, usage instructions, and how to use related tools for message bodies. Complete and sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description for the 'id' parameter. Description paraphrases the schema but does not add new semantics beyond the schema definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Get a conversation thread by id' with specific output details (metadata plus interleaved inbound/outbound messages). Distinct from siblings like getEmail which retrieves single message bodies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains how to discover thread_id from email records and instructs to compare message_count vs messages.length for truncation. Does not explicitly state when not to use this tool, but provides clear context.

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

listDomainsList domainsA
Read-onlyIdempotent
Inspect

List all inbound domains for the organization, both verified and unverified. Each domain includes its verification status and DNS records. Use before addDomain to check whether a domain is already claimed.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior4/5

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

Annotations already provide readOnlyHint and destructiveHint, so the description adds value by detailing the output: each domain includes verification status and DNS records. This provides behavioral context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the primary action, and every sentence serves a purpose: stating what the tool does, what it returns, and when to use it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless list tool with an output schema, the description is complete: it describes the resource scope, the output details (status and DNS records), and a key usage hint. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters (schema coverage 100%), so baseline is 4. The description does not need to add parameter information, and it appropriately uses the space to describe output and usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'all inbound domains for the organization, both verified and unverified', making the purpose unambiguous. It differentiates from the sibling addDomain by referencing its use before that action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use before addDomain to check whether a domain is already claimed', giving a direct usage scenario and a sibling tool reference. This helps the agent know when to invoke this tool versus alternatives.

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

listEmailsList inbound emailsA
Read-onlyIdempotent
Inspect

Use this when you need to browse inbound emails received at verified domains with cursor pagination, status filters, date filters, or sender/recipient search.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNoLong-poll up to this many seconds (0–30, default 0) holding the request for new mail instead of returning an empty page immediately. Requires `since`. Returns as soon as matching mail arrives, or an empty page when the wait elapses.
limitNoMaximum number of emails to return (1–100, default 50).
sinceNoForward-tail cursor (a `meta.cursor` value, format `{ISO datetime}|{UUID}`): returns emails strictly NEWER than this position, oldest-first, for lossless polling of just-arrived mail. Mutually exclusive with `cursor`.
cursorNoBackward (history) pagination cursor from a previous response's `meta.cursor` field: returns emails OLDER than this position, newest-first. Mutually exclusive with `since`.
searchNoFree-text search across sender, recipient, and subject.
statusNoFilter to emails in this processing status.
date_toNoInclusive upper bound on created_at (ISO 8601).
date_fromNoInclusive lower bound on created_at (ISO 8601).
domain_idNoFilter to emails received on a specific verified domain.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior3/5

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

Annotations already declare readOnlyHint and destructiveHint, so the agent knows this is a safe read operation. The description adds context about pagination and filters but doesn't disclose additional behavioral traits like rate limits or data freshness policies. With annotations covering the safety profile, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, front-loading the purpose and key capabilities. Every word adds value with no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 9 parameters, good annotations, and an output schema, the description adequately covers the core functionality. It doesn't explain the return format or pagination mechanics in detail, but the output schema fills that gap. Largely complete for a list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so all parameters are already documented. The description summarizes the filter types (cursor pagination, status, date, search) but doesn't add new meaning beyond what the schema provides. Baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool is for browsing inbound emails with cursor pagination and various filters. It uses a specific verb (browse) and resource (inbound emails), but does not explicitly differentiate from sibling tool 'searchEmails' which might serve a similar purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes 'Use this when you need to browse...', providing a clear usage context. However, it lacks explicit when-not-to-use guidance or mention of alternative tools such as 'searchEmails' for more extensive search.

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

listEndpointsList webhook endpointsA
Read-onlyIdempotent
Inspect

List all active webhook endpoints for the organization. Each endpoint shows its URL, enabled state, and optional domain restriction.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds value by specifying that it lists only 'active' endpoints and describes the returned fields (URL, enabled state, domain restriction). No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action, and no wasted words. The structure is efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters, comprehensive annotations, and an existing output schema, the description sufficiently covers what the tool does and what it returns. No gaps remain for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, and schema description coverage is 100% trivially. Baseline 4 is appropriate as the description does not need to explain parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all active webhook endpoints for the organization, specifying that each endpoint shows URL, enabled state, and optional domain restriction. It distinguishes itself from sibling tools like listDomains (domains) and listWebhookDeliveries (delivery history).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing endpoints but provides no explicit guidance on when to use this versus alternatives like listFilters or listWebhookDeliveries. It lacks 'when to use' or 'when not to use' statements.

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

listFiltersList filtersA
Read-onlyIdempotent
Inspect

List all whitelist and blocklist filter rules for the organization.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, so the description's addition of 'all' and specificity about whitelist/blocklist rules adds moderate context but does not fully cover potential pagination or performance implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no wasted words. It is front-loaded and efficiently communicates the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, comprehensive annotations, and an output schema, the description sufficiently covers what the tool does. No additional information is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, schema coverage is effectively 100%, and the description does not need to add parameter details. The baseline for 0 params is 4, and the description does not add extra value beyond stating the scope.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all whitelist and blocklist filter rules, using a specific verb and resource. It distinguishes itself from sibling tools like createFilter and deleteFilter.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives or any prerequisites. The description merely states the function without any usage context.

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

listSentEmailsList sent emailsA
Read-onlyIdempotent
Inspect

List outbound emails sent by this org, with cursor pagination and filters. Bodies are omitted from list rows to keep responses small — use getSentEmail to fetch a specific row with full body. Useful for auditing delivery status, finding bounced sends, or checking gate-denied attempts.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of sent emails to return (1–100, default 50).
cursorNoPagination cursor from a previous response's `meta.cursor` field.
statusNoFilter to rows in this status.
date_toNoInclusive upper bound on created_at (ISO 8601).
date_fromNoInclusive lower bound on created_at (ISO 8601).
request_idNoFilter to the row matching a specific server-issued request_id from a /send-mail response.
idempotency_keyNoFilter to rows with the given client idempotency key.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior4/5

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

Annotations already indicate readOnlyHint=true and idempotentHint=true, confirming safe, non-destructive behavior. The description adds that bodies are omitted for efficiency, a behavioral trait beyond annotations. It could mention ordering or rate limits, but no contradiction and sufficient context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences. The first sentence states the action and features (pagination, filters). The second explains why bodies are omitted and gives usage examples. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists (so return values don't need description), the description covers pagination (cursor), filters (status, date range, request_id, idempotency_key), and the omission of bodies. It is complete for a list tool with this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 7 parameters are described in the input schema with 100% coverage, so the schema already provides clear semantics. The description does not add new parameter-level meaning beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists outbound emails for an org, with pagination and filters. It distinguishes itself from getSentEmail by noting that bodies are omitted in list rows. The verb 'list' and resource 'sent emails' are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit use cases: auditing delivery status, finding bounced sends, checking gate-denied attempts. It also advises when to use getSentEmail for full bodies. However, it does not contrast with other sibling tools like searchEmails or listEmails, which could be alternatives for different filtering needs.

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

listWebhookDeliveriesList webhook deliveriesA
Read-onlyIdempotent
Inspect

List webhook delivery attempts with pagination and filters. Each delivery includes the target endpoint and a nested email object with sender/recipient/subject. Useful for diagnosing delivery failures or confirming a specific email was delivered.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of delivery records to return (1–100, default 50).
cursorNoPagination cursor from a previous response's `meta.cursor` field.
statusNoFilter to deliveries in this status.
date_toNoInclusive upper bound on attempted_at (ISO 8601).
email_idNoFilter by inbound email ID.
date_fromNoInclusive lower bound on attempted_at (ISO 8601).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint. The description adds minimal behavioral context beyond summarizing the result structure. It does not conflict with annotations, so a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-load the purpose and add usage context and return details. No redundant or wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of annotations, full schema coverage, and an output schema, the description effectively completes the picture by explaining the use case and return structure. No critical gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description only summarizes pagination and filters without adding meaning beyond the schema. No additional parameter details are provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists webhook delivery attempts with pagination and filters. It mentions the structure (target endpoint, nested email object) which distinguishes it from sibling tools like listEmails or listFilters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says it is useful for diagnosing delivery failures or confirming delivery. However, it does not explicitly state when not to use it or compare to alternatives like replayWebhookDelivery.

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

replayWebhookDeliveryReplay webhook deliveryAInspect

Re-send a stored webhook payload from a previous delivery attempt to its original endpoint. Rate limited per org (burst + sustained windows, shared budget with email webhook replays).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDelivery ID (numeric string from listWebhookDeliveries).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior4/5

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

Annotations provide no behavioral details beyond non-readOnly and non-destructive. The description adds rate limiting context and clarifies that it re-sends a payload, which is a write operation. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, each serving a specific purpose: the first states the core action, the second adds rate limiting constraints. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (1 parameter, output schema exists), the description adequately covers purpose and rate limiting. It could mention the response or async nature, but the output schema likely handles that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already explains the 'id' parameter sufficiently. The description does not add any additional meaning or context beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the action ('Re-send') and the resource ('stored webhook payload from a previous delivery attempt to its original endpoint'), clearly distinguishing it from sibling tools like listWebhookDeliveries (listing) and testEndpoint (testing).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions rate limiting details ('Rate limited per org (burst + sustained windows, shared budget with email webhook replays)') but does not explicitly state when to use this tool versus alternatives or provide guidance on prerequisites or exclusions.

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

replyToEmailReply to emailA
Destructive
Inspect

Use this when the user has selected a specific inbound email and confirmed a reply. Sends real outbound email with threading handled server-side.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesInbound email ID to reply to. Threading headers are set server-side.
requestBodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior5/5

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

Beyond annotations (destructiveHint=true), description adds 'Sends real outbound email' and 'threading handled server-side', disclosing key behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with essential information front-loaded. No redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (2 required params, nested requestBody) and presence of output schema, description adequately covers when, what, and how. Differentiates from 25+ siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Description adds meaning to 'id' parameter by noting threading headers set server-side. Schema already covers other parameters well, so additional value is moderate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool replies to a selected inbound email, using specific verb 'reply' and resource 'inbound email'. It distinguishes from siblings like sendEmail by focusing on replies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'when the user has selected a specific inbound email and confirmed a reply'. No exclusions mentioned, but context implies not for new emails.

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

searchEmailsSearch inbound emailsA
Read-onlyIdempotent
Inspect

Use this when you need to find inbound emails with structured filters or full-text matching. Use sort=received_at_asc plus date_from for new-mail polling.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoFull-text query matched across subject, body, sender, and recipient.
toNoFilter to emails addressed to this recipient.
bodyNoFilter to emails whose body contains this string.
fromNoFilter to emails from this sender address or domain.
sortNoSort order. Use received_at_asc with date_from for polling new mail.
limitNoMaximum number of emails to return (1–100, default 50).
cursorNoPagination cursor from a previous response's `meta.cursor` field.
statusNoFilter to emails in this processing status.
date_toNoInclusive upper bound on received_at (ISO 8601).
snippetNoInclude a short body snippet in each result (default true).true
subjectNoFilter to emails whose subject contains this string.
date_fromNoInclusive lower bound on received_at (ISO 8601).
domain_idNoFilter to emails received on a specific verified domain.
spam_score_ltNoFilter to emails with a spam score strictly below this value.
has_attachmentNoFilter to emails that have ("true") or lack ("false") attachments.
include_facetsNoInclude aggregated facet counts (sender, domain, status) in the response (default true).true
spam_score_gteNoFilter to emails with a spam score at or above this value.
reply_to_sent_email_idNoFilter to inbound emails that are replies to a specific sent email ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety. The description adds the polling usage pattern but does not disclose other behavioral traits beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste. The first sentence states purpose, the second provides a specific, actionable usage tip. Efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 18 parameters, a detailed output schema, and complete annotations (readOnly, idempotent), the description is minimally sufficient. It covers the primary use case and polling pattern, though it omits mention of facets or pagination. Still adequate for context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining how to combine sort and date_from for polling, enriching parameter semantics beyond the schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'find inbound emails with structured filters or full-text matching', providing a specific verb and resource. However, it does not explicitly differentiate from sibling tools like listEmails, which may serve a simpler listing purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use ('when you need to find inbound emails with structured filters or full-text matching') and includes a practical tip for polling. No mention of when not to use or alternatives, but the guidance is clear and actionable.

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

sendEmailSend emailA
Destructive
Inspect

Use this when the user has confirmed a new outbound email. Sends real email through Primitive's relay and can wait for the first SMTP delivery outcome.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestBodyYes
Idempotency-KeyNoClient-supplied idempotency key. Retrying with the same key returns the original result without re-sending.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds that it sends real email through Primitive's relay and can wait for SMTP outcome, but does not elaborate on error handling, rate limits, or the verified origin requirement mentioned in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the usage condition. Every word adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complex nested schema and presence of an output schema, the description covers the core purpose and behavior (real email, wait capability). It omits mention of the idempotency key feature but remains largely sufficient for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50%, but all individual parameters have detailed descriptions (e.g., to, from, subject). The description adds no additional parameter context; however, the schema already provides sufficient meaning, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Sends real email' and 'Use this when the user has confirmed a new outbound email', clearly identifying the verb (send) and resource (email). It distinguishes from sibling 'sendEmailDemo' by implying this sends real email, not a demo.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this when the user has confirmed a new outbound email', providing clear context. It does not exclude alternatives like 'replyToEmail', but the opening sentence gives appropriate usage guidance.

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

sendEmailDemoTry a send (no signup)A
Read-onlyIdempotent
Inspect

Send a SIMULATED email with no account required. Validates the body against the exact same schema as sendEmail, then returns a realistic synthetic success envelope (demo: true) — it never actually sends, queues, or stores anything. Use this to let someone try Primitive and see the response shape before they sign up. To send for real, sign up for an API key and use sendEmail.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestBodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior5/5

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

Description discloses that it never sends, queues, or stores anything, which adds value beyond annotations (readOnlyHint, idempotentHint, destructiveHint). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences that are front-loaded with the key purpose, no wasted words. Efficient and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single parameter with schema descriptions, an output schema, and sibling tools, the description fully covers the tool's behavior and context without missing critical details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides parameter descriptions (e.g., 'Recipient email address...'), so the description adds no additional parameter details. Baseline 3 is appropriate given schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs ('Send a SIMULATED email') and clearly identifies the resource (email) and the demo nature. It distinguishes from sibling tool 'sendEmail' by stating it's a simulation and returns a synthetic response.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states use case: 'Use this to let someone try Primitive and see the response shape before they sign up.' Also provides alternative: 'To send for real, sign up for an API key and use sendEmail.'

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

testEndpointTest webhook endpointAInspect

Send a sample email.received event to a webhook endpoint to verify your signature verifier. Rate limited to 4/min and 30/hr. Successful deliveries and verified-domain endpoints are exempt.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesEndpoint ID from listEndpoints or createEndpoint.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior4/5

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

The description discloses rate limits and exemptions beyond annotations, but could elaborate on side effects or prerequisites like endpoint existence.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences with no waste, front-loaded with the main purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple tool with one parameter and an output schema; covers purpose, parameter source, and rate limits but lacks explanation of exemptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description repeats the schema's parameter description exactly, adding no new meaning. With 100% schema coverage, a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sends a sample email.received event to test a webhook endpoint, distinguishing it from sibling tools like createEndpoint or replayWebhookDelivery.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides rate limits and exemptions, giving context on when to use it, but does not explicitly exclude alternatives or state when not to use it.

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

verifyDomainVerify domainA
Idempotent
Inspect

Check DNS records for a domain claim (MX, TXT, SPF, DKIM, DMARC). On success the domain becomes verified and starts receiving mail. On failure, returns which checks passed and which still need attention. If DNS propagation is incomplete, wait a few minutes and retry.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDomain ID returned by addDomain or listDomains.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior4/5

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

Discloses that success makes the domain verified and starts receiving mail (side effect). Notes that on failure, which checks passed/failed are returned. Suggests waiting minutes and retrying for propagation delays. Annotations indicate idempotent, so description adds useful context over structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences are front-loaded with purpose, followed by success/failure behavior and retry advice. 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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With output schema present, return values are documented elsewhere. Description covers key aspects: what is checked, outcomes, and retry guidance. Could mention synchronous nature or potential delays, but overall sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter (id) with schema coverage 100% (description in schema: 'Domain ID returned by addDomain or listDomains.'). Description does not add further parameter details, but schema already provides sufficient meaning. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'Check DNS records' for a domain claim, specifying the record types checked (MX, TXT, SPF, DKIM, DMARC) and the success/failure outcomes. It distinguishes itself from sibling tools like addDomain and listDomains by focusing on verification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies use after adding a domain (takes domain ID from addDomain or listDomains). Provides explicit retry guidance for DNS propagation delays. However, does not explicitly state when not to use (e.g., if domain already verified) or name alternatives.

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

Discussions

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

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources