A Model Context Protocol (MCP) server that provides comprehensive access to SendGrid's API v3 for email marketing, transactional email operations, dynamic template management, and detailed analytics. Features 154 tools…
SendGrid MCP Server source profile. From the maintainer documentation: “A Model Context Protocol (MCP) server that provides comprehensive access to SendGrid's API v3 for email marketing, transactional email operations, dynamic template management, and detailed analytics. Features 154 tools covering all aspects of email management and performance analysis.”
The project provides a local client configuration using sendgrid-mcp. Follow the repository’s build and installation steps before copying it, and replace example paths with the paths on your own computer.
The example declares SENDGRID_API_KEY, READ_ONLY. Secret-looking values have been replaced with placeholders. Required and optional labels are shown only when the documentation states them.
Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.
Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.
| Tool | What it does |
|---|---|
| list_automations | List all marketing automations with metadata |
| get_automation | Get detailed information about a specific automation |
| update_automation_settings | Update automation-level settings (name, status) |
| update_automation_step | Update individual step settings (status, wait time) |
| delete_automation | Permanently delete an automation |
| open_automation_creator | Open automation creator in browser |
| open_automation_editor | Open specific automation editor |
| list_single_sends | List all single send campaigns with metadata |
| get_single_send | Retrieve detailed content and settings for a single send campaign |
| open_single_send_creator | Open campaign creator in browser for visual design |
| open_single_send_stats | View detailed campaign performance statistics |
| list_contacts | List all contacts with pagination and filtering |
| get_contact | Get detailed information about a specific contact |
| create_contact | Create new contacts with custom fields |
| update_contact | Update existing contact information and custom data |
| delete_contact | Delete contacts permanently with cleanup |
| search_contacts | Search for contacts using advanced query conditions |
| search_contacts_by_emails | Search for specific contacts by email addresses |
| list_email_lists | List all email lists |
| create_email_list | Create a new email list |
| update_email_list | Update email list properties |
| delete_email_list | Delete an email list |
| create_contact_with_lists | Create contacts and assign to lists |
| remove_contact_from_lists | Remove contacts from a specific list |
| list_segments | List dynamic segments with parent relationships and criteria |
| open_segment_creator | Open segment creator in browser for visual query building |
| update_segment | Update existing segment name or query criteria with real-time refresh |
| delete_segment | Delete an existing segment (contacts remain unaffected) |
| list_custom_fields | List custom field definitions with data types |
| create_custom_field | Create new custom fields (Text, Number, Date types) |
| update_custom_field | Update existing custom field definitions |
| delete_custom_field | Delete custom field definitions with data cleanup |
| list_senders | List verified sender identities |
| create_sender | Create new sender identity |
| delete_sender | Delete a verified sender identity |
| open_csv_uploader | Open CSV upload interface |
| list_templates | List all dynamic and legacy templates |
| get_template | Get details of a specific template including all versions |
| create_template | Create a new dynamic template |
| update_template | Update template name and settings |
| delete_template | Delete a template and all its versions |
| create_template_version | Create a new version with HTML content and settings |
| get_template_version | Get details of a specific template version |
| update_template_version | Update version content, subject, and settings |
| delete_template_version | Delete a specific template version |
| create_html_template | Create complete template with HTML content in one step (perfect for AI agents) |
| open_template_editor | Open SendGrid's visual template editor in browser |
| send_mail | Send transactional emails (supports templates with dynamic template data) |
| get_global_stats | Retrieve overall email performance metrics |
| get_stats_overview | Get comprehensive statistics across multiple dimensions |
| get_stats_by_browser | Statistics broken down by browser type (Chrome, Firefox, Safari, etc.) |
| get_stats_by_client_type | Statistics by email client type (desktop, mobile, webmail) |
| get_stats_by_device_type | Statistics by device type (desktop, mobile, tablet) |
| get_stats_by_mailbox_provider | Statistics by mailbox provider (Gmail, Outlook, Yahoo, etc.) |
| get_stats_by_country | Statistics by country and state/province |
| get_category_stats | Statistics for specific email categories (13-month history) |
| get_subuser_stats | Statistics for specific subuser accounts |
| get_scopes | Get available API permission scopes (no arguments) |
| list_suppression_groups | List all unsubscribe (suppression) groups on the account |
| create_suppression_group | Create a new unsubscribe (suppression) group |
| get_suppression_group | Get details about a specific unsubscribe (suppression) group |
| update_suppression_group | Update the name, description, or default status of an existing suppression group |
| delete_suppression_group | Permanently delete an unsubscribe (suppression) group. This action cannot be undone. |
| list_group_suppressions | List all email addresses that are unsubscribed from a specific suppression group |
| add_group_suppressions | Add one or more email addresses to a specific suppression group's unsubscribe list |
| remove_group_suppression | Remove a single email address from a specific suppression group's unsubscribe list. This only re-permits mail assigned to this group's category -- it is not… |
| list_global_suppressions | List email addresses on the account-wide global unsubscribe list, optionally filtered by a time range |
| add_global_suppression | Add recipients to the account-wide global unsubscribe list -- they will stop receiving all non-transactional mail from this account |
| get_global_suppression | Check whether a specific email address is on the account-wide global unsubscribe list |
| delete_global_suppression | Remove an email address from the account-wide global suppression list, effectively resubscribing them to non-transactional mail |
| list_bounces | List all email addresses that have bounced, optionally filtered by a time range |
| get_bounce | Get bounce event(s) recorded for a specific email address |
| delete_bounce | Remove a bounce record for an email address so this address can receive mail again |
| list_blocks | List all email addresses currently on the blocks list, optionally filtered by a time range |
| delete_block | Remove an email address from the blocks list so this address can receive mail again |
| list_spam_reports | List all email addresses that have reported mail as spam, optionally filtered by a time range |
| delete_spam_report | Remove an email address from the spam reports list so this address can receive mail again |
| list_invalid_emails | List all email addresses that have been marked invalid, optionally filtered by a time range |
| delete_invalid_email | Remove an email address from the invalid emails list so this address can receive mail again |
| list_authenticated_domains | List all authenticated (whitelabel) domains configured for sending mail |
| get_authenticated_domain | Get detailed information about a specific authenticated domain, including its DNS records |
| create_authenticated_domain | Set up domain authentication (SPF/DKIM) for sending mail from a custom domain |
| update_authenticated_domain | Update the custom SPF or default settings of an existing authenticated domain |
| delete_authenticated_domain | Permanently delete an authenticated domain. This action cannot be undone. |
| validate_authenticated_domain | Check whether the domain's DNS records are correctly configured for authentication |
| get_default_authenticated_domain | Get the authenticated domain currently set as the default for sending mail |
| list_branded_links | List all branded links (link whitelabels) configured for click tracking |
| get_branded_link | Get detailed information about a specific branded link, including its DNS records |
| create_branded_link | Set up branded link tracking (click tracking through the sender's own domain instead of sendgrid.net) |
| update_branded_link | Update the default setting of an existing branded link |
| delete_branded_link | Permanently delete a branded link. This action cannot be undone. |
| validate_branded_link | Check whether the branded link's DNS records are correctly configured |
| list_event_webhooks | List all configured Event Webhook settings on the account |
| get_event_webhook | Get the configuration of a specific Event Webhook by ID |
| create_event_webhook | Creates a new Event Webhook that POSTs email events (delivered, bounced, opened, clicked, etc.) to the given URL |
| update_event_webhook | Update the configuration of an existing Event Webhook |
| delete_event_webhook | Permanently delete an Event Webhook configuration. This action cannot be undone. |
| test_event_webhook | Sends a test event payload to the given webhook URL to verify it's reachable and correctly configured |
| list_inbound_parse_settings | List all configured Inbound Parse webhook settings on the account |
| get_inbound_parse_setting | Get the Inbound Parse webhook configuration for a specific hostname |
| create_inbound_parse_setting | Configures inbound email parsing so mail sent to the given hostname is POSTed to the given URL |
| update_inbound_parse_setting | Update the Inbound Parse webhook configuration for a specific hostname |
| delete_inbound_parse_setting | Permanently delete an Inbound Parse webhook configuration for a hostname. This action cannot be undone. |
| get_inbound_parse_stats | Get statistics on the number of inbound emails parsed over a given date range |
| get_tracking_settings | Retrieve all tracking settings (click, open, subscription, Google Analytics) in one call |
| get_click_tracking_settings | Retrieve the current click tracking setting |
| update_click_tracking_settings | Enable or disable click tracking on links within emails |
| get_google_analytics_settings | Retrieve the current Google Analytics tracking settings |
| update_google_analytics_settings | Update Google Analytics tracking settings, including UTM campaign, content, medium, source, and term values |
| get_open_tracking_settings | Retrieve the current open tracking setting |
| update_open_tracking_settings | Enable or disable open tracking, which inserts an invisible pixel to record when an email is opened |
| get_subscription_tracking_settings | Retrieve the current subscription tracking settings |
| update_subscription_tracking_settings | Update subscription tracking settings, including the unsubscribe link content, landing page, URL, and replacement tag |
| get_all_mail_settings | Retrieve all mail settings (address whitelist, bounce purge, footer, forward bounce, forward spam, etc.) in one call |
| get_address_whitelist_settings | Retrieve the current address whitelist mail setting, which controls which email addresses or domains bypass all suppression lists |
| update_address_whitelist_settings | Update the address whitelist setting that controls which email addresses or domains bypass all suppression lists |
| get_bounce_purge_settings | Retrieve the current bounce purge mail setting, which automatically purges old bounce records after a configured number of days |
| update_bounce_purge_settings | Update the bounce purge setting that automatically purges old bounce records after a configured number of days |
| get_footer_settings | Retrieve the current footer mail setting, which appends a footer to every outgoing email |
| update_footer_settings | Update the footer setting that appends a footer to every outgoing email |
| get_forward_bounce_settings | Retrieve the current forward bounce mail setting, which forwards bounce notifications to a given email address |
| update_forward_bounce_settings | Update the forward bounce setting that forwards bounce notifications to a given email address |
| get_forward_spam_settings | Retrieve the current forward spam mail setting, which forwards spam report notifications to a given email address |
| update_forward_spam_settings | Update the forward spam setting that forwards spam report notifications to a given email address |
| list_api_keys | List all API keys on the account (names and IDs only, not the secret key values) |
| get_api_key | Get details for a specific API key, including its scopes |
| list_alerts | List all usage/stats alerts configured on the account |
| get_alert | Get details for a specific alert |
| list_teammates | List all teammates (users) on the account |
| get_teammate | Get details for a specific teammate, including their permission scopes |
| list_pending_teammates | List pending teammate invitations that haven't been accepted yet |
| list_ip_addresses | List all IP addresses assigned to the account |
| get_ip_address | Get details for a specific IP address, including its warmup status and assigned subusers |
| list_assigned_ips | List all IP addresses that are currently assigned to a subuser |
| list_ip_pools | List all IP pools on the account |
| get_ip_pool | Get details for a specific IP pool, including the IP addresses it contains |
| get_remaining_ips | Get the count and cost of additional dedicated IP addresses available for purchase |
| list_ip_warmups | List all IP addresses currently in the warmup process |
| get_ip_warmup_status | Get the warmup status for a specific IP address |
| list_allowed_ips | List IP addresses allowed to access the account via the API/UI (the access allowlist) |
| get_allowed_ip | Get details for a specific entry in the access allowlist |
| list_access_activity | List recent account access attempts (successful and blocked logins/API calls) |
| list_designs | List all custom email designs in the Design Library |
| create_design | Create a new custom email design in the Design Library from raw HTML |
| get_design | Get details for a specific design in the Design Library |
| update_design | Update the content or metadata of an existing design in the Design Library |
| delete_design | Permanently delete a custom design from the Design Library. This action cannot be undone. |
| duplicate_design | Create a copy of an existing design in the Design Library |
| list_prebuilt_designs | List SendGrid's built-in pre-made design templates |
| get_prebuilt_design | Get details for one of SendGrid's built-in pre-made designs |
| duplicate_prebuilt_design | Create an editable copy of one of SendGrid's built-in pre-made designs |
| validate_email | Check whether an email address is valid and likely to be deliverable, using SendGrid's Email Address Validation API (consumes a billed validation credit per… |
| search_email_activity | Search sent message activity using SendGrid's SGQL filter syntax (e.g. by recipient, status, or subject) -- useful for troubleshooting why a specific email… |
| get_message_details | Get full delivery event history and details for a single sent message by its message ID |
| Category | Tools |
| Total | 154 |
{
"mcpServers": {
"sendgrid": {
"command": "sendgrid-mcp",
"env": {
"SENDGRID_API_KEY": "YOUR_SENDGRID_API_KEY",
"READ_ONLY": "true"
}
}
}
}From the project documentation. Replace placeholders and example paths before connecting.
| Variable | Description | Required |
|---|---|---|
| SENDGRID_API_KEY | Declared in the maintainer’s client configuration. | Yes |
| READ_ONLY | Declared in the maintainer’s client configuration. | Yes |
Your assistant inside the workspace — read channels, search history, post messages and tame the noise.
Build a programmable telecommunications stack for connecting telephony services with the Internet via a cloud-based utility.
Inbox intelligence — search, read, draft and send Gmail through your assistant with OAuth auto-setup.
Read and write Jira, Confluence, Bitbucket, JSM and Compass from your AI client — with your own permissions.
Read and send Telegram messages through your assistant — chats, channels and history via the client API.
Enables Discord bot integration with Model Context Protocol (MCP) compatible applications like Claude Desktop.