sendgrid
Server Details
Send email and read templates, marketing contacts, lists, stats, bounces and unsubscribes.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.3/5 across 11 of 11 tools scored.
Each tool targets a distinct resource/action: send mail, manage contacts (upsert/count/search), templates (get/list), suppression lists (bounces/unsubscribes), marketing lists, stats, and health check. No overlaps or ambiguous boundaries.
All tools follow a consistent 'sendgrid_' prefix with a verb_noun pattern (e.g., get_template, list_bounces, send_mail). The only minor deviation is 'ping' for health check, but it's a conventional verb-only name and doesn't break the overall consistency.
11 tools is well-scoped for a SendGrid server, covering sending, contacts, templates, suppression, stats, and health. Each tool has a clear purpose and none feel redundant.
Core email sending, contact management, and read operations for templates/suppression are covered. However, there are no write operations for templates (create/update/delete) or suppression list management (remove), which are minor gaps that agents can work around by using the existing tools.
Available Tools
11 toolssendgrid_add_or_update_contactsAdd or update marketing contactsADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| contacts | Yes | Contacts to add or update (each needs an `email`; custom fields pass through). | |
| list_ids | No | List ids to add these contacts to. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral detail beyond the destructiveHint annotation. It discloses that the operation is asynchronous, returns a job_id for polling, and that existing contacts are updated by email. It also references the underlying API endpoint (PUT /v3/marketing/contacts), giving the agent a fuller understanding of side effects and execution flow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and efficiently structured: the verb comes first, followed by clarifying details, async behavior, return format, and the API endpoint. Every sentence adds value, and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the tool has no output schema, the description compensates by explicitly stating the return format ({ job_id } for polling). For a tool with two parameters and a nested contact object, the description covers purpose, behavior, and return value. It is complete enough for an agent to invoke and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides thorough descriptions for both parameters (contacts and list_ids), covering 100% of them. The description adds minimal parameter-specific detail beyond 'optionally adds them to lists,' which mirrors the schema. Given the high schema coverage, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the specific verb 'UPSERTS' and clearly identifies the resource ('marketing contacts'), then elaborates with 'creates new ones, updates existing ones by email.' It distinguishes the tool from siblings like sendgrid_send_mail or sendgrid_search_contacts_by_email by focusing on contact record creation/update, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: this is the tool for adding or updating marketing contacts and optionally associating them with lists. It also notes the async nature, which guides agents to expect a job_id rather than immediate results. While it does not explicitly mention when not to use it or name alternatives, the context makes the intended use obvious.
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 countARead-onlyInspect
Get the total number of Marketing Campaigns contacts on your account. Returns { contact_count, billable_count }. SendGrid: GET /v3/marketing/contacts/count.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already declares the tool as a safe read operation. The description adds value by disclosing the return structure ({ contact_count, billable_count }) and the underlying API endpoint (GET /v3/marketing/contacts/count), which helps set expectations 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence followed by the endpoint. It is front-loaded with the main purpose and includes the return fields without any fluff or repetition of the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema tool, the description is complete. It clearly states what is returned and includes the API endpoint. Given the simplicity, it provides all necessary context for an agent to understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema has 100% coverage (vacuously). Per the rubric, a 0-parameter tool gets a baseline of 4. The description appropriately doesn't add parameter details because there are none to describe.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('total number of Marketing Campaigns contacts'), clearly distinguishing it from sibling tools that list or search contacts. It also mentions the exact return fields, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool does but provides no guidance on when to use it compared to alternatives. It does not mention any exclusions or direct the user to a sibling tool for different use cases. Usage context is only implied by the tool's name and description.
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 statsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results to return. | |
| offset | No | Number of results to skip (for pagination). | |
| end_date | No | End date in YYYY-MM-DD format (defaults to today). | |
| start_date | Yes | Start date in YYYY-MM-DD format (required). | |
| aggregated_by | No | How to group the returned statistics. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals the API endpoint (GET /v3/stats) and the exact return structure ('array of { date, stats: [{ metrics: {...} }] }'), adding context beyond the readOnlyHint annotation. It doesn't discuss rate limits or pagination behavior, but the schema covers pagination parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the main verb and resource, and includes both return format and API endpoint in a minimally verbose way. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description clearly states the return format, and the schema fully documents parameters. With readOnlyHint present and a simple read operation, the description covers all essential aspects for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides full descriptions for all 5 parameters (100% coverage), so the baseline is 3. The description's mention of 'date range' aligns with start_date/end_date but adds no new parameter-specific details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get global email statistics over a date range' and lists specific metrics (delivered, opens, clicks, bounces, spam reports). This distinguishes it from sibling tools focused on contacts, templates, bounces, and sending.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that this tool retrieves global email statistics, which implies when to use it for overall metrics. It doesn't explicitly mention exclusions or alternatives, but the distinct domain of each sibling tool makes the usage clear enough.
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 templateARead-onlyInspect
Get a single transactional email template by id, including its versions (subject + content). SendGrid: GET /v3/templates/{template_id}.
| Name | Required | Description | Default |
|---|---|---|---|
| template_id | Yes | The template id (dynamic template ids start with "d-"). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, so the safe read behavior is covered. The description adds value by explaining the response includes versions (subject + content) and provides the API endpoint. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the core action. The API endpoint is useful supplementary information without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only get-by-id tool with a single parameter and no output schema, the description adequately explains what it does and returns. It lacks explicit error handling details and does not mention the sibling tool for listing, but is otherwise complete enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema describes template_id thoroughly (including the 'd-' prefix for dynamic templates), and coverage is 100%. The description repeats 'by id' but does not add new parameter-specific meaning, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states 'Get a single transactional email template by id', which is a specific verb+resource+scope. It distinguishes itself from the sibling tool 'sendgrid_list_templates' by emphasizing 'single' and 'by id'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies use when a specific template ID is known, versus listing all templates. However, it does not explicitly name alternatives or state when not to use this tool, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sendgrid_list_bouncesList bouncesARead-onlyInspect
List bounced email addresses (the bounce suppression list). Returns an array of { created, email, reason, status }. SendGrid: GET /v3/suppression/bounces.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Filter to a specific bounced email address. | ||
| limit | No | Number of bounces to return (1–500). | |
| offset | No | Number of bounces to skip (for pagination). | |
| end_time | No | End of the time range, as a Unix timestamp (seconds). | |
| start_time | No | Start of the time range, as a Unix timestamp (seconds). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the bar for additional disclosure is lower. The description adds value by specifying the return format ('Returns an array of { created, email, reason, status }') and the API endpoint, which are not covered by annotations. It does not discuss rate limits or other behaviors, but for a read-only list tool this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the verb and resource, and includes the return format and API reference with zero redundant information. It is highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a simple read-only list tool with 5 optional parameters. It explains the resource, the return shape, and the endpoint. However, it does not explicitly mention pagination behavior or parameter interactions, though these are covered by the schema. Given the absence of an output schema, the return format disclosure is valuable, so this merits a 4.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add any parameter-specific semantics beyond what the schema already provides, and it doesn't need to because the schema is fully descriptive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and a specific resource ('bounced email addresses' / 'bounce suppression list'), clearly distinguishing it from sibling list tools like sendgrid_list_global_unsubscribes and sendgrid_list_marketing_lists. It also mentions the API endpoint, reinforcing its precise purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing bounces but does not explicitly state when to use it versus alternatives. It lacks exclusions or alternative recommendations, so it only provides implied guidance based on the resource name.
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 unsubscribesARead-onlyInspect
List globally-unsubscribed email addresses (the global suppression list). Returns an array of { created, email }. SendGrid: GET /v3/suppression/unsubscribes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of records to return. | |
| offset | No | Number of records to skip (for pagination). | |
| end_time | No | End of the time range, as a Unix timestamp (seconds). | |
| start_time | No | Start of the time range, as a Unix timestamp (seconds). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint=true, covering the safety profile. The description adds valuable context beyond annotations by specifying the return format ('array of { created, email }') and the exact API endpoint. It does not disclose every behavioral detail, but for a read-only listing operation, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the tool's purpose, and includes the return format and endpoint without any superfluous wording. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with no output schema, the description adequately covers the core purpose, return shape, and endpoint. However, it does not explicitly differentiate from the sibling sendgrid_list_bounces, which is a similar listing operation. That missing distinction prevents a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all four parameters (limit, offset, end_time, start_time), so the schema already documents each parameter well. The description adds no additional parameter-level meaning beyond what the schema provides, but neither does it need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists globally-unsubscribed email addresses (the global suppression list), with a specific verb ('List') and resource. It also provides the return shape and the API endpoint, making it unambiguous and distinguishable from sibling tools like sendgrid_list_bounces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. While the purpose implies it is for global unsubscribes, there is no direct guidance such as 'use this instead of sendgrid_list_bounces' or exclusions. The context is clear but not explicitly differentiated from similar list tools.
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 listsARead-onlyInspect
List your Marketing Campaigns contact lists, each with its id, name, and contact_count. Returns { result: [...], _metadata }. SendGrid: GET /v3/marketing/lists.
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | Number of lists per page (1–1000, default 100). | |
| page_token | No | Pagination token from a previous response's _metadata. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds value by disclosing the return shape ({ result, _metadata }) and the underlying SendGrid endpoint, which helps agents understand pagination and API 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the action and resource, includes meaningful output details, and ends with the API endpoint. Every word earns its place; there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no output schema, the description adequately covers the return format, pagination via _metadata, and the API endpoint. It is complete enough for an agent to select and invoke the tool correctly, especially with annotations already conveying safety.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (page_size and page_token) already have clear descriptions. The tool description adds little beyond mentioning _metadata in the return, which relates to pagination but does not deepen parameter understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists Marketing Campaigns contact lists and specifies the returned fields (id, name, contact_count). It distinguishes itself from sibling tools like sendgrid_list_templates or sendgrid_list_bounces by explicitly targeting contact lists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving marketing contact lists and provides context through the output shape and endpoint. It does not explicitly mention when to avoid using it or compare to alternatives, but the resource type ('contact lists') makes the use case clear.
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 templatesARead-onlyInspect
List your transactional email templates (Dynamic and/or Legacy). Returns { result: [...], _metadata } — use _metadata.next / page_token to paginate. SendGrid: GET /v3/templates.
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | Number of templates per page (1–200, default 50). | |
| page_token | No | Pagination token from a previous response's _metadata. | |
| generations | No | Which template generation(s) to return (default: dynamic). | dynamic |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so the safety profile is covered. The description adds valuable behavior beyond annotations: it discloses the return structure ({ result: [...], _metadata }) and pagination mechanism, which helps the agent understand how to consume results. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main action, followed by return format and pagination note. Every sentence earns its place with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list operation with optional parameters and no output schema, the description provides a complete picture: the resource type, generation filter, return shape, and pagination. The sibling tool context (get_template) further clarifies its role, and the annotations cover safety.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described. The description supplements this by explaining how _metadata.next and page_token relate to pagination, and mentions 'Dynamic and/or Legacy' which aligns with the generations parameter. This adds meaningful usage context beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'List your transactional email templates (Dynamic and/or Legacy)'. It distinguishes from sibling tools like sendgrid_get_template (singular) by conveying a listing operation over multiple templates, and 'transactional email templates' specifies the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context for using the tool (listing templates, paginating via _metadata), but does not explicitly state when to use this tool versus alternatives (e.g., sendgrid_get_template for a single template). It implies usage rather than offering exclusions or alternative recommendations.
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)ARead-onlyInspect
Health check — verifies the API key works and returns the scopes (permissions) granted to it. SendGrid: GET /v3/scopes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavior beyond the readOnlyHint by specifying that it returns the scopes and calls the SendGrid /v3/scopes endpoint. It clearly discloses what the tool does without any hidden side effects, and it is consistent with the readOnlyHint annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences that front-load the purpose ('Health check') and provide essential additional context (API key verification and scopes return). Every word earns its place with no unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter health check with no output schema, the description is fully complete: it explains what the tool does, what it returns (scopes), and the underlying endpoint. No additional context is needed for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema is fully covered. Per the guidelines, a 0-parameter tool receives a baseline of 4. The description does not need to add parameter detail, and it correctly focuses on the tool's purpose and output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a health check by verifying the API key and returning scopes (permissions). The verb 'verifies' and resource 'API key' are specific, and it distinguishes itself from sibling data-operation tools by being a meta/health check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it is used for health checks and to inspect granted scopes, but it does not explicitly state when to use it versus alternatives or mention that it should not be used for data operations. Given the siblings are all data-related, the use case is implied but not explicitly guided.
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 emailARead-onlyInspect
Look up marketing contacts by exact email address (a read-only lookup — mutates nothing). Returns { result: { "": { contact: {...} } } }. SendGrid: POST /v3/marketing/contacts/search/emails.
| Name | Required | Description | Default |
|---|---|---|---|
| emails | Yes | One or more exact email addresses to look up. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Although readOnlyHint already indicates safety, the description adds the exact return format ({result: {"<email>": {contact: ...}}}) and the HTTP method (POST), which are not in the annotations or schema. This goes beyond the annotation and gives the agent concrete expectations for output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states purpose and read-only nature, the second provides return format and endpoint. Every sentence is informative, with no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description covers all essential aspects: what it does, how it behaves, what it returns, and the underlying API call. No critical details are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the parameter is already well-documented. The description adds a concrete example of how the emails parameter maps to the result key, which reinforces the semantics. Baseline 3 plus this extra context justifies a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Look up marketing contacts by exact email address', which is a specific verb+object and clearly differentiates from sibling tools like list_marketing_lists or add_or_update_contacts. It also includes the HTTP endpoint, further scoping the action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: exact-email lookup, read-only, and the return shape. It doesn't explicitly name alternative tools or say 'when not to use', but the exactness and read-only nature imply that mutation or listing tools are alternatives. A 4 is appropriate for clear context without explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sendgrid_send_mailSend emailADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | CC recipient email addresses. | |
| to | Yes | One or more recipient email addresses. | |
| bcc | No | BCC recipient email addresses. | |
| content | No | The email body. Required unless template_id is provided. | |
| subject | No | Email subject line. Required unless a template_id supplies it. | |
| reply_to | No | Reply-To email address. | |
| from_name | No | Sender display name. | |
| from_email | Yes | Sender email address (must be a verified sender/domain). | |
| template_id | No | A template id to render (dynamic template ids start with "d-"). When set, `content` is omitted. | |
| content_type | No | MIME type of the body content (default text/html). | text/html |
| dynamic_template_data | No | Key/value data merged into a dynamic template's handlebars variables. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reinforces the destructiveHint annotation with 'SENDS A REAL EMAIL immediately' in caps, emphasizing the irreversible side effect. It also discloses the response format ({ status: 'accepted', message_id }) and the underlying API endpoint, adding value 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences cover purpose, critical parameters, return shape, and endpoint. Every clause carries information, and the front-loaded 'SENDS A REAL EMAIL' ensures the most important fact is first. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter tool with no output schema, the description covers the key parameters, the template dynamic data mechanism, the accepted response, and the API endpoint. It lacks details on error handling and rate limits, but the core behavior is well specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the baseline is 3, but the description adds the conditional relationship between template_id and content, and explains how dynamic_template_data feeds template variables. This operational nuance is not explicitly written in the schema descriptions, giving it extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description immediately states 'SENDS A REAL EMAIL immediately via SendGrid' with a specific verb and resource, clearly distinguishing it from the sibling list/get/add tools. The sentence is direct and unambiguous, leaving no doubt about the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear instructions on required parameters ('from_email' and 'to') and the two content paths (subject+content or template_id). While it doesn't explicitly state when not to use it, the purpose and sibling names make the context clear, and it provides the either/or usage pattern.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseBqualityFmaintenanceProvides an interface to manage email marketing, contact lists, dynamic templates, and email analytics via SendGrid's API.2158129ISC
- AlicenseBqualityCmaintenanceManages SendGrid email workflows including design library, transactional templates, marketing contacts and lists, single sends, and direct email sends via the SendGrid v3 API.80581MIT
- Alicense-qualityDmaintenanceEnables sending and managing emails via Postmark, including email delivery with templates, template listing, and delivery statistics.MIT
- AlicenseBqualityBmaintenanceEnables sending transactional emails, managing templates, suppression lists, sending domains, webhooks, subaccounts, and retrieving account metrics via the SparkPost API.2017MIT