{"name":"io.github.Neschadin/sendgrid-mcp","slug":"neschadin-sendgrid-mcp","title":"SendGrid Transactional","description":"SendGrid transactional email: preflight send, templates, and delivery diagnostics.","url":"https://mcp.market/server/neschadin-sendgrid-mcp","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"email","tags":["email"],"presence":{"score":32,"stars":1,"forks":0,"downloads_week":566,"last_push_at":"2026-10-12T09:57:19.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/Neschadin/sendgrid-mcp","website":null,"version":"3.0.3","remotes":[],"packages":[{"registryType":"npm","identifier":"@neschadin/sendgrid-mcp","version":"3.0.3","runtimeHint":"bunx","transport":{"type":"stdio"},"runtimeArguments":[{"value":"--no-env-file","type":"positional"},{"value":"x","type":"positional"},{"value":"@neschadin/sendgrid-mcp","type":"positional"}],"environmentVariables":[{"description":"SendGrid API key (SG....)","isRequired":true,"isSecret":true,"name":"SENDGRID_API_KEY"},{"description":"Default From address. Must be a verified sender.","isRequired":true,"name":"SENDGRID_FROM_EMAIL"},{"description":"Default From display name","name":"SENDGRID_FROM_NAME"},{"description":"global (default) or eu","name":"SENDGRID_REGION"},{"description":"When true, send and mutating tools return an error before any SendGrid request","name":"READ_ONLY"}]}],"tools":[{"name":"activate_template_version","description":"Activate a specific version of a template (only one version can be active at a time)","write_action":false,"price_micros":0,"input_schema":null},{"name":"analyze_engagement_anomalies","description":"Analyze Event Webhook events for non-human engagement patterns, machine opens, and unique-open approximation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cancel_scheduled_send","description":"Cancel a scheduled send batch. This is not guaranteed close to send time.","write_action":true,"price_micros":0,"input_schema":null},{"name":"check_suppression","description":"Check bounce, block, global unsubscribe, spam report, invalid email, and ASM group suppressions (GET /v3/asm/suppressions/{email}) for one recipient.","write_action":false,"price_micros":0,"input_schema":null},{"name":"classify_sendgrid_error","description":"Classify SendGrid API errors and return likely causes with targeted remediation steps.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clear_received_webhook_events","description":"Clear locally captured SendGrid Event Webhook payloads.","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_alert","description":"Create a SendGrid alert (usage_limit or stats_notification).","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_asm_group","description":"Create an ASM unsubscribe group (POST /v3/asm/groups) for transactional mail. Does not create a marketing list.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_authenticated_domain","description":"Start domain authentication (whitelabel domain). Returns DNS records to configure.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_batch_id","description":"Create a SendGrid batch ID for scheduled sends and later pause/cancel control.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_inbound_parse_setting","description":"Create inbound parse setting. Hostname MX must point to SendGrid.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_template","description":"Create a new dynamic template with a first version","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_verified_sender","description":"Create a verified sender identity. SendGrid emails a verification link to from_email.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_alert","description":"Delete a SendGrid alert by ID.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_inbound_parse_setting","description":"Delete inbound parse setting by hostname.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_suppression","description":"Remove one recipient from a suppression list: bounce, block, spam_report, invalid_email, global unsubscribe, or one ASM group. Does not delete the group itself.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_template","description":"Permanently delete a SendGrid template and all its versions. Use with caution.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_verified_sender","description":"Delete a verified sender identity by ID.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_account_info","description":"Read SendGrid account overview (account type, reputation, and related metadata).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_alert","description":"Read one SendGrid alert by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_authenticated_domain","description":"Read one authenticated domain record by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_branded_link","description":"Read one branded link record by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_email_stats","description":"Get 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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_enforced_tls","description":"Read Enforced TLS settings (GET /v3/user/settings/enforced_tls). require_tls drops mail when the recipient MX does not offer TLS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_event_webhook","description":"Get one Event Webhook config by ID from SendGrid.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_mail_setting","description":"Read one SendGrid mail setting by name.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_message_activity","description":"Get 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_received_webhook_events","description":"Read recent Event Webhook payloads captured by this server (for SendGrid-side diagnostics).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_scheduled_send","description":"Read 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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_scopes","description":"List 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_template_html","description":"Get full HTML content of a template's active (or specific) version","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_tracking_setting","description":"Read one SendGrid tracking setting by name.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_user_credits","description":"Read SendGrid account email credits/quota overview.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_user_profile","description":"Read SendGrid user profile (company, address, contact fields).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_verified_sender","description":"Read one verified sender identity by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_webhook_receiver_status","description":"Show local webhook receiver status for incoming SendGrid Event Webhook posts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_alerts","description":"List SendGrid account alerts (usage limits and stats notifications).","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_asm_groups","description":"List ASM unsubscribe groups (GET /v3/asm/groups). Use the id as asm.groupId when sending. This is not a marketing contact list.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_authenticated_domains","description":"List domain authentication (whitelabel domain) records and DNS validation state.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_branded_links","description":"List link branding (click-tracking domain) records.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_categories","description":"List category names (GET /v3/categories) so get_email_stats dimension=category can be given a real categories array.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_event_webhooks","description":"List all Event Webhook configurations directly from SendGrid.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_inbound_parse_settings","description":"List inbound parse (receive email webhook) settings.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_mail_settings","description":"List SendGrid mail settings summaries (footer, bounce purge, spam check, etc.).","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_scheduled_sends","description":"List 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_subusers","description":"List 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_suppressions","description":"List SendGrid suppressions by type (bounces, blocks, unsubscribes, spam reports, invalid emails, global unsubscribes).","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_templates","description":"List all dynamic SendGrid templates with their IDs, names, and version counts","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_tracking_settings","description":"List SendGrid tracking settings summaries (click, open, subscription, etc.).","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_verified_senders","description":"List verified sender identities configured in SendGrid.","write_action":false,"price_micros":0,"input_schema":null},{"name":"manage_event_webhook","description":"Create, 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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"pause_scheduled_send","description":"Pause a scheduled send batch by batch ID.","write_action":true,"price_micros":0,"input_schema":null},{"name":"prune_inactive_template_versions","description":"Delete all inactive versions for one or more templates (keeps the active version only)","write_action":true,"price_micros":0,"input_schema":null},{"name":"rename_template","description":"Rename a dynamic template (updates the template name, not a version label)","write_action":false,"price_micros":0,"input_schema":null},{"name":"rename_templates_bulk","description":"Bulk rename templates by ID and/or current name. Supports dry-run and stop-on-error.","write_action":false,"price_micros":0,"input_schema":null},{"name":"resend_verified_sender_verification","description":"Resend verification email for a verified sender identity.","write_action":false,"price_micros":0,"input_schema":null},{"name":"resume_scheduled_send","description":"Resume a previously paused/canceled batch by deleting its scheduled-send status.","write_action":true,"price_micros":0,"input_schema":null},{"name":"schedule_email","description":"Schedule an email by setting send_at. Creates batch ID automatically when not provided.…","write_action":true,"price_micros":0,"input_schema":null},{"name":"search_email_logs","description":"Search 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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"search_message_activity","description":"Search 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"send_email_advanced","description":"Send email with full /mail/send payload surface (content/template, tracking, asm, scheduling, categories, etc).…","write_action":true,"price_micros":0,"input_schema":null},{"name":"send_sandbox_email","description":"Send using mail_settings.sandbox_mode=true for payload/template validation without live recipient delivery.…","write_action":true,"price_micros":0,"input_schema":null},{"name":"send_template_email_advanced","description":"Send a dynamic-template email with optional cc/bcc, reply-to, asm, categories, custom args, and scheduling.…","write_action":true,"price_micros":0,"input_schema":null},{"name":"send_test_email","description":"Send 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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"send_with_preflight","description":"Preferred 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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sync_template_ids","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"toggle_event_webhook_signature","description":"Enable or disable SendGrid signature verification for a specific Event Webhook.","write_action":false,"price_micros":0,"input_schema":null},{"name":"triage_delivery_issue","description":"Run targeted delivery triage for common incidents (202 accepted no inbox, processing, sender identity, DMARC/auth, template drops, deferrals, unsubscribe spikes).","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_alert","description":"Update an existing SendGrid alert by ID.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_branded_link","description":"Update a branded link (e.g. set default=true for click-tracking domain).","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_event_webhook","description":"Update Event Webhook settings in SendGrid (URL, enabled flag, and event toggles).","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_inbound_parse_setting","description":"Update inbound parse setting for a hostname.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_mail_setting","description":"Update one SendGrid mail setting (PATCH /mail_settings/{name}). Payload fields depend on setting type.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_template_html","description":"Update the HTML, subject, or name of a specific template version","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_tracking_setting","description":"Update one SendGrid tracking setting (click/open/subscription/google_analytics).","write_action":true,"price_micros":0,"input_schema":null},{"name":"validate_authenticated_domain","description":"Validate DNS for an authenticated domain. Returns validation results and errors.","write_action":false,"price_micros":0,"input_schema":null},{"name":"validate_branded_link","description":"Validate DNS for a branded link (click-tracking domain) by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"validate_send_request","description":"Run 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.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-10-12T16:03:26.536Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-12T16:03:26.533Z","components":{"code":{"score":25,"max":25,"notes":["20 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@neschadin/sendgrid-mcp","version":"3.0.3","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-10-12T09:51:29.413Z","repositoryUrl":"git+https://github.com/Neschadin/sendgrid-mcp.git","weeklyDownloads":566}],"repo":{"found":true,"owner":"Neschadin","repo":"sendgrid-mcp","archived":false,"pushedAt":"2026-10-12T09:57:19Z","stars":1,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/73835274?v=4","ownerCreatedAt":"2020-11-02T13:49:01Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/73835274?v=4&s=128","source":"github"},"presence":{"stars":1,"forks":0,"downloadsWeek":566,"license":"MIT","lastPushAt":"2026-10-12T09:57:19.000Z","score":32}}}},"grade_history":[],"reviews":[]}