# sendgrid MCP server

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

## Links
- Registry page: https://www.getdrio.com/mcp/io-usefulapi-sendgrid
- Repository: https://github.com/m190/usefulapi-mcp

## Install
- Endpoint: https://sendgrid.usefulapi.io/mcp
- Auth: Not captured

## Setup notes
- Remote endpoint: https://sendgrid.usefulapi.io/mcp

## Tools
- sendgrid_ping (Ping (health check)) - Health check — verifies the API key works and returns the scopes (permissions) granted to it. SendGrid: GET /v3/scopes. Endpoint: https://sendgrid.usefulapi.io/mcp
- sendgrid_list_templates (List email templates) - List your transactional email templates (Dynamic and/or Legacy). Returns { result: [...], _metadata } — use _metadata.next / page_token to paginate. SendGrid: GET /v3/templates. Endpoint: https://sendgrid.usefulapi.io/mcp
- sendgrid_get_template (Get email template) - Get a single transactional email template by id, including its versions (subject + content). SendGrid: GET /v3/templates/{template_id}. Endpoint: https://sendgrid.usefulapi.io/mcp
- sendgrid_list_marketing_lists (List marketing lists) - List your Marketing Campaigns contact lists, each with its id, name, and contact_count. Returns { result: [...], _metadata }. SendGrid: GET /v3/marketing/lists. Endpoint: https://sendgrid.usefulapi.io/mcp
- sendgrid_get_contact_count (Get contact count) - Get the total number of Marketing Campaigns contacts on your account. Returns { contact_count, billable_count }. SendGrid: GET /v3/marketing/contacts/count. Endpoint: https://sendgrid.usefulapi.io/mcp
- sendgrid_search_contacts_by_email (Search contacts by email) - Look up marketing contacts by exact email address (a read-only lookup — mutates nothing). Returns { result: { "<email>": { contact: {...} } } }. SendGrid: POST /v3/marketing/contacts/search/emails. Endpoint: https://sendgrid.usefulapi.io/mcp
- sendgrid_get_stats (Get email stats) - 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. Endpoint: https://sendgrid.usefulapi.io/mcp
- sendgrid_list_bounces (List bounces) - List bounced email addresses (the bounce suppression list). Returns an array of { created, email, reason, status }. SendGrid: GET /v3/suppression/bounces. Endpoint: https://sendgrid.usefulapi.io/mcp
- sendgrid_list_global_unsubscribes (List global unsubscribes) - List globally-unsubscribed email addresses (the global suppression list). Returns an array of { created, email }. SendGrid: GET /v3/suppression/unsubscribes. Endpoint: https://sendgrid.usefulapi.io/mcp
- sendgrid_send_mail (Send email) - 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. Endpoint: https://sendgrid.usefulapi.io/mcp
- sendgrid_add_or_update_contacts (Add or update marketing contacts) - 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. Endpoint: https://sendgrid.usefulapi.io/mcp

## Resources
Not captured

## Prompts
Not captured

## Metadata
- Owner: io.usefulapi
- Version: 1.0.0
- Runtime: Streamable Http
- Transports: HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Jul 19, 2026
- Source: https://registry.modelcontextprotocol.io
