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
Score is being calculated. Check back soon.
Available Tools
11 toolssendgrid_add_or_update_contactsAdd or update marketing contactsDestructiveInspect
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. |
sendgrid_get_contact_countGet contact countRead-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 | |||
sendgrid_get_statsGet email statsRead-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. |
sendgrid_get_templateGet email templateRead-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-"). |
sendgrid_list_bouncesList bouncesRead-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). |
sendgrid_list_global_unsubscribesList global unsubscribesRead-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). |
sendgrid_list_marketing_listsList marketing listsRead-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. |
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 declare readOnlyHint=true. The description adds context about paginated return format (_metadata with next/page_token) and the underlying API endpoint (GET /v3/templates). 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 concise sentences: first states purpose, second explains return structure and API reference. No unnecessary 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?
Given no output schema, the description adequately explains the return object shape and pagination. Parameters are fully documented in schema. Lacks error handling details, but acceptable for a low-complexity list tool.
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 descriptions for all three parameters. The description reiterates pagination and generation defaults but adds no new meaning beyond what the schema provides.
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 explicitly states the resource (transactional email templates) and action (list), including the distinction between Dynamic and Legacy generations. It clearly differentiates from sibling tools like sendgrid_list_bounces or sendgrid_list_marketing_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?
No explicit guidance on when to use this tool versus alternatives. The context of sibling tools does not cause confusion, but the description does not include when-not-to-use or prerequisites.
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)Read-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 | |||
sendgrid_search_contacts_by_emailSearch contacts by emailRead-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. |
sendgrid_send_mailSend emailDestructiveInspect
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. |
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!