SendGrid Transactional MCP server
io.github.Neschadin/sendgrid-mcp·v3.0.3·1 starsSendGrid transactional email: preflight send, templates, and delivery diagnostics.
1 stars566 downloads/wk
Reviews
Write oneNobody has reviewed SendGrid Transactional yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
SendGrid Transactional tools (78, 35 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
activate_template_versionActivate a specific version of a template (only one version can be active at a time)
analyze_engagement_anomaliesAnalyze Event Webhook events for non-human engagement patterns, machine opens, and unique-open approximation.
cancel_scheduled_sendwrite actionCancel a scheduled send batch. This is not guaranteed close to send time.
check_suppressionCheck bounce, block, global unsubscribe, spam report, invalid email, and ASM group suppressions (GET /v3/asm/suppressions/{email}) for one recipient.
classify_sendgrid_errorClassify SendGrid API errors and return likely causes with targeted remediation steps.
clear_received_webhook_eventsClear locally captured SendGrid Event Webhook payloads.
create_alertwrite actionCreate a SendGrid alert (usage_limit or stats_notification).
create_asm_groupwrite actionCreate an ASM unsubscribe group (POST /v3/asm/groups) for transactional mail. Does not create a marketing list.
create_authenticated_domainwrite actionStart domain authentication (whitelabel domain). Returns DNS records to configure.
create_batch_idwrite actionCreate a SendGrid batch ID for scheduled sends and later pause/cancel control.
create_inbound_parse_settingwrite actionCreate inbound parse setting. Hostname MX must point to SendGrid.
create_templatewrite actionCreate a new dynamic template with a first version
create_verified_senderwrite actionCreate a verified sender identity. SendGrid emails a verification link to from_email.
delete_alertwrite actionDelete a SendGrid alert by ID.
delete_inbound_parse_settingwrite actionDelete inbound parse setting by hostname.
delete_suppressionwrite actionRemove one recipient from a suppression list: bounce, block, spam_report, invalid_email, global unsubscribe, or one ASM group. Does not delete the group itself.
delete_templatewrite actionPermanently delete a SendGrid template and all its versions. Use with caution.
delete_verified_senderwrite actionDelete a verified sender identity by ID.
get_account_infoRead SendGrid account overview (account type, reputation, and related metadata).
get_alertRead one SendGrid alert by ID.
get_authenticated_domainRead one authenticated domain record by ID.
get_branded_linkRead one branded link record by ID.
get_email_statswrite actionGet email statistics. dimension=global is the account daily rollup. category requires categories. mailbox_provider, geo, browser, device, and client are the other SendGrid stats cuts. Browser, device, and client stats retain about 7 days.
get_enforced_tlsRead Enforced TLS settings (GET /v3/user/settings/enforced_tls). require_tls drops mail when the recipient MX does not offer TLS.
get_event_webhookGet one Event Webhook config by ID from SendGrid.
get_mail_settingRead one SendGrid mail setting by name.
get_message_activityGet Email Activity for one message. msgId may be a full msg_id or the Mail Send x-message-id (resolved with msg_id LIKE). On Activity 403/404 for a full id, falls back to POST /v3/logs.
get_received_webhook_eventsRead recent Event Webhook payloads captured by this server (for SendGrid-side diagnostics).
get_scheduled_sendwrite actionRead pause/cancel state for one scheduled-send batch_id. SendGrid answers a missing batch with 200 and an empty array; this tool reports that as not found.
get_scopesList OAuth scopes granted to the current SendGrid API key (GET /v3/scopes). Use this after a 403 to see what the key can actually call.
get_template_htmlGet full HTML content of a template's active (or specific) version
get_tracking_settingRead one SendGrid tracking setting by name.
get_user_creditsRead SendGrid account email credits/quota overview.
get_user_profileRead SendGrid user profile (company, address, contact fields).
get_verified_senderRead one verified sender identity by ID.
get_webhook_receiver_statusShow local webhook receiver status for incoming SendGrid Event Webhook posts.
list_alertsList SendGrid account alerts (usage limits and stats notifications).
list_asm_groupsList ASM unsubscribe groups (GET /v3/asm/groups). Use the id as asm.groupId when sending. This is not a marketing contact list.
list_authenticated_domainsList domain authentication (whitelabel domain) records and DNS validation state.
list_branded_linksList link branding (click-tracking domain) records.
list_categoriesList category names (GET /v3/categories) so get_email_stats dimension=category can be given a real categories array.
list_event_webhooksList all Event Webhook configurations directly from SendGrid.
list_inbound_parse_settingsList inbound parse (receive email webhook) settings.
list_mail_settingsList SendGrid mail settings summaries (footer, bounce purge, spam check, etc.).
list_scheduled_sendsList paused or canceled scheduled-send batches (GET /v3/user/scheduled_sends). A batch that was only scheduled with send_at, and never paused or canceled, is not in this list.
list_subusersList SendGrid subusers for the parent API key (GET /v3/subusers). Use a returned username as onBehalfOf on later calls, or as SENDGRID_ON_BEHALF_OF. Pass onBehalfOf="parent" when that env var is already set and this list must run as the parent.
list_suppressionsList SendGrid suppressions by type (bounces, blocks, unsubscribes, spam reports, invalid emails, global unsubscribes).
list_templatesList all dynamic SendGrid templates with their IDs, names, and version counts
list_tracking_settingsList SendGrid tracking settings summaries (click, open, subscription, etc.).
list_verified_sendersList verified sender identities configured in SendGrid.
manage_event_webhookwrite actionCreate, delete, or test a SendGrid Event Webhook. create requires url. delete requires id. test sends a sample event to url, or to the saved webhook url when only id is set.
pause_scheduled_sendwrite actionPause a scheduled send batch by batch ID.
prune_inactive_template_versionswrite actionDelete all inactive versions for one or more templates (keeps the active version only)
rename_templateRename a dynamic template (updates the template name, not a version label)
rename_templates_bulkBulk rename templates by ID and/or current name. Supports dry-run and stop-on-error.
resend_verified_sender_verificationResend verification email for a verified sender identity.
resume_scheduled_sendwrite actionResume a previously paused/canceled batch by deleting its scheduled-send status.
schedule_emailwrite actionSchedule an email by setting send_at. Creates batch ID automatically when not provided.…
search_email_logswrite actionSearch Email Logs (POST /v3/logs). Use when Email Activity is unavailable, especially for EU regional subusers. Query fields: sg_message_id =, subject =, to_email =, status IN, reason =, categories IN, sg_message_id_created_at comparisons. Combine with AND. No nesting. Parent accounts pass exactly one subuser.
search_message_activitySearch SendGrid Email Activity (GET /v3/messages). Pass xMessageId for the Mail Send x-message-id header; it is compiled to msg_id LIKE. offset is not supported by this API. On 403/404, or an empty EU Activity result, falls back to POST /v3/logs.
send_email_advancedwrite actionSend email with full /mail/send payload surface (content/template, tracking, asm, scheduling, categories, etc).…
send_sandbox_emailwrite actionSend using mail_settings.sandbox_mode=true for payload/template validation without live recipient delivery.…
send_template_email_advancedwrite actionSend a dynamic-template email with optional cc/bcc, reply-to, asm, categories, custom args, and scheduling.…
send_test_emailwrite actionSend a test email using a template with mock data. Uses mail_settings.sandbox_mode by default (SendGrid accepts but does not deliver). Set liveDelivery=true with confirmToken="CONFIRM" for real delivery.
send_with_preflightwrite actionPreferred production send path: runs validate_send_request checks first, then POST /v3/mail/send only when no blockers (and optionally no warnings with abortOnWarnings). Use validate_send_request alone for a dry-run review before calling send_email_advanced or send_template_email_advanced.
sync_template_idstoggle_event_webhook_signatureEnable or disable SendGrid signature verification for a specific Event Webhook.
triage_delivery_issuewrite actionRun targeted delivery triage for common incidents (202 accepted no inbox, processing, sender identity, DMARC/auth, template drops, deferrals, unsubscribe spikes).
update_alertwrite actionUpdate an existing SendGrid alert by ID.
update_branded_linkwrite actionUpdate a branded link (e.g. set default=true for click-tracking domain).
update_event_webhookwrite actionUpdate Event Webhook settings in SendGrid (URL, enabled flag, and event toggles).
update_inbound_parse_settingwrite actionUpdate inbound parse setting for a hostname.
update_mail_settingwrite actionUpdate one SendGrid mail setting (PATCH /mail_settings/{name}). Payload fields depend on setting type.
update_template_htmlwrite actionUpdate the HTML, subject, or name of a specific template version
update_tracking_settingwrite actionUpdate one SendGrid tracking setting (click/open/subscription/google_analytics).
validate_authenticated_domainValidate DNS for an authenticated domain. Returns validation results and errors.
validate_branded_linkValidate DNS for a branded link (click-tracking domain) by ID.
validate_send_requestwrite actionRun this before any send_* call. Validates /v3/mail/send payload shape, active dynamic template, sender identity (domain authentication or verified sender), link branding alignment, recipient suppressions, and scheduling limits (send_at must be in the future and within 72 hours per SendGrid Mail Send API). Returns blockers and warnings without sending mail.
Public scan report
scanner v0.1.10 · 2026-10-12 · same rubric, same numbers if you re-run it
- Code scan20 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 0 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How SendGrid Transactional compares
Against every graded Email MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 83/100
- higher than 75% of 914 Email servers
- Tools
- 78
- the typical Email server has 7
- Tools that change things
- 45%
- typical: 25%. Fewer write tools means less an agent can break
- GitHub stars
- 1
- more than 65% of 492 Email servers
- Downloads a week
- 566
- more than 86% of 231 Email servers with a package
What its tools let an agent do: 39 read · 7 create · 21 change · 6 delete · 5 send or post
Install SendGrid Transactional in Claude Code, Cursor or VS Code
Runs npx -y @neschadin/sendgrid-mcp on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add sendgrid-mcp -- npx -y @neschadin/sendgrid-mcp
What the publisher says
From the SendGrid Transactional repository's README, as published. We do not edit it. Read it on GitHub
SendGrid MCP Server
This server is for transactional send and delivery, not a map of the whole SendGrid API.
A thin SendGrid MCP treats POST /v3/mail/send as one call and spends the rest of its tools on contacts, lists, and campaigns. Those marketing APIs are out of scope here. The tools follow the checks SendGrid's own delivery troubleshooting expects:
- Before send. sendgridvalidatesendrequest checks the /v3/mail/send payload, that the dynamic template version is active, sender identity (domain authentication or a verified sender), link branding, recipient suppressions including the ASM group on the send, the DMARC warn list (GET /v3/verifiedsenders/domains), and that sendat is in the future and inside 72 hours. sendgridsendwithpreflight posts only when that report has no blockers. Sandbox mode accepts the payload and does not deliver.
- After accept. The x-message-id response header is not a msgid. Pass it as xMessageId; search compiles msgid LIKE '%', then sendgridgetmessageactivity reads the event chain (reason, bouncetype, asmgroupid, outboundip). Email Activity has no real offset. If Activity returns 403/404, or the region is eu and Activity is empty, use Email Logs (POST /v3/logs) with toemail equality. Logs rejects msgid, fromemail, and LIKE.
- When it did not arrive. sendgridchecksuppression and sendgridtriagedeliveryissue cover bounce, block, spam, invalid, global unsubscribe, and ASM groups. sendgriddeletesuppression lifts one entry. sendgridclassifysendgriderror and sendgridgetscopes explain a 403. Paused or canceled scheduled batches are listed; a batch that was only given send_at is not in that list until you pause or cancel it.
- The pipe around the send. Dynamic templates (including bulk rename and pruning inactive versions), Event Webhook create/update/test plus an optional local receiver, and the console settings that change delivery: domains, link branding, enforced TLS, mail and tracking settings, alerts, inbound parse.
Install: bunx --no-env-file x @neschadin/sendgrid-mcp.
Full catalog and runbooks: MCP_TOOLS.md.
This project is community-maintained and is not affiliated with, endorsed by, or sponsored by Twilio SendGrid.
Requirements
- Bun ≥ 1.4.3
- A SendGrid API key with scopes for the tools you call. Keys normally start with SG.; any other prefix only logs a warning
- A verified sender address in SENDGRIDFROMEMAIL
- An MCP client (Cursor, Claude Desktop, VS Code, etc.)
One process, one API key. Do not share a hosted instance across tenants.
Configuration
Required
SendGrid
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
SendGrid Transactional: common questions
- Is SendGrid Transactional MCP server safe?
- Mostly: it is graded B (83/100). Read the SendGrid Transactional safety report
- How do I install SendGrid Transactional?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does SendGrid Transactional need an API key?
- Yes. The registry entry asks for
SENDGRID_API_KEY. - Is SendGrid Transactional maintained?
- The last commit was 21 days ago (2026-10-12). The latest release is v3.0.3.
- What can I use instead of SendGrid Transactional?
- Servers from other publishers that do the same job: Sendgrid MCP server, MisarMail MCP Server and SendGrid MCP Server. Compare all SendGrid Transactional alternatives.
- How does SendGrid Transactional compare with other Email MCP servers?
- safety score 83/100 (higher than 75% of 914 Email servers); tools 78 (the typical Email server has 7); tools that change things 45% (typical: 25%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to SendGrid Transactional
Same job from other publishers: the closest match first, then the best rated.
- SendgridMCP server for SendGrid — global transactional + marketing email (Twilio-owned)not reviewedGrowingB
- MisarMail MCP ServerSend transactional email, run campaigns, manage contacts and automations, audit deliverability.not reviewedGrowingA
- SendGrid MCP ServerMCP server for SendGrid's v3 API: email marketing, transactional mail, templates, and analytics.not reviewedGrowingB
- MailkiteSend email, manage domains, DNS, webhooks, templates, and inbound routing on MailKitenot reviewedGrowingA
PostmarkSend, track, and manage transactional and bulk email deliverynot reviewedGrowingB