SendGrid MCP by usefulapi
Server Details
Send email and read templates, marketing contacts, lists, stats, bounces and unsubscribes.
- Status
- Healthy
- Uptime
- 79.8% over 56 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Scored across 11 tools
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 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 templatesRead-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 |
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. |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
11 tool updates
- Changed
sendgrid_add_or_update_contacts1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
sendgrid_get_contact_count1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
sendgrid_get_stats1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
sendgrid_get_template1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
sendgrid_list_bounces1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
sendgrid_list_global_unsubscribes1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
sendgrid_list_marketing_lists1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
sendgrid_list_templates1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
sendgrid_ping1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
sendgrid_search_contacts_by_email1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
sendgrid_send_mail1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
11 tool updates
- First observed
sendgrid_add_or_update_contacts - First observed
sendgrid_get_contact_count - First observed
sendgrid_get_stats - First observed
sendgrid_get_template - First observed
sendgrid_list_bounces - First observed
sendgrid_list_global_unsubscribes - First observed
sendgrid_list_marketing_lists - First observed
sendgrid_list_templates - First observed
sendgrid_ping - First observed
sendgrid_search_contacts_by_email - First observed
sendgrid_send_mail
Related MCP Connectors
Send transactional email, run campaigns, manage contacts and automations, audit deliverability.
Send and receive email, and manage templates, inboxes, contacts and broadcasts.
- EnvlopedOAuthcom.envloped
Send transactional email, verify domains, build contact segments, and draft marketing campaigns.
Query people, segments, campaigns, and message deliveries; send transactional email or broadcasts.
Related MCP Servers
- AlicenseBqualityFmaintenanceProvides an interface to manage email marketing, contact lists, dynamic templates, and email analytics via SendGrid's API.21898 npm32ISC
- AlicenseNot gradedqualityCmaintenanceEnables sending transactional email and campaigns, managing contacts and templates, and reading delivery reports and wallet usage from any MCP client.MIT
- AlicenseBqualityDmaintenanceManages SendGrid email workflows including design library, transactional templates, marketing contacts and lists, single sends, and direct email sends via the SendGrid v3 API.80898 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables sending and managing emails via Postmark, including email delivery with templates, template listing, and delivery statistics.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.