Skip to main content
Glama

Groundmail

Server Details

Send transactional email and manage domains, templates, webhooks and suppressions with Groundmail.

Ownership verified
Status
Healthy
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
Groundmail/groundmail-mcp
GitHub Stars
0
Server Listing
groundmail-mcp

TDQS

A3.5/5.0

Scored across 19 tools

Disambiguation5/5

Each tool targets a unique resource-action pair (domain, template, webhook, suppression, email) with no two tools doing the same thing. Sequential domain steps (create/apply/verify) are clearly distinguished by description.

Naming Consistency5/5

All names use consistent snake_case with a verb_noun structure (list_*, get_*, create_*, delete_*, etc.). Minor variation like send_test_webhook_event still fits the pattern.

Tool Count4/5

19 tools is slightly above the ideal 3-15 range but justified by the breadth of the email platform (domains, templates, webhooks, suppressions, sends, deliverability). Each tool earns its place, though a few could be consolidated.

Completeness3/5

Core lifecycle for templates and domains lacks update and delete operations, and webhooks/suppressions have no get or update. These gaps will force workarounds for common tasks like editing a draft template or removing a domain.

Available Tools

19 tools
add_suppressionAdd suppressionC
Idempotent
Inspect

Add an address to the suppression list.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesEmail address to stop sending to
reasonNoOptional note on why the address is suppressed

Output Schema

ParametersJSON Schema
NameRequiredDescription
suppressionYesThe suppression entry

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare this is a non-read-only, idempotent, non-destructive write, so the safety profile is covered. The description adds nothing beyond that: it does not explain the effect (that future sends to this address are blocked), whether the change is reversible, or any auth/rate considerations. With annotations carrying the safety load, the description is thin but not contradictory.

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 front-loaded sentence with zero waste. It is efficient, though arguably so terse that it omits useful context for a mutation tool.

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?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. However, for a write tool the description omits the operational consequence of suppression (blocking future sends) and the existence of the inverse operation, which an agent would benefit from knowing.

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 both parameters (email, reason) are already fully documented in the schema, including that reason is optional. The description adds no syntax, format, or semantics beyond the schema, so the baseline 3 applies.

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 states a specific verb (add) and resource (suppression list), and the name plus sibling set (list_suppressions, remove_suppression) makes the direction of the operation unambiguous. It does not explicitly name a sibling or contrast with alternatives, but the purpose is immediately clear.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus remove_suppression or list_suppressions, no mention of prerequisites, and no indication of when suppression is appropriate (e.g., hard bounces, complaints, manual opt-out). The agent must infer all usage context.

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

apply_domain_dnsApply domain DNS recordsB
DestructiveIdempotent
Inspect

Apply Groundmail DNS records for a domain. Cloudflare and GoDaddy can use credentials stored in the dashboard; GoDaddy also accepts one-time credentials on the request.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name or id of a domain already added to this account (example.com)
providerYesDNS provider that hosts the domain
credentialsNoOptional inline registrar credentials (GoDaddy api key/secret)

Output Schema

ParametersJSON Schema
NameRequiredDescription
domainYesDomain the records belong to
recordsNoDNS records to publish for the domain
resultsYesOutcome for each record
providerYesDNS provider the records were written to

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=true, so the risky profile is covered structurally. The description adds genuinely useful behavior beyond that, namely that Cloudflare/GoDaddy can use dashboard-stored credentials while GoDaddy additionally accepts one-time inline credentials. However, it does not say that applying records overwrites/alters existing DNS configuration, nor does it mention the Vercel provider path.

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

Conciseness5/5

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

Two tight sentences with the action front-loaded and the credential nuance second. Nothing is redundant or padded.

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?

An output schema exists, so return values need not be explained, and the annotations carry the safety profile. Still, for a destructive, open-world mutation the description omits the key operational context: what existing records are replaced, whether the domain must already be added, and the Vercel case. It is adequate but leaves real 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 coverage is 100%, so the schema already documents domain, provider, and credentials, which sets the baseline at 3. The description adds only one extra nuance, that the credentials object is relevant to GoDaddy in particular; it says nothing about the vercel enum member or the accepted id-vs-name form of domain.

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?

States a specific verb and resource: applying Groundmail DNS records to a domain. It is distinguishable from siblings like create_domain and verify_domain in broad strokes, but never explicitly contrasts itself with verify_domain, so an agent must infer which of the two DNS-related tools to pick.

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 says what it does but never states when to invoke it versus verify_domain or after which prerequisite step. The note about where credentials can come from is contextual detail, not usage guidance, and no exclusions or preconditions are given.

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

create_domainCreate domainAInspect

Add a sending domain. DNS must still be applied and verified before production sends.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDomain name (example.com)
inbound_enabledNoEnable inbound receiving on this domain

Output Schema

ParametersJSON Schema
NameRequiredDescription
domainYesThe domain
recordsYesDNS records to publish for the domain
inbound_noteNoGuidance about adding the inbound MX records
inbound_recordsNoMX records to publish when inbound receiving is enabled

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare the safety profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false), so the description's main added value is the workflow constraint that the domain is not production-ready until DNS is applied and verified. It does not address what happens on duplicate domain creation or other mutation side effects, so it adds modest 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?

Two short sentences, zero waste, with the action front-loaded and the critical DNS caveat immediately following. Nothing could be trimmed without losing 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?

With an output schema present, return values need no explanation, and the description covers the core action plus the key operational caveat. It could say more about duplicate-handling or the verify/apply sequence, but it is essentially complete for a simple two-parameter 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?

Schema description coverage is 100%, with both name and inbound_enabled documented in the schema itself. The description adds no parameter-level meaning (e.g., it never mentions inbound_enabled or its effect), so the baseline 3 applies.

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?

"Add a sending domain" gives a specific verb plus resource and distinguishes creation from siblings like list_domains and verify_domain. It stops short of explicitly naming those siblings or clarifying the sending-vs-inbound scope trade-off in any detail.

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 sentence "DNS must still be applied and verified before production sends" implies the follow-up workflow (apply_domain_dns, verify_domain), which is useful implied guidance. However, it never explicitly names those tools or states when an agent should choose this over alternatives, leaving usage to inference.

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

create_templateCreate templateBInspect

Create a draft email template (html or blocks format).

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlNoHTML body
nameYesTemplate name
textNoPlain-text body
aliasNoOptional short alias to reference the template by instead of its id
formatNoTemplate format (html or blocks)
subjectYesSubject line, may contain {{variables}}

Output Schema

ParametersJSON Schema
NameRequiredDescription
templateYesThe template

TDQS

B3.2/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=false, so the safety profile is covered. The description adds the useful nuance that the result is a draft (not sendable until published) and that html/blocks formats are accepted, but it says nothing about auth requirements, uniqueness constraints, or whether repeated calls duplicate templates.

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 front-loaded sentence that states the action, the created artifact and its state with zero filler. It is tightly written, though arguably too terse for a six-parameter creation tool.

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?

An output schema exists, so return values need not be explained, and annotations carry the safety profile. What remains missing is the draft-to-live lifecycle and any constraints on name/alias, leaving the description only minimally adequate for a creation endpoint.

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 all six parameters are already documented in the schema. The description only echoes the html/blocks format choice, adding no syntax, pairing, or default guidance beyond structured data; baseline 3 applies.

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?

Clear verb+resource: 'Create a draft email template' with the supported formats named. The word 'draft' implicitly separates it from publish_template, but the sibling is never named explicitly.

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

Usage Guidelines2/5

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

There is no stated when-to-use, prerequisite, or alternative. An agent must infer from 'draft' that publish_template exists to make a template live, and nothing tells it whether a name must be unique or whether alias collisions matter.

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

create_webhookCreate webhookAInspect

Create a webhook endpoint. Returns the endpoint plus a signing secret (shown once).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesHTTPS URL that receives events
eventsNoOptional event types (defaults apply when omitted)

Output Schema

ParametersJSON Schema
NameRequiredDescription
secretYesSigning secret for verifying deliveries. Shown only once, so store it
webhookYesThe created webhook endpoint

TDQS

A3.6/5.0
Behavior4/5

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

Annotations declare the safety profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false), and the description adds genuinely non-obvious behavior: a signing secret is returned and 'shown once', which materially affects how an agent must handle the response. It does not cover auth requirements, but it exceeds what the 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 short sentences with no filler, and the one-shot secret disclosure is placed immediately after the action statement. Nothing is wasted.

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 an output schema present, return values need not be explained, and annotations already cover the mutation/safety profile; the description still usefully flags the one-time secret. The remaining gap is usage context — when creating a webhook is appropriate and what must be true beforehand.

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%, with both url and events documented in the schema, so the baseline is 3. The description adds no syntax, defaults, or format detail beyond what the schema already states.

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?

States a specific verb and resource ('Create a webhook endpoint') that an agent can easily distinguish from delete_webhook and list_webhooks. It stops short of explicitly naming an alternative or scope boundary, so it is clear but not sibling-differentiated.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites (e.g., verified domain or reachable HTTPS endpoint), and no mention of how this differs from send_test_webhook_event. The agent must infer all routing from the tool name alone.

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

delete_webhookDelete webhookC
DestructiveIdempotent
Inspect

Delete a webhook endpoint by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWebhook id (wh_…)

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYesTrue when the request completed

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that — it does not say whether deletion is permanent, what happens to in-flight deliveries, or whether re-creating the id is possible.

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 front-loaded sentence with zero filler. However, for a destructive operation the extreme brevity arguably omits warranted caveats rather than representing true economy of expression.

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?

An output schema exists, so return values need no explanation, and a one-parameter delete is structurally simple. What is missing is any statement of consequence — that deletion is irreversible and stops webhook deliveries — which matters for a destructive 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 description coverage is 100% and the single 'id' parameter is documented with its 'wh_…' format, so the schema carries the full burden. The description's 'by id' phrase adds no syntax or format detail beyond what the schema already provides, making the baseline 3 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?

States a specific verb and resource ('Delete a webhook endpoint') plus the lookup key ('by id'), which is unambiguous and clearly distinct from siblings like create_webhook and list_webhooks. It stops short of explicitly contrasting itself with those siblings, so it lands at 4 rather than 5.

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

Usage Guidelines2/5

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

There is no guidance on when to delete versus simply disabling a webhook, no warning that this halts event delivery, and no mention of any alternative tool. The reader must infer all usage context from the verb alone.

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

get_deliverabilityGet deliverability metricsA
Read-onlyIdempotent
Inspect

Fetch best-effort deliverability metrics for recent sends (7d or 30d window).

ParametersJSON Schema
NameRequiredDescriptionDefault
windowNoTime window to summarize (default 30d)

Output Schema

ParametersJSON Schema
NameRequiredDescription
notesNoCaveats about how the metrics were measured
windowYesWindow covered: 7d or 30d
summaryYesTotals across all domains
by_domainNoMetrics for each sending domain
generated_atNoWhen the report was generated (ISO 8601)
window_startNoStart of the window (ISO 8601)
top_bounce_reasonsNoMost common bounce reasons

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds a genuinely useful behavioral caveat — 'best-effort' signals the data may be approximate or incomplete — plus the window scoping. It stops short of noting freshness, auth scope, 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?

A single sentence with the verb and resource front-loaded and the window constraint appended. No filler, no restating of the title or annotations.

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 an output schema present, return values need no explanation, and one optional parameter keeps the surface small. The description covers purpose and scope adequately; only freshness/latency expectations or empty-data behavior are unaddressed, which is a minor gap for a tool this simple.

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 single enum parameter's default (30d) is already documented in the schema. The description restates the 7d/30d options without adding format or behavior detail beyond the schema, so the baseline 3 applies.

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?

States a specific verb (fetch) and resource (deliverability metrics) with the scope of recent sends. It distinguishes itself from siblings, none of which report metrics, though it never names an alternative. The 'best-effort' hedge is informative but slightly muddies the promise of what is returned.

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 — pull deliverability for recent sends — but gives no when-to-use trigger, no when-not, and no prerequisite or alternative. Since no sibling covers metrics, the agent can infer this is the only option, which keeps it at minimum viable rather than absent.

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

get_emailGet emailB
Read-onlyIdempotent
Inspect

Get a single email by public id (msg_…).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesEmail id (msg_…)

Output Schema

ParametersJSON Schema
NameRequiredDescription
emailYesThe email

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety and side-effect profile is fully covered by structured data. The description adds nothing beyond that (no error behavior, no auth or rate-limit notes), but it also does not contradict the annotations, so a baseline 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?

A single short sentence that front-loads the verb and resource with zero filler. Nothing in it is wasted.

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 one-parameter read tool with a full annotation set and an output schema, the definition is essentially complete; the return shape need not be explained. Only the absence of routing guidance against list_emails keeps it from being fully 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?

Schema description coverage is 100% and there is a single parameter already documented as 'Email id (msg_…)'. The description restates the same format rather than adding new meaning, so the baseline 3 applies.

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 gives a specific verb and resource ('Get a single email') plus the identifier format, and the word 'single' implicitly contrasts with the list_emails sibling. It does not name an alternative explicitly, so it stops just short of full sibling differentiation.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus list_emails or a search-style sibling, and no prerequisites or exclusions are stated. The usage is only inferable from the fact that it fetches one record by id.

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

get_templateGet templateB
Read-onlyIdempotent
Inspect

Get a template by id or alias.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoTemplate id (tpl_…)
aliasNoPublished alias (alternative to id)

Output Schema

ParametersJSON Schema
NameRequiredDescription
templateYesThe template

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds no behavioral context of its own — no note on what happens with an unknown id/alias, unpublished templates, or visibility scope.

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

Conciseness5/5

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

A single eight-word sentence with the action and identifiers front-loaded; nothing is wasted or buried.

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 two-optional-parameter read tool with rich annotations, a complete schema, and an output schema defining the return value, the description covers everything an agent needs to invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters (id, alias) are documented with formats (tpl_…, published alias). The description merely restates that either key works, adding nothing the schema does not already carry; the baseline of 3 applies.

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?

States a specific verb and resource ('Get a template') plus the two acceptable lookup keys (id or alias), so the operation is unambiguous. It does not, however, distinguish itself from siblings like list_templates or create_template beyond the obvious verb difference.

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

Usage Guidelines2/5

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

There is no statement of when to use this versus list_templates (enumerate) or publish_template (mutate). 'By id or alias' hints at acceptable identifiers but gives no context, prerequisites, or exclusions for selecting this tool.

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

list_domainsList domainsB
Read-onlyIdempotent
Inspect

List sending domains for this account.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (1–100)
cursorNoOpaque cursor for the next page

Output Schema

ParametersJSON Schema
NameRequiredDescription
domainsYesSending domains on this page
has_moreNoTrue when another page of results is available
next_cursorNoCursor to pass as `cursor` to fetch the next page; null on the last page

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds only the account-scoping fact; it says nothing about pagination behavior, default/maximum page size, or result ordering, which would be the value-add 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?

A single front-loaded sentence with zero filler; the resource and scope land immediately. Nothing here needs trimming.

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?

An output schema exists so return values need not be described, and annotations cover safety, leaving the description minimal but not wrong. Still, for a paginated list tool it omits any note about page-size defaults or how cursor paging works, leaving the agent to derive everything from the schema.

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

Parameters3/5

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

Schema description coverage is 100% with only two params (limit, cursor), each already documented in the schema. The description adds no meaning beyond what the schema provides, so the baseline of 3 applies.

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?

States a specific verb and resource ('List sending domains') plus the scope ('for this account'), so the agent knows exactly what comes back. It does not, however, distinguish itself from neighbors like create_domain or verify_domain beyond the obvious verb difference.

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 when-to-use guidance, no mention of alternatives, no prerequisites or ordering relative to verify_domain/create_domain. The agent must infer that this is the read path for enumerating domains.

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

list_emailsList emailsB
Read-onlyIdempotent
Inspect

List recent emails sent from this account.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (1–100)
cursorNoOpaque cursor for the next page

Output Schema

ParametersJSON Schema
NameRequiredDescription
emailsYesEmails on this page, newest first
has_moreNoTrue when another page of results is available
next_cursorNoCursor to pass as `cursor` to fetch the next page; null on the last page

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior, so the safety profile is covered. The description adds the useful scoping fact that it lists only sent mail from this account, but discloses nothing about pagination flow or result ordering that would help an agent drive the cursor.

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 front-loaded sentence with no filler, and the scoping clause is placed after the core verb-resource pair. It is efficient, though arguably under-specified rather than genuinely tight.

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?

Output schema exists, so return values need not be explained, and annotations carry the safety profile. The remaining gap is that 'recent' and any default paging behavior are undefined, but the structured fields cover most of what an agent needs to invoke it.

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 both limit and cursor are already documented in the schema, and the description adds nothing about page size or cursor behavior. With 2 parameters and full schema coverage, the baseline of 3 is appropriate.

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?

States a clear verb (List) and resource (emails) and adds scope ('sent from this account'), which distinguishes it from the sibling get_email at a high level. However, it offers no explicit differentiation from related siblings like get_email or the other list_* tools, and 'recent' is an undefined qualifier.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus alternatives such as get_email for a specific message. Usage is only loosely implied by 'recent emails sent from this account'; no exclusions, prerequisites, or routing guidance are provided.

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

list_suppressionsList suppressionsB
Read-onlyIdempotent
Inspect

List suppressed recipient addresses.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoOptional filter by email
limitNoPage size (1–100)
cursorNoOpaque cursor for the next page

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesSuppressed addresses on this page
has_moreNoTrue when another page of results is available
next_cursorNoCursor to pass as `cursor` to fetch the next page; null on the last page

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and non-destructive behavior, so the safety profile is fully covered without the description. The sentence adds only a hint about the listed resource; it says nothing about pagination limits, ordering, or result volumes.

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

Conciseness5/5

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

A single front-loaded sentence with no filler or redundancy. It is appropriately sized for what it attempts to say.

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?

An output schema exists so return values need not be explained, annotations carry the safety profile, and all three parameters are documented at 100% coverage. The only missing piece is usage routing against the add/remove siblings.

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 email, limit and cursor are already documented in the schema. The description adds no syntax, format, or filter semantics beyond what the schema provides, which is the baseline case.

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?

States a specific verb (List) plus resource (suppressed recipient addresses), so the agent immediately knows what the tool returns. It does not explicitly distinguish from siblings like add_suppression/remove_suppression, but the read-only listing behavior is unambiguous from the name and sentence.

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 offers no when-to-use, when-not-to-use, or alternative guidance. It never notes that add_suppression/remove_suppression are the mutation counterparts, nor does it explain that email/limit/cursor enable filtering or paging.

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

list_templatesList templatesC
Read-onlyIdempotent
Inspect

List email templates.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (1–100)
cursorNoOpaque cursor for the next page
statusNoOptional filter by template status

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTemplates on this page
has_moreNoTrue when another page of results is available
next_cursorNoCursor to pass as `cursor` to fetch the next page; null on the last page

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so safety is covered structurally. The description adds nothing beyond that shell — no pagination behavior, no result ordering, no clarification of whether the status filter is inclusive. Minimal added value.

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

Conciseness3/5

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

One short sentence with no padding or waste, and it is front-loaded. But its brevity reflects under-specification rather than efficient communication.

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?

An output schema exists, so return shape need not be described, and the annotations carry the safety profile. What remains missing is any indication of pagination expectations, default limits, or how the list is ordered, which for a paginated list tool would help an agent call it correctly.

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

Parameters3/5

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

Schema description coverage is 100%: limit, cursor, and the status enum are all self-documenting, so the baseline of 3 applies. The description contributes no additional parameter meaning, such as default page size or cursor expiry.

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

Purpose3/5

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

States a verb (list) and resource (email templates), so the basic purpose is inferable. However it is essentially a restatement of the name/title with no added scope, and it does not distinguish itself from the sibling get_template, which an agent must infer is the single-item counterpart.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of the alternatives (get_template for one template), and no stated conditions. The agent gets no routing signal beyond the tool name.

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

list_webhooksList webhooksB
Read-onlyIdempotent
Inspect

List webhook endpoints for this account.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (1–100)
cursorNoOpaque cursor for the next page

Output Schema

ParametersJSON Schema
NameRequiredDescription
has_moreNoTrue when another page of results is available
webhooksYesWebhook endpoints on this page
next_cursorNoCursor to pass as `cursor` to fetch the next page; null on the last page

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is fully covered by structured data. The description adds only the 'for this account' scoping detail and says nothing about pagination or result ordering; with annotations carrying 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.

Conciseness4/5

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

A single short sentence with no filler. It is appropriately sized for a simple list tool, though it is sparse enough that it verges on under-specification rather than tight concision.

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 an output schema present and full parameter description coverage, the description does not need to explain return values or param formats. It covers scope, and the low-complexity, read-only nature of the tool means nothing critical is missing.

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

Parameters3/5

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

Schema description coverage is 100% (limit and cursor are both documented in-schema), so the baseline is 3. The description adds no syntax, default, or pagination semantics beyond what the schema already provides.

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?

States a specific verb and resource ('List webhook endpoints') plus an account scope, which is clearly distinct from create_webhook/delete_webhook by name alone. It stops short of explicitly differentiating itself from the other list_* siblings, but the purpose is unambiguous.

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

Usage Guidelines2/5

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

There is no guidance on when to call this versus alternatives, no prerequisites, and no note about pagination workflow. Usage is only implied by the tool name.

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

publish_templatePublish templateAInspect

Publish a template, snapshotting an immutable version for sends.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoTemplate id (tpl_…)
aliasNoTemplate alias (alternative to id)

Output Schema

ParametersJSON Schema
NameRequiredDescription
templateYesThe template

TDQS

A3.6/5.0
Behavior3/5

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

Annotations declare the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the description is not the sole source. It usefully adds that publishing creates an immutable snapshot, but it does not clarify what happens on republish or whether publishing is reversible — relevant given idempotentHint=false.

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

Conciseness5/5

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

A single front-loaded sentence that states the action and its core consequence with no filler words. Every clause 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?

An output schema exists so return values need no explanation, and the description conveys the key semantic that a published version is immutable. It is nearly complete, missing only guidance on republish behavior and reversibility.

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 both parameters (id and alias) are already documented, including alias as 'alternative to id'. The description adds no parameter-specific meaning beyond that, so the baseline 3 applies.

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?

States a specific verb (publish) and resource (template), and adds meaningful scope: it snapshots an immutable version for sends. It is distinguishable from create_template and get_template by verb, though it never explicitly names how it relates to those siblings.

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

Usage Guidelines3/5

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

The phrase 'for sends' implies the context in which publishing matters (making a sendable version), but there is no explicit when-to-use directive, no prerequisites, and no named alternative. Usage is only inferred.

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

remove_suppressionRemove suppressionB
DestructiveIdempotent
Inspect

Remove a suppression by id or email address.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoSuppression id
emailNoEmail address (alternative to id)

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYesTrue when the request completed

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered. The description adds nothing beyond that: it doesn't say whether this is a hard or soft removal, what happens if the id/email isn't found, or whether supplying both identifiers errors. Note the sibling delete_webhook uses "delete" while this uses "remove", and the distinction is never clarified.

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 short sentence, front-loaded with the verb and resource, with zero filler. Nothing to trim.

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?

An output schema exists so return values need not be explained, and annotations carry the safety profile. However, for a destructive operation with zero required parameters, the missing details about failure behavior and identifier precedence leave a real gap.

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 both parameters are fully documented there, so the baseline is 3. The description only restates "by id or email address" without adding format, precedence, or mutual-exclusivity rules (e.g., what happens if both are passed).

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?

States a specific verb+resource ("Remove a suppression") and names the two identifier modes. Sibling tools add_suppression/list_suppressions make the family obvious, but the description itself does no explicit differentiation work.

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 statement of when to use this versus alternatives, no prerequisites, and no warning about irreversibility that would help an agent decide to call it. Only the identifier options hint at usage, which is really parameter content rather than guidance.

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

send_emailSend emailAInspect

Send a transactional email via Groundmail. Provide subject + html/text, or a published template_id / template_alias with optional variables.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient email address
fromYesSender address (must match a verified domain or sandbox sender)
htmlNoHTML body. Do not combine with template_id or template_alias
textNoPlain-text body. Do not combine with template_id or template_alias
subjectNoSubject line. Optional when using a published template
reply_toNoAddress that replies should go to
variablesNoTemplate variables when using template_id or template_alias
template_idNoPublished template UUID
template_aliasNoPublished template alias

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesEmail id (msg_…)
statusYesStatus after the request, for example queued or scheduled

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true and destructiveHint=false, so the agent knows this is a non-idempotent external write. The description confirms the transactional nature and the template/body exclusivity, but adds nothing about delivery consequences, auth requirements beyond the schema's 'verified domain' note, or rate limits. Adequate but thin on top of 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?

Two short sentences with zero filler. The core action is front-loaded, and the second sentence packs the mutually exclusive parameter paths efficiently.

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?

An output schema exists, so return values need not be described, and the annotations carry the safety profile. The description covers both sending modes for a 9-parameter tool; only minor gaps remain (reply_to unmentioned, no error/failure behavior), so it is nearly 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?

Schema description coverage is 100%, so every parameter (to, from, html, text, subject, reply_to, variables, template_id, template_alias) is already documented in-schema. The description restates the template-vs-body split and notes variables are optional, but adds no syntax, format, or constraint detail beyond the schema. Baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Send a transactional email via Groundmail'), plus the channel/protocol context. No sibling tool sends email (create_template, send_test_webhook_event are adjacent but distinct), so an agent can route correctly without opening the schema.

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 the two valid invocation modes: 'subject + html/text, or a published template_id / template_alias with optional variables.' This tells the agent which parameter path to choose, though it omits any when-not guidance (e.g. when to prefer a template over raw body, or prerequisites like verified sender domains).

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

send_test_webhook_eventSend test webhook eventAInspect

Simulate a webhook event (POST /emails/test) for CI or local webhook testing. Optionally deliver to subscribed endpoints.

ParametersJSON Schema
NameRequiredDescriptionDefault
eventYesWebhook event type to simulate
deliverNoWhen true (default), enqueue delivery to account webhooks
email_idNoOptional existing email id (msg_…)

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYesTrue when the simulated event was built
payloadNoThe event payload that was (or would be) delivered
deliveredYesTrue when delivery to subscribed endpoints was started
deliveriesNoPer-endpoint results when delivery ran synchronously; empty otherwise

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, and openWorldHint=true, so the safety profile is known. The description adds a meaningful side-effect nuance — that the call can optionally push real deliveries to subscribed endpoints — though it doesn't spell out that this consumes real outbound traffic or appears in event logs.

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, front-loaded with the core action and the endpoint, with zero filler or restatement of the title.

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?

Purpose, intended context, and the optional-delivery side effect are all covered, and an output schema plus rich annotations carry the remaining burden. Only minor gaps (rate limits, visibility of simulated events in logs) remain.

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

Parameters3/5

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

Schema coverage is 100%, so all three parameters including the event enum and the deliver default are already documented. The phrase 'optionally deliver to subscribed endpoints' paraphrases the deliver flag without adding syntax or semantics beyond the schema, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb (simulate) and resource (webhook event) plus the underlying endpoint POST /emails/test, which distinguishes it unambiguously from send_email and create_webhook among siblings.

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?

Names the intended contexts explicitly (CI pipelines, local webhook testing), which is clear when-to-use guidance. It does not name an alternative or state a when-not condition, so it falls short of a 5.

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

verify_domainVerify domainA
Idempotent
Inspect

Verify DNS for a sending domain after records are applied.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name or id to check (example.com)

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNoResult of each DNS check
domainYesThe domain
recordsNoDNS records to publish for the domain
verifiedYesTrue when the domain passed verification
inbound_errorNoInbound setup error, if any
signing_readyNoTrue when outgoing mail can be signed for this domain
inbound_pendingNoTrue while inbound setup is still in progress
inbound_configuredNoTrue when inbound receiving is set up

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare idempotentHint=true, destructiveHint=false and openWorldHint=true, covering the safety profile. The description adds that this is a DNS check performed post-setup, but says nothing about propagation delays, retry/polling expectations, or what a failure state implies.

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 short sentence with the action, subject, and precondition front-loaded; no filler or repetition of the title.

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?

An output schema exists, so return values need no explanation, and the single parameter is fully documented. The only mild gap is the absence of guidance on timing/retry for a verification call, but the definition is otherwise 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 description coverage is 100% and there is a single parameter, so the schema already documents 'domain' with an example. The description adds no format or syntax detail beyond that, making the baseline 3 appropriate.

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?

States a specific verb (verify) and resource (DNS for a sending domain), and the phrase 'after records are applied' implicitly ties it to the DNS-record setup flow. It is distinguishable from apply_domain_dns and create_domain, though it never names a sibling explicitly.

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?

"after records are applied" gives clear sequencing context that tells the agent when this tool is appropriate. It stops short of naming alternatives or stating when not to use it, so it is clear context without exclusions.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 19 tool updates
    • First observedadd_suppression
    • First observedapply_domain_dns
    • First observedcreate_domain
    • First observedcreate_template
    • First observedcreate_webhook
    • First observeddelete_webhook
    • First observedget_deliverability
    • First observedget_email
    • First observedget_template
    • First observedlist_domains
    • First observedlist_emails
    • First observedlist_suppressions
    • First observedlist_templates
    • First observedlist_webhooks
    • First observedpublish_template
    • First observedremove_suppression
    • First observedsend_email
    • First observedsend_test_webhook_event
    • First observedverify_domain

Publisher details

Operator
Groundmail · Publisher source
Vendor relationship
First-party · Publisher source
Trust center
Not available
Restrictions
Not available

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to send transactional email, authenticate sending domains, track delivery, and diagnose deliverability issues programmatically.
    13
    33 npm
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables sending transactional email and monitoring delivery via the Postmark API, with tools for email, templates, bounces, messages, stats, and suppressions, including a read-only mode.
    28
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MailKite offers email sending and receiving for agents at your domain or free inboxes Create inboxes for your agent Send emails from your agent Receive emails to your webhook Receive emails to your agent
    92
    73 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables sending transactional email and campaigns, managing contacts and templates, and reading delivery reports and wallet usage from any MCP client.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.