SendGrid MCP server. Send email and read templates, marketing contacts, lists, stats, bounces and unsubscribes.
Add to your MCP config, then reload & authorize:
{
"mcpServers": {
"sendgrid": {
"url": "https://sendgrid.usefulapi.io/mcp"
}
}
}| Tool | Type | What it does |
|---|---|---|
sendgrid_ping | read | Ping (health check) Health check — verifies the API key works and returns the scopes (permissions) granted to it. SendGrid: GET /v3/scopes. |
sendgrid_list_templates | read | 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. |
sendgrid_get_template | read | Get email template Get a single transactional email template by id, including its versions (subject + content). SendGrid: GET /v3/templates/{template_id}. |
sendgrid_list_marketing_lists | read | 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. |
sendgrid_get_contact_count | read | 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. |
sendgrid_search_contacts_by_email | read | Search contacts by email Look up marketing contacts by exact email address (a read-only lookup — mutates nothing). Returns the matching contacts keyed by email. SendGrid: POST /v3/marketing/contacts/search/emails. |
sendgrid_get_stats | read | Get email stats Get global email statistics over a date range (delivered, opens, clicks, bounces, spam reports, etc.), optionally grouped by day/week/month. SendGrid: GET /v3/stats. |
sendgrid_list_bounces | read | List bounces List bounced email addresses (the bounce suppression list). Returns an array of { created, email, reason, status }. SendGrid: GET /v3/suppression/bounces. |
sendgrid_list_global_unsubscribes | read | List global unsubscribes List globally-unsubscribed email addresses (the global suppression list). Returns an array of { created, email }. SendGrid: GET /v3/suppression/unsubscribes. |
sendgrid_send_mail | write | 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 (values via dynamic_template_data). Returns { status, message_id }. SendGrid: POST /v3/mail/send. |
sendgrid_add_or_update_contacts | write | 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. |
sendgrid_usage_status | Usage status (free-tier meter) Report the caller's current free-tier usage this month: calls used, monthly limit, remaining, and whether the cap is reached. Read-only; does not count against the meter. | |
sendgrid_upgrade | Upgrade to Pro (unlimited) Subscribe to the Pro plan for UNLIMITED SendGrid tool calls (the free tier caps monthly usage). Choose monthly ($9/month) or yearly ($90/year — 2 months free) billing. Returns a Stripe Checkout link to open in your browser; after payment your account upgrades automatically. Read-only; does not count against the meter. |
| Plan | Price | Limit |
|---|---|---|
| Free | $0 | 100 tool calls / month |
| Proper user | $9/mo · $90/yr | Unlimited |
This is a Model Context Protocol endpoint — meant to be connected from an AI client, not opened in a browser. An invalid_token response at the URL is the auth gate working as designed; clients authenticate automatically.