Skip to main content
Glama

Server Details

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

Status
Unhealthy
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 26 of 26 tools scored. Lowest: 3.2/5.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct resource and action: domain management, email retrieval, sending, webhooks, filters, and account status. Even similar tools like getConversation, getThread, and getEmail have clearly differentiated purposes and descriptions.

Naming Consistency5/5

All 26 tools follow a consistent verb_noun pattern using snake_case (e.g., addDomain, getEmail, listEmails). Verbs are uniform and predictable (add, create, delete, download, get, list, etc.).

Tool Count4/5

26 tools is slightly above the ideal range but well-justified for a full-featured email server covering domain setup, inbound/outbound email, webhooks, filters, and account management. Each tool serves a necessary purpose.

Completeness5/5

The tool surface covers the entire lifecycle of email management: domain verification, inbound email retrieval and search, outbound sending and reply, webhook handling, filter rules, and account info. No obvious gaps exist for the stated domain.

Available Tools

26 tools
addDomainAInspect

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?

The description discloses key behaviors: it returns dns_records, handles mx_conflict by requiring confirmation, and requires a follow-up step. Annotations indicate it is not read-only or destructive, which aligns with the claim action. The description adds context beyond annotations by specifying the conflict resolution pattern.

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 three sentences, each serving a distinct purpose: stating the primary function, detailing the conflict handling, and directing the next step. It is front-loaded with the primary action and avoids unnecessary details.

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

Completeness4/5

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

The description covers the full lifecycle of claiming a domain, including handling conflicts and the subsequent verification step. It mentions the return of dns_records, and since an output schema exists, it need not elaborate further. Minor omission: no mention of prerequisites or authorization, 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?

The input schema already provides descriptions for both parameters (domain and confirmed). The tool description does not add significant new meaning to the parameters but provides context for the confirmed parameter's use case. Since schema description coverage is effectively high, 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: 'Claim a new domain and receive the DNS records to publish.' The verb 'claim' is specific to the resource 'domain', and it distinguishes from sibling tools like verifyDomain and listDomains by outlining the unique return value and next steps.

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 usage guidance: it describes the normal flow and how to handle an mx_conflict by re-calling with confirmed: true, and advises calling verifyDomain after publishing DNS records. However, it does not explicitly state when not to use this tool (e.g., for already claimed domains), which could be inferred.

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

createEndpointAInspect

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 transparency by noting reactivation of deactivated endpoints and the need to call testEndpoint after creation. However, it does not disclose error behavior if the URL exists and is active, nor does it mention authentication requirements or rate limits.

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

Conciseness5/5

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

The description is concise with three sentences, each adding value. It front-loads the core purpose and then provides key behavior and a follow-up instruction without extraneous content.

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

Completeness4/5

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

Given the tool's complexity (1 param with nested schema) and presence of an output schema, the description covers essential context: purpose, reactivation, and testing. Minor gaps include error cases and idempotency, but overall adequate for selection.

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 descriptions for all parameters, so the baselines is 3. The description adds no extra parameter semantics beyond the reactivation note, which implies the URL parameter's importance but does not elaborate.

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 webhook endpoint for email.received events, with a specific verb and resource. It distinguishes itself from siblings like testEndpoint and createFilter by focusing on endpoint creation and reactivation.

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 like listEndpoints or createFilter. The description implies usage for creating endpoints and suggests a follow-up to testEndpoint, but lacks exclusion criteria or context for other related tools.

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

createFilterAInspect

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 indicating a write operation (readOnlyHint=false), the description adds that patterns are stored lowercase and that per-domain filters require a Pro plan. This provides useful behavioral context beyond what annotations offer.

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

Conciseness5/5

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

Two short sentences with no unnecessary words. The first sentence immediately conveys the purpose, and the second adds important behavioral details. Minimal and effective.

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 aspects: filter types, pattern storage, and plan requirement. With an output schema present, explanation of return values is unnecessary. Could mention potential duplicate handling or error conditions, but overall adequate.

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?

Despite schema descriptions for pattern and domain_id, the tool description adds the context of whitelist/blocklist and the lowercase transformation, clarifying the purpose of the type parameter and pattern storage behavior. This compensates for the low schema description coverage.

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

Purpose5/5

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

The description clearly states the verb 'Create', the resource 'whitelist or blocklist filter rule', and distinguishes from siblings like deleteFilter and listFilters. It also provides specific details about pattern storage and plan requirements.

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) but does not explicitly state when to use this tool versus alternatives like update or delete. No exclusions or when-not guidance is provided.

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

deleteEndpointB
Destructive
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

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 the destructiveHint annotation, the description adds that the deletion is 'soft' and that the endpoint 'will no longer receive deliveries,' which clarifies the behavioral impact. This is helpful context beyond the binary annotation.

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

Conciseness4/5

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

The description is extremely concise (one sentence) and front-loaded with key information. However, it omits parameter details, which would not significantly lengthen it.

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?

The description provides the core action and consequence but lacks details about the parameter and any prerequisites. Given an output schema exists, return values need not be described, but the missing parameter semantics reduces completeness.

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

Parameters1/5

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

The sole parameter 'id' has no schema description (0% coverage), and the tool description does not mention or elaborate on it. The agent gains no additional meaning beyond the raw 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?

The description clearly states the action 'soft-delete' and the resource 'webhook endpoint', differentiating it from siblings like createEndpoint or testEndpoint. It is specific and unambiguous.

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

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 (e.g., deleteFilter or other deletion tools). The description lacks context about prerequisites or scenarios.

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

deleteFilterB
Destructive
Inspect

Delete a filter rule.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior3/5

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

The description aligns with the destructiveHint annotation, but adds no behavioral details beyond what annotations already provide.

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

Conciseness4/5

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

A single, clear sentence with no wasted words, though could potentially include more context without being verbose.

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?

Adequate for a simple destructive tool with annotations and output schema, but lacks details about success/failure behavior.

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

Parameters2/5

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

With 0% schema description coverage and only one parameter (id), the description does not add meaning beyond the schema's type and format.

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 (delete) and resource (filter rule), distinguishing it from siblings 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 on when to use this tool versus alternatives, nor any exclusions or prerequisites.

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

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

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds that it 'Returns plain text in BIND zone file format,' which is helpful beyond annotations. No further behavioral context provided.

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 three sentences, front-loaded with the main action, and every sentence adds value. It is concise with no wasted 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?

With only two parameters, an output schema, and clear annotations, the description is reasonably complete. It notes the return format, though it could briefly mention error handling or domain verification status.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents parameters adequately. The description does not add additional semantic details beyond what the schema provides, meeting the baseline.

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

Purpose5/5

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

The description clearly states 'Download a BIND-format DNS zone file for a domain,' using a specific verb and resource. It distinguishes from sibling tools like addDomain or listDomains by focusing on downloading a zone file for bulk import.

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 it is 'useful when users want to import all required DNS records at once,' providing a clear use case. However, it does not explicitly state when not to use it or offer alternatives among siblings, leaving some ambiguity.

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

downloadEmailAttachmentsA
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
Behavior4/5

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

Annotations declare readOnlyHint=true and idempotentHint=true, but the description adds valuable behavioral context: the archive is gzip-compressed, returned as base64 with a digest, and the optional token parameter is explained as signed from a webhook payload. 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 with no wasted words: first sentence states action and output, second sentence provides usage guidance. Front-loaded with main 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?

Covers all key aspects: resource, operation, output format (including count and hash), and prerequisite action. With an output schema existing, the description sufficiently explains return values without being redundant.

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% for both parameters, but the description adds meaning for the 'token' parameter ('Signed download token from a webhook payload. Optional — the bearer token is used when this is omitted'), which goes beyond the schema's description.

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 downloads all attachments for an inbound email as a compressed tar archive, specifies the output format (base64 string, attachment count, SHA-256), and distinguishes from the sibling getEmail by advising to check that first.

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 to prefer getEmail first to check the attachment manifest before downloading, providing clear context for when to use this tool relative to a sibling, though it doesn't cover other alternatives or when-not-to-use scenarios.

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, idempotentHint, and destructiveHint. The description adds value by specifying exactly what data is returned (email, plan, onboarding state, webhook secret rotation time), which is beyond the annotations. 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?

The description is a single sentence, front-loaded with the purpose. It contains no superfluous words and effectively communicates the tool's functionality.

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 (no parameters, output schema available), the description is fully complete. It clearly states what the tool does and what it returns. No gaps or missing information.

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

Parameters4/5

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

The tool has zero parameters, so no parameter documentation is needed. The description does not need to cover parameters; baseline for 0 parameters is 4. The description adds no param info, which 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 'get' and the resource 'Primitive account summary', listing specific fields (email, plan, onboarding state, webhook secret rotation time). It distinguishes from sibling tools like 'getEmail' or 'listDomains' by focusing on the account-level 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 gives explicit guidance on when to use the tool: 'when you need the authenticated Primitive account summary'. It implies a single purpose, and the context signals (sibling tools) provide implicit alternatives. Could be improved by explicitly stating when not to use, but it's clear enough.

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

getConversationA
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
Behavior4/5

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

Annotations already indicate readOnly, idempotent, and not destructive. Description adds value by detailing output format (oldest-first, direction, role mapping), truncated boolean, message_count, and special case for new messages.

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 focused sentences, no filler. Front-loaded with purpose, then key details. Highly efficient.

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?

Fully covers the tool's purpose, output structure, edge case, and response fields. No gaps given the complexity and presence of output schema.

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

Parameters3/5

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

Schema has one parameter with description. Description reinforces that any inbound email ID works, but does not add substantial new semantics beyond the schema. Baseline 3 due to high schema coverage.

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

Purpose5/5

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

Clearly states the tool gets the full conversation for an inbound email, formatted as chat-model-ready turns with ordering and role derivation. Distinguishes from siblings like getEmail and getThread by specifying the conversational context.

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 describes when to use (for inbound emails) and behavior for new messages. Does not directly state when not to use or list alternatives, but the sibling list and context make it reasonably clear.

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
idYes

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 confirm read-only, idempotent, non-destructive. Description adds the specific data returned (bodies, threading, SMTP envelope, webhook state, replies), going beyond annotation hints 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?

Single sentence that efficiently conveys the tool's purpose, scope, and included data. No unnecessary words or repetition.

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 and one simple required parameter, the description covers all necessary context: what the tool does, when to use it, and what it returns. No 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?

Only one parameter 'id' with no schema description. The description mentions 'inbound email ID' but does not elaborate beyond what the type implies. For a single UUID param, it is adequate but lacks explicit guidance on format.

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

Purpose5/5

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

The description clearly states the tool retrieves full details for a single inbound email ID, listing specific data fields (parsed bodies, threading metadata, etc.). It distinguishes from siblings like getSentEmail, listEmails, and getThread.

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 'Use this when you need full details for one inbound email ID,' implying not for lists, outbound, or threads. Ifs clear but could explicitly mention alternatives like listEmails.

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 and idempotentHint true; description adds what the tool returns (domains, routes, etc.) without contradicting 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 usage guidance. Every sentence adds value, 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?

Simple tool with no params and an output schema. Description fully covers when to use and what is returned, sufficient for an agent.

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 (schema has no properties), so schema coverage is 100%. Description doesn't need to add param info; baseline of 4 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 it returns status about inbound email readiness, specifying returned data (domains, routes, deployed Functions, recent inbound activity). It distinguishes from siblings like sendEmail or listDomains.

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 this when the user asks whether inbound email is ready or needs setup.' Provides clear context; could mention when not to use, but the sibling tools cover other cases.

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

getSentEmailA
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
idYes

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 behavioral context beyond annotations by specifying that it returns body_text and body_html (large fields) and delivery details like SMTP responses, which is valuable for an agent to know the payload size and content.

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

Conciseness5/5

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

The description consists of two sentences: the first states the primary function concisely, and the second provides a usage example. No superfluous text, and it is front-loaded with the 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 the single parameter, rich annotations, and presence of an output schema, the description covers the tool's purpose, what it returns (full record with body and delivery details), and usage examples. It is complete for the tool's 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?

The description implies the parameter 'id' is the email's identifier ('by id'), but with 0% schema description coverage, it adds minimal additional meaning. The format uuid is clear from the schema, so the description is adequate but not exceptional.

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 'Get the full record for a single sent email by id', specifying the verb (get), resource (sent email), and scope (by id, including body_text and body_html). It distinguishes from siblings like listSentEmails and getEmail by focusing on sent emails and including delivery details.

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 usage context: '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.' It does not explicitly state when not to use or mention alternatives, but the examples give strong guidance for appropriate use cases.

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

getThreadA
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
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds important behavioral details: messages are interleaved oldest-first, each has direction and id, and truncation is detectable via message_count vs. messages.length. 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.

Conciseness4/5

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

The description is a single paragraph of moderate length, packed with information. Every sentence adds value, though a structured format (e.g., bullet points) could improve scanability. No redundant content.

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

Completeness5/5

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

Given the presence of an output schema and the complexity of a thread retrieval tool, the description covers essential aspects: what is returned, how to use the results, and caveats (truncation, body retrieval). No gaps identified.

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 description coverage is 100%, but the description adds value by explaining the source of the thread ID ('from the thread_id field on any email or sent-email'), which is not redundant with the schema's description.

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 'Get a conversation thread by id' and specifies the exact content returned (metadata plus interleaved messages). It distinguishes itself from sibling tools like getEmail and getSentEmail by mentioning that message bodies are fetched separately, and it explains how to obtain the thread_id.

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?

Provides explicit usage guidance: how to discover thread_id from email/sent-email records, and how to use the returned data (comparing message_count for truncation). It also tells when to use other tools (getEmail, getSentEmail) for bodies, effectively distinguishing use cases.

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

listDomainsA
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
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description's addition of what data is included (verification status and DNS records) adds some value beyond annotations, but does not cover potential behaviors like pagination or data freshness.

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, no wasted words, and the key action is front-loaded.

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

Completeness4/5

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

Given the zero-parameter input, presence of output schema, and thorough annotations, the description adequately covers purpose, usage, and expected data. Missing ordering/filtering info is not essential.

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

Parameters4/5

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

The input schema has zero parameters, as reflected by 100% schema description coverage. Baseline for 0 params is 4, and the description does not need to add parameter information.

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'), resource ('inbound domains'), and scope ('both verified and unverified'). It also distinguishes from sibling tools by mentioning 'Use before addDomain to check whether a domain is already claimed.'

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 advises using this tool before addDomain, providing clear context. However, it does not elaborate on when not to use it or list alternatives among the many sibling tools.

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
limitNo
cursorNoPagination cursor from a previous response's `meta.cursor` field.
searchNo
statusNo
date_toNo
date_fromNo
domain_idNo

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 indicate readOnlyHint and idempotentHint, which the description does not contradict. The description adds behavioral details like cursor pagination and filters, but no mention of rate limits or other constraints.

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, front-loaded sentence that efficiently conveys all key capabilities without unnecessary detail.

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 the main use cases with pagination and filters. An output schema exists, so return values are documented. Missing details like sorting order or default behavior, but overall adequate.

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 14% (only cursor has a description). The description mentions cursor pagination, status filters, date filters, and sender/recipient search, which maps to several parameters but does not explain domain_id or limit. The description adds some value but could elaborate more.

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 inbound emails with specific filtering and pagination. The title and description distinguish it from sibling tools like listSentEmails and getEmail.

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 you need to browse inbound emails,' providing clear usage context. However, it does not explicitly mention when not to use it or compare with alternatives like searchEmails.

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

listEndpointsA
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
Behavior5/5

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

Annotations already declare it read-only, idempotent, and non-destructive. The description adds that it only returns active endpoints and details the content of each endpoint, providing useful 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 a single, well-structured sentence that conveys all necessary information without extraneous content.

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

Completeness5/5

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

For a simple listing tool with no parameters and an output schema present, the description is complete. It specifies what the tool returns and mentions active endpoints.

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, and the schema coverage is 100%. The description does not need to add parameter information, so baseline 4 is appropriate.

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

Purpose5/5

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

The description clearly states it lists active webhook endpoints and specifies the fields included (URL, enabled state, domain restriction). It distinguishes itself from sibling tools like createEndpoint and deleteEndpoint by being a read-only listing tool.

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 clear context that it lists all active endpoints for the organization. It does not explicitly mention when not to use it or alternatives, but given no parameters and a straightforward purpose, the usage is well implied.

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

listFiltersA
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 indicate readOnlyHint=true and idempotentHint=true; the description adds scope (organization) and type of filters (whitelist/blocklist) but no additional behavioral details 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?

One sentence with no redundancy, directly conveying the tool's action and scope.

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 the presence of an output schema, the description fully covers what the tool does and its scope.

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 (100% schema coverage); baseline 4 applies as description need not 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?

The description clearly states it lists all whitelist and blocklist filter rules for the organization, distinguishing it from sibling tools that create or delete filters.

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

Usage Guidelines4/5

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

The description implies usage for viewing current filters but does not explicitly state when not to use it or mention alternatives; however, no sibling tools list filters, so the context is clear.

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

listSentEmailsA
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
limitNo
cursorNoPagination cursor from a previous response's `meta.cursor` field.
statusNoFilter to rows in this status.
date_toNoInclusive upper bound on created_at.
date_fromNoInclusive lower bound on created_at.
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 declare readOnlyHint=true and idempotentHint=true. Description adds non-obvious behavior: 'Bodies are omitted from list rows to keep responses small', which helps manage expectations. 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 focused sentences: purpose, body omission, use cases. No fluff, each 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?

Given 0 required params, output schema exists, and sibling tools are numerous, the description fully covers the tool's purpose and behavior. No missing critical info.

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 86%, so baseline is 3. The description contextualizes filters as useful for auditing but adds no specific parameter details beyond the schema.

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

Purpose5/5

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

Clearly states the verb 'List', resource 'outbound emails', scope 'sent by this org', and features like cursor pagination and filters. Distinguishes from sibling tools like listEmails by specifying outbound emails, and directs to getSentEmail for full body.

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 mentions use cases: 'auditing delivery status, finding bounced sends, or checking gate-denied attempts.' Also advises when not to use it (for full body) and directs to the appropriate alternative tool.

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

listWebhookDeliveriesA
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
limitNo
cursorNoPagination cursor from a previous response's `meta.cursor` field.
statusNo
date_toNo
email_idNoFilter by inbound email ID.
date_fromNo

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, signaling a safe read operation. The description adds behavioral details: features pagination and filters, and the output includes a nested email object. This exceeds annotations without contradicting them. Slightly more detail on pagination mechanics could raise to 5.

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

Conciseness5/5

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

Two sentences: first states the tool's core action and output structure, second adds usage context. No redundant words, perfectly front-loaded. 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 tool has an output schema (not shown but referenced) and 6 parameters. The description mentions the nested email object in output, which adds value. However, it omits details about pagination mechanics (e.g., cursor usage) and does not describe all filter parameters. For a read-only list tool with output schema, completeness is good but not exhaustive.

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 33% (only cursor and email_id have descriptions). The description broadly mentions 'pagination and filters' but does not add meaning for unspecified parameters like limit, status, date_to, date_from. Given low coverage, the description should compensate more. Baseline 3 is appropriate as it adds some context but insufficiently.

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: 'List webhook delivery attempts' with pagination and filters. It specifies the output includes target endpoint and nested email object, distinguishing it from sibling list tools like listEmails or listSentEmails, which list different resources.

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 usage context: 'Useful for diagnosing delivery failures or confirming a specific email was delivered.' It implies when to use (delivery diagnostics) but does not explicitly exclude alternatives or mention sibling tools like listEmails for similar purposes. Still, the guidance is clear enough for most agents.

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

replayWebhookDeliveryAInspect

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

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

Description discloses rate limiting behavior, which is valuable since annotations provide no hints (readOnlyHint, idempotentHint, destructiveHint all false). However, it does not mention idempotency, side effects, or error conditions.

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 purpose, second adds critical rate limit constraint. No redundancy, front-loaded.

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

Completeness4/5

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

Tool is simple with one parameter and output schema (exists but not shown). Description covers purpose and rate limits. Minor gaps: no mention of prerequisites (e.g., delivery type) or error scenarios, but overall adequate.

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% (parameter 'id' well-documented in schema). The description adds no additional parameter meaning, 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?

Description uses specific verb 'Re-send' and resource 'stored webhook payload', clearly defining the action. It distinguishes from siblings as no other tool re-sends webhooks.

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

Usage Guidelines4/5

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

Provides clear context about rate limiting per org with burst/sustained windows, which informs usage. Does not explicitly state when to use vs alternatives, but the rate limit detail adds practical guidance.

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
idYes
requestBodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
toolYes
statusYes
statusTextNo
Behavior3/5

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

Description confirms the destructive nature (sends real email) and adds the behavior 'threading handled server-side.' Annotations already indicate destructiveHint=true and readOnlyHint=false, so the description adds moderate value by clarifying threading but lacks details on side effects or required permissions.

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 fluff, front-loaded with the usage condition. Every word adds value.

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

Completeness2/5

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

Despite having an output schema, the description omits input parameter details, which are complex (nested objects, required fields). The agent lacks crucial information to correctly construct the request. Description is incomplete for a tool with two required parameters.

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

Parameters2/5

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

With 0% schema coverage, the description should explain parameters but does not mention 'id' or 'requestBody' at all. The 'confirmed a reply' hint is vague; no guidance on what 'id' represents or the structure of 'requestBody.'

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 specifies the purpose: sending a reply to a selected inbound email with server-side threading. It uses a specific verb ('reply') and resource ('email'), and implies distinction from sibling 'sendEmail' by focusing on context of an existing inbound email.

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 states the explicit condition for use: 'when the user has selected a specific inbound email and confirmed a reply.' It provides clear context but does not explicitly mention alternatives like 'sendEmail' for new emails, which would strengthen guidance.

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
qNo
toNo
bodyNo
fromNo
sortNo
limitNo
cursorNo
statusNo
date_toNo
snippetNotrue
subjectNo
date_fromNo
domain_idNo
spam_score_ltNo
has_attachmentNo
include_facetsNotrue
spam_score_gteNo
reply_to_sent_email_idNo

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=true, idempotentHint=true, destructiveHint=false, so the description's additional tip about polling is useful but not extensive. No contradictions.

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

Conciseness5/5

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

Two sentences, no wasted words. The first sentence states purpose, the second gives a practical tip. Every sentence earns its place.

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

Completeness2/5

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

Despite output schema, the description lacks details on pagination, faceted results, spam filters, and how to combine filters. For 18 parameters, this is insufficient for complete usage understanding.

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

Parameters2/5

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

With 0% schema description coverage, the description needs to explain parameters. It only mentions sort and date_from for polling, leaving 16 parameters undescribed. Names like 'q', 'to', 'from' are somewhat self-explanatory but not fully documented.

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 searches inbound emails with structured filters or full-text matching, aligning with the name and title. It distinguishes from siblings like listEmails which likely lacks filtering.

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

Usage Guidelines4/5

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

Provides explicit when-to-use guidance: 'find inbound emails with structured filters or full-text matching' and a specific polling pattern using sort=received_at_asc and date_from. No exclusions or alternatives mentioned, but the context is clear.

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-KeyNo

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 destructive and non-idempotent behavior. The description adds that it sends real email via relay and can wait for SMTP outcome, providing useful context 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 very concise, two sentences, front-loaded with usage guidance, and no unnecessary words. Every sentence earns its place.

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 tool complexity with many parameters and an output schema, the description is inadequate. It fails to explain return values, delivery status, or error handling. However, the output schema may partially compensate.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. However, it only mentions 'can wait' which relates to the wait parameter, but does not explain other key parameters like from, to, subject, attachments, etc. This is a significant gap.

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 new outbound email when the user has confirmed. This distinguishes it from sibling tools like replyToEmail and sendEmailDemo.

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 gives explicit guidance to use when user has confirmed a new outbound email. While it doesn't explicitly state when not to use, the context is clear enough.

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

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?

Beyond annotations (readOnlyHint=true, destructiveHint=false), the description discloses key behavioral traits: it never actually sends, queues, or stores anything; returns a realistic synthetic success envelope with demo flag. 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 concise (three sentences) and front-loaded with the key purpose. Every sentence adds unique value: simulation nature, validation behavior, return shape, and usage guidance. 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 tool's simplicity, the output schema existence, and the annotations, the description covers all necessary context: what it does, what it returns, when to use it, and limitations (not real sending). Complete for a demo 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 description coverage is low (0% overall, but the 'from' property has a description). However, the tool description adds value by explaining that the body is validated against the same schema as sendEmail and that any well-formed sender is accepted. This provides context beyond the schema, though individual parameters are not detailed.

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 sends a SIMULATED email with no account required, distinguishing it from the real sendEmail. The verb 'Send' plus modifier 'SIMULATED' and the explanation that it never actually sends make the purpose crystal clear.

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 when to use this tool: to try before signing up. Also directs to use sendEmail for real sending. Provides clear context: no account required, validates same schema, returns synthetic response.

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

testEndpointBInspect

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
idYes

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 provide no behavioral hints (all false). Description mentions rate limiting but does not disclose potential side effects (e.g., whether test events persist or incur costs). 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, front-loaded with purpose, then rate limit details. No unnecessary words or repetition.

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?

With one simple parameter and an output schema (not shown), description covers purpose and rate limits but misses parameter guidance. Overall adequate but could be improved by describing the parameter.

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

Parameters1/5

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

Schema coverage is 0%, but description does not explain the single required 'id' parameter (e.g., that it is the endpoint UUID). Without this, the agent must infer from the schema's UUID format.

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 it sends a sample email.received event to a webhook endpoint to verify signature verifier. This differentiates it from sibling CRUD tools on endpoints and emails. However, 'signature verifier' could be more explicit.

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

Usage Guidelines3/5

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

It provides context for use (to verify signature verifier) and mentions rate limits with exemptions, but does not explicitly state when not to use it or identify alternatives among siblings.

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

verifyDomainA
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?

The description explains the state change on success (domain becomes verified) and what happens on failure (returns passed/failed checks). It aligns with annotations (idempotentHint true, destructiveHint false) and adds retry context, though it could note idempotency explicitly.

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 front-load the main action, explain outcomes, and provide retry guidance. No redundant or unnecessary wording.

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 well-documented parameter and the presence of an output schema, the description covers the purpose, effects, and failure handling completely. Retry guidance adds practical completeness.

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 schema already describes the ID parameter well. The description does not add additional parameter-level details beyond what the schema provides, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states it checks DNS records for a domain claim, listing specific record types (MX, TXT, SPF, DKIM, DMARC). It explains success and failure outcomes, distinguishing it from sibling tools like addDomain or listDomains.

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

Usage Guidelines4/5

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

The description implies use after adding a domain and advises retrying if propagation is incomplete. However, it does not explicitly state when not to use it or mention alternatives beyond the retry guidance.

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