Skip to main content
Glama

SendGrid MCP by usefulapi

Server Details

Send email and read templates, marketing contacts, lists, stats, bounces and unsubscribes.

Ownership verified

The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
Uptime
85.1% over 76 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

TDQS

A4/5.0

Scored across 11 tools

Disambiguation5/5

Every tool has a clearly distinct resource+action: contact upsert vs. contact lookup vs. contact count are separate write/read/count operations, and the two suppression-list tools and two template tools target different resources (bounces vs. unsubscribes, single vs. list). list_templates/get_template and the contact tools are easy to tell apart despite surface similarity.

Naming Consistency5/5

All 11 tools share a uniform sendgrid_ prefix and consistent snake_case verb_noun structure (get_contact_count, list_bounces, search_contacts_by_email, send_mail). Even the outlier ping keeps the same prefix, so the pattern is fully predictable.

Tool Count5/5

11 tools is well-scoped for a SendGrid integration covering sending, contacts, stats, templates, and suppression lists. Each tool earns its place with no obvious redundancy or padding.

Completeness3/5

The surface is read-heavy plus a send and a contact upsert; templates are read-only (no create/update/delete) and suppression lists can only be listed (no add/remove). Notable lifecycle operations like contact deletion and template/suppression management are missing, though core send-and-track workflows are covered.

Available Tools

11 tools
sendgrid_add_or_update_contactsAdd or update marketing contactsA
Destructive
Inspect

UPSERTS marketing contacts (creates new ones, updates existing ones by email) and optionally adds them to lists. This is an ASYNC job — returns { job_id } you can poll. SendGrid: PUT /v3/marketing/contacts.

NameRequiredDescriptionDefault
contactsYesContacts to add or update (each needs an `email`; custom fields pass through).
list_idsNoList ids to add these contacts to.

TDQS

A4/5.0
Behavior4/5

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

Annotations only give destructiveHint=true, so the description carries most of the burden and does add real value: it discloses the async job semantics and the { job_id } you must poll. It also clarifies the upsert/match-by-email behavior, which matters for a destructive write. It stops short of describing auth/permission needs or rate limits.

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

Conciseness5/5

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

Two tight sentences front-load the upsert semantics and the async/polling behavior before the API mapping reference. 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?

There is no output schema, but the description compensates by explaining the async return value ({ job_id }) and that it must be polled. Combined with the destructiveHint annotation, an agent has enough to invoke it correctly; only deeper operational details (auth scopes, rate limits) are absent.

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 `contacts`, nested custom-field pass-through, and `list_ids`. The description only restates the email-as-identifier and optional list behavior, adding no syntax or format 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 precise verb+resource ('UPSERTS marketing contacts') and immediately explains both branches (creates new, updates existing by email) plus the optional list-add behavior. An agent can distinguish it from read-oriented siblings like sendgrid_search_contacts_by_email and sendgrid_list_marketing_lists 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 Guidelines3/5

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

The description implies when to use it (adding or updating contacts, optionally to lists), but never states when NOT to use it or names an alternative for read/lookup cases among its siblings. Usage is inferred rather than spelled out.

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

sendgrid_get_contact_countGet contact countA
Read-only
Inspect

Get the total number of Marketing Campaigns contacts on your account. Returns { contact_count, billable_count }. SendGrid: GET /v3/marketing/contacts/count.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

The annotation already declares readOnlyHint=true, and the description goes beyond it by disclosing the return shape ({ contact_count, billable_count }) and the underlying API call, which matters because there is no output schema. It does not mention any auth scopes or rate-limit behavior, keeping it short of a 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?

Three short sentences, front-loaded with the purpose, then the return shape, then the API endpoint. Nothing is redundant and no sentence is wasted.

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 zero-parameter read tool, the description covers purpose, return fields, and the endpoint mapping. Even without an output schema, the agent knows exactly what it will receive, so nothing material is missing.

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 takes zero parameters, so there is nothing for the description to disambiguate. Baseline for a parameterless tool applies, and no misleading parameter language is present.

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: 'Get the total number of Marketing Campaigns contacts on your account.' This unambiguously separates it from sibling reads like search_contacts_by_email or list_marketing_lists, since the emphasized scope is a count, not a listing.

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 when to use it (when you need a total contact count rather than contact records), but never states when-not to use it or names an alternative such as search_contacts_by_email for filtering. Usage is inferable from the scope statement rather than explicit.

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

sendgrid_get_statsGet email statsA
Read-only
Inspect

Get global email statistics over a date range (delivered, opens, clicks, bounces, spam reports, etc.). Returns an array of { date, stats: [{ metrics: {...} }] }. SendGrid: GET /v3/stats.

NameRequiredDescriptionDefault
limitNoNumber of results to return.
offsetNoNumber of results to skip (for pagination).
end_dateNoEnd date in YYYY-MM-DD format (defaults to today).
start_dateYesStart date in YYYY-MM-DD format (required).
aggregated_byNoHow to group the returned statistics.

TDQS

A3.8/5.0
Behavior4/5

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

readOnlyHint=true already establishes the safe-read profile, and the description adds value beyond that by disclosing the exact return shape (array of {date, stats:[{metrics}]}) and the underlying endpoint. It omits auth requirements, rate limits, and pagination behavior, but the return-format disclosure is substantive for a tool with no output schema.

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

Conciseness5/5

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

Three tight sentences: purpose first, return shape second, endpoint last. No filler, and the most decision-relevant information (what it returns and over what range) 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?

With no output schema, the description compensates by describing the return structure, and annotations cover the safety profile while the schema fully covers parameters. The only gap is usage routing against the many sibling tools, which is not addressed.

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 five parameters (limit, offset, end_date, start_date, aggregated_by) are already documented in the schema. The description only restates the date-range concept and lists returned metrics; it adds no syntax or format detail (e.g. date interplay, aggregation semantics) beyond what the schema provides. 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?

Specific verb (Get) and resource (global email statistics) with an enumerated metric list and explicit date-range scope, so the agent knows exactly what it produces. The word 'global' implicitly separates it from per-category siblings like sendgrid_list_bounces, but no sibling is named outright, so it falls short of full differentiation.

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?

'Global ... over a date range' weakly implies the aggregate-overview use case versus the targeted listing tools, but there is no explicit when-to-use, when-not, or named alternative. Usage is only inferable from the scope wording.

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

sendgrid_get_templateGet email templateA
Read-only
Inspect

Get a single transactional email template by id, including its versions (subject + content). SendGrid: GET /v3/templates/{template_id}.

NameRequiredDescriptionDefault
template_idYesThe template id (dynamic template ids start with "d-").

TDQS

A3.8/5.0
Behavior3/5

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

readOnlyHint=true already declares the safety profile, so the bar is lower. The description adds useful substance beyond the annotations by disclosing what is returned ('including its versions (subject + content)') and the underlying endpoint, but says nothing about not-found/failure behavior.

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

Conciseness5/5

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

Two short clauses, front-loaded with the primary purpose, then the API mapping. Every element earns its place and nothing is padded.

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 full schema coverage, a readOnly annotation, and no output schema, the description covers purpose, lookup key, and return shape adequately. Only error/absence behavior is unaddressed, which is a minor 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 description coverage is 100% and the single parameter's 'd-' prefix detail lives in the schema, so the description adds no parameter meaning beyond restating that lookup is by id. 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 (Get) and resource (a single transactional email template by id), and the qualifier 'single ... by id' implicitly separates it from its sibling sendgrid_list_templates. An agent can tell what it retrieves 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 Guidelines3/5

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

Usage is implied: fetch one template when you already hold its id (typically after sendgrid_list_templates). No explicit when-to-use/when-not and the sibling list tool is never named or contrasted.

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

sendgrid_list_bouncesList bouncesB
Read-only
Inspect

List bounced email addresses (the bounce suppression list). Returns an array of { created, email, reason, status }. SendGrid: GET /v3/suppression/bounces.

NameRequiredDescriptionDefault
emailNoFilter to a specific bounced email address.
limitNoNumber of bounces to return (1–500).
offsetNoNumber of bounces to skip (for pagination).
end_timeNoEnd of the time range, as a Unix timestamp (seconds).
start_timeNoStart of the time range, as a Unix timestamp (seconds).

TDQS

B3.4/5.0
Behavior3/5

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

The readOnlyHint annotation already establishes that this is a safe, non-mutating read, and the description reinforces it by identifying the endpoint and the returned record fields. It adds no behavioral context beyond that, such as pagination defaults, maximum page size behaviour across calls, or rate-limit characteristics. With annotations carrying the safety profile, this is adequate but thin.

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 short sentences with zero filler: the resource identity and the record shape are front-loaded, and the endpoint reference is a compact trailing detail. Nothing could be removed 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?

There is no output schema, so the description's disclosure of the returned array shape ({ created, email, reason, status }) is genuinely necessary and present. The remaining gap is the absence of any usage or pagination context for a tool with five optional filtering parameters, but the core information an agent needs to call it is there.

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 five parameters (email, limit, offset, start_time, end_time) are already documented in the schema with ranges and units. The description adds no filtering syntax or format detail beyond the schema, so the baseline score 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?

The description states a specific verb and resource ('List bounced email addresses') and disambiguates the underlying concept by naming it 'the bounce suppression list', which separates it from sibling tools like sendgrid_list_global_unsubscribes. It does not, however, explicitly contrast itself with any sibling tool.

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 alternatives, no mention of prerequisites, and no exclusions. An agent must infer usage purely from the name and the concept 'suppression list'.

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

sendgrid_list_global_unsubscribesList global unsubscribesA
Read-only
Inspect

List globally-unsubscribed email addresses (the global suppression list). Returns an array of { created, email }. SendGrid: GET /v3/suppression/unsubscribes.

NameRequiredDescriptionDefault
limitNoNumber of records to return.
offsetNoNumber of records to skip (for pagination).
end_timeNoEnd of the time range, as a Unix timestamp (seconds).
start_timeNoStart of the time range, as a Unix timestamp (seconds).

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=true, so the description's disclosure of the return shape ('array of { created, email }') is genuinely additive given no output schema exists. It does not discuss pagination behavior or rate limits, but it goes beyond the structured fields already 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?

Three short clauses: purpose, return shape, upstream endpoint. Nothing is padded and the core purpose is front-loaded in the first phrase.

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 read-only, zero-required-parameter list tool, the description covers what the tool returns and which system it maps to, while annotations carry the safety profile and the schema carries pagination/time-range filtering. Nothing essential to correct invocation 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%, so limit, offset, start_time and end_time are already documented as integer fields with their meanings. The description adds no parameter syntax or format guidance beyond what the schema states, so the baseline of 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 precise verb and resource – 'List globally-unsubscribed email addresses (the global suppression list)' – with the parenthetical disambiguating it from other suppression-type siblings such as sendgrid_list_bounces. It even pins the upstream endpoint, so an agent can identify exactly what set of records this returns.

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

Usage Guidelines3/5

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

Usage is implied by the resource name – an agent reading 'global suppression list' can infer it is for auditing addresses that have opted out globally – but there is no explicit when-to-use, when-not-to-use, or pointer to sendgrid_list_bounces as the alternative for a narrower suppression class. Adequate, not instructive.

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

sendgrid_list_marketing_listsList marketing listsA
Read-only
Inspect

List your Marketing Campaigns contact lists, each with its id, name, and contact_count. Returns { result: [...], _metadata }. SendGrid: GET /v3/marketing/lists.

NameRequiredDescriptionDefault
page_sizeNoNumber of lists per page (1–1000, default 100).
page_tokenNoPagination token from a previous response's _metadata.

TDQS

A4/5.0
Behavior4/5

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

readOnlyHint=true already establishes the safety profile, so the description's extra value is the response envelope ({ result: [...], _metadata }) and the fact that the pagination token comes from a previous response's _metadata. That is real behavioral context beyond the annotations, though auth/rate-limit behavior and total counts are not mentioned.

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

Conciseness5/5

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

Two short sentences plus the endpoint mapping: the resource and returned fields come first, followed by the payload shape. Nothing is padded or redundant.

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

Completeness4/5

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

For a simple two-optional-parameter read tool with no output schema, the description covers what is returned and how pagination continues. It stops short of describing ordering or whether an empty result is possible, which is a minor gap rather than a blocking one.

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 page_size and page_token are fully documented in the schema already. The description adds no parameter-level detail beyond implying pagination, which the baseline-3 rule covers.

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 ('List your Marketing Campaigns contact lists') and even names the fields each entry carries (id, name, contact_count). It is trivially distinguishable from siblings like sendgrid_list_templates or sendgrid_list_bounces, which target 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 Guidelines3/5

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

Usage is implied by the verb and resource — an agent can infer this is the tool for enumerating marketing lists — but there is no explicit when-to-use, when-not, or alternative routing. Sibling names make the choice fairly obvious, yet the description itself provides no guidance.

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

sendgrid_list_templatesList email templatesA
Read-only
Inspect

List your transactional email templates (Dynamic and/or Legacy). Returns { result: [...], _metadata } — use _metadata.next / page_token to paginate. SendGrid: GET /v3/templates.

NameRequiredDescriptionDefault
page_sizeNoNumber of templates per page (1–200, default 50).
page_tokenNoPagination token from a previous response's _metadata.
generationsNoWhich template generation(s) to return (default: dynamic).dynamic

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true, so the safety profile is covered. The description goes beyond that by disclosing the return envelope ({ result, _metadata }), the pagination fields (next / page_token), and the upstream SendGrid endpoint — all useful operational context.

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

Conciseness5/5

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

Two compact sentences plus a source-endpoint tag, with the core purpose front-loaded and no wasted words. Every clause carries information (scope, return shape, pagination, API origin).

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 no output schema, the description correctly supplies the return shape and pagination mechanism, which is what an agent most needs here. The only soft spot is not noting the default generations='dynamic' behavior, which matters for interpreting results.

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 three parameters (page_size bounds, page_token, generations enum) are already documented in the schema. The description repeats the pagination concept for page_token but adds no format or constraint detail beyond it, matching the baseline for full schema coverage.

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?

Specific verb+resource ('List your transactional email templates') with the added scope qualifier 'Dynamic and/or Legacy'. It is clearly distinguishable from the read-one sibling sendgrid_get_template, though it never names an alternative explicitly.

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

Usage Guidelines3/5

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

Usage is implied by the endpoint framing and the pagination note, but there is no explicit statement of when to use this versus sendgrid_get_template or how to handle the dynamic/legacy default. The pagination hint is the closest thing to procedural guidance.

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

sendgrid_pingPing (health check)A
Read-only
Inspect

Health check — verifies the API key works and returns the scopes (permissions) granted to it. SendGrid: GET /v3/scopes.

NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=true, so safety is covered. The description adds meaningful behavioral context: it verifies the API key and returns the scopes (permissions) granted, which is more than a simple 'ping' and useful for an agent to know. It does not mention rate limits or output format, but no output schema exists and the key behavior is disclosed.

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 purpose and ending with the mapped HTTP endpoint. Every clause earns its place with no redundancy.

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

Completeness5/5

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

For a parameterless health-check tool with no output schema, the description fully covers what the tool does and what it returns (scopes). Nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

There are zero parameters, so per the rubric the baseline is 4. The description correctly implies no input is needed, and there is nothing further to document.

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+resource: it is a health check that verifies the API key and returns granted scopes, and it names the underlying SendGrid endpoint. It is clearly distinguishable from data-fetching siblings, though it does not explicitly name any alternative tool.

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

Usage Guidelines3/5

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

Usage is implied: use this to verify the API key works and inspect permissions. There is no explicit statement of when to prefer it over alternatives or any prerequisites, so it meets the minimum viable bar without elaboration.

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

sendgrid_search_contacts_by_emailSearch contacts by emailA
Read-only
Inspect

Look up marketing contacts by exact email address (a read-only lookup — mutates nothing). Returns { result: { "": { contact: {...} } } }. SendGrid: POST /v3/marketing/contacts/search/emails.

NameRequiredDescriptionDefault
emailsYesOne or more exact email addresses to look up.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered; the description reinforces it ('a read-only lookup — mutates nothing') and adds genuinely new context by disclosing the return envelope shape. It stops short of mentioning rate limits or behavior when an email is not found.

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?

Front-loaded with purpose, then behavior, return shape, and endpoint in one tight sentence-plus-clauses. Slight redundancy in 'read-only lookup — mutates nothing', which says the same thing twice and duplicates the annotation.

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 no output schema present, the description compensates by spelling out the response envelope, and it covers purpose, safety, and endpoint for a simple one-parameter read tool. An agent has everything needed to 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 coverage is 100% and the single parameter is fully documented there ('One or more exact email addresses to look up'). The description restates the same constraint but adds no format or batching 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.

Purpose5/5

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

States a specific verb and resource ('Look up marketing contacts') plus the lookup key ('by exact email address'), which cleanly separates it from siblings like sendgrid_add_or_update_contacts or sendgrid_get_contact_count. The underlying endpoint is also named for traceability.

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 word 'exact' implies this cannot do fuzzy/partial matching, and the presence of sendgrid_add_or_update_contacts hints at the write-vs-read split, but neither an explicit when-to-use condition nor a named alternative is given. Usage is only implied.

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

sendgrid_send_mailSend emailA
Destructive
Inspect

SENDS A REAL EMAIL immediately via SendGrid. Provide from_email and one or more to recipients, plus EITHER a subject + content OR a template_id (dynamic template ids start with "d-", pass values via dynamic_template_data). Returns { status: "accepted", message_id }. SendGrid: POST /v3/mail/send.

NameRequiredDescriptionDefault
ccNoCC recipient email addresses.
toYesOne or more recipient email addresses.
bccNoBCC recipient email addresses.
contentNoThe email body. Required unless template_id is provided.
subjectNoEmail subject line. Required unless a template_id supplies it.
reply_toNoReply-To email address.
from_nameNoSender display name.
from_emailYesSender email address (must be a verified sender/domain).
template_idNoA template id to render (dynamic template ids start with "d-"). When set, `content` is omitted.
content_typeNoMIME type of the body content (default text/html).text/html
dynamic_template_dataNoKey/value data merged into a dynamic template's handlebars variables.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations only declare destructiveHint=true; the description reinforces this by stressing that it sends a REAL email immediately (an external, irreversible side effect) and discloses the return payload { status: "accepted", message_id }. It does not cover rate limits or delivery-failure behavior, but it adds genuine context beyond the annotation.

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 dense sentences with the high-consequence fact ("SENDS A REAL EMAIL") front-loaded, followed by required inputs, the branch condition, and the return shape. Nothing is redundant with the schema's parameter descriptions.

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?

Despite 11 parameters and a nested object, the description covers the required inputs, the subject/content vs template branch, and the response shape in lieu of an output schema. Nothing an agent needs to call it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real conditional logic the schema only implies: the mutually exclusive subject/content vs template_id branch, the "d-" prefix convention for dynamic templates, and the role of dynamic_template_data as handlebars input.

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 ("SENDS A REAL EMAIL immediately via SendGrid") plus the underlying endpoint POST /v3/mail/send. It is unmistakably distinct from every sibling, which are all read/list/contact-lookup tools.

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?

Gives explicit invocation context: supply `from_email` and at least one `to`, plus EITHER subject+content OR a `template_id` (with dynamic ids prefixed "d-" and values passed via dynamic_template_data). It does not name when-not-to-use or an alternative tool, but no sibling overlaps in function, so the routing risk is low.

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    F
    maintenance
    Provides an interface to manage email marketing, contact lists, dynamic templates, and email analytics via SendGrid's API.
    21
    311 npm
    32
    ISC
  • 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
  • A
    license
    B
    quality
    D
    maintenance
    Manages SendGrid email workflows including design library, transactional templates, marketing contacts and lists, single sends, and direct email sends via the SendGrid v3 API.
    80
    311 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Send email, find out why an email failed, set up sending domains, and manage templates, contacts, lists and campaigns in your AhaSend account.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.