# Twilio SendGrid MCP

> Twilio SendGrid MCP gives your AI agent full control over high-volume email communications. You can automatically update marketing contact records, run deep audits on bounces and spam reports, and send authenticated HTML emails directly from chat. It’s total control over your outgoing mail flow.

## Overview
- **Category:** talk-to-me
- **Price:** Free
- **Tags:** email-marketing, transactional-email, crm, bounce-management, template-management

## Description

Turn your conversation into a complete email command center. This MCP lets your agent interact with SendGrid's powerful platform to manage everything from contact lists to outbound delivery. If you use Vinkius, this connection instantly expands what your AI client can do for marketing and customer communications.

You no longer have to jump between dashboards to check list hygiene or send a time-sensitive notification. Your agent handles the heavy lifting: it finds out why an email failed—whether it's blocked or just bounced—and helps you decide if that address should be permanently removed from your sending pool. You can also pull up all your stored dynamic templates so you can verify their structure before hitting send, and even enrich subscriber details on the fly. It’s about making complex, multi-step marketing operations simple enough to just talk through.

## Tools

### list_single_sends
Provides an overview of all single-send marketing campaigns you have run.

### delete_bounce
Permanently removes an email address from the suppression list, which is a destructive action on the record.

### list_bounces
Lists all records of emails that failed to deliver, which is useful for general list cleaning and auditing.

### get_template_details
Retrieves the complete structure and detailed information for one specified template ID.

### list_marketing_contacts
Generates a full list of every marketing contact stored in your directory.

### list_marketing_lists
Lists all defined marketing contact lists you have set up.

### list_verified_senders
Shows a list of sender identities that are verified and can be used in the 'from' email address.

### list_dynamic_templates
Lists every available Dynamic Transactional Template in your account.

### dispatch_email
Sends a fully authenticated email using the SendGrid SMTP relay, requiring a verified sender address.

### delete_spam_report
Removes an email from the spam report suppression list, but use this with care because it might hurt your sender reputation.

### search_contact_by_email
Looks up a specific marketing contact by their email address and returns all profile details.

### get_delivery_stats
Retrieves global email delivery statistics for any date in YYYY-MM-DD format.

### list_blocked_emails
Lists all emails that were rejected by temporary server blocks, which is different from a hard bounce.

### create_marketing_contact
Creates or updates a marketing contact profile and merges data if the person already exists in your system.

### list_global_unsubscribes
Retrieves a complete listing of global unsubscribe actions taken by users.

### list_spam_reports
Lists specific user complaints indicating that an email was reported as spam.

## Prompt Examples

**Prompt:** 
```
Using the SendGrid API, list emails that have bounced recently to audit our hygiene.
```

**Response:** 
```
I've invoked `list_bounces` spanning your latest transmissions. You have exactly 4 hard-bounced targets stored within suppression parameters. For instance, 'hello@fake-email-z.com' returned an error string: 550 Relay Denied. Do you want me to automatically execute the `delete_bounce` directive on any specific valid records to unblock them?
```

**Prompt:** 
```
Dispatch an HTML email from 'marketing@mybrand.com' to 'client@test.com' with subject 'Special Delivery'. Use standard <h1>.
```

**Response:** 
```
The transmission has been completed effectively. The `dispatch_email` tool received identical constraints, leveraging 'marketing@mybrand.com'. The SendGrid HTTP payload accepted your outbound message synchronously and queued it upon the global outgoing rail successfully.
```

**Prompt:** 
```
Audit the Dynamic Transactional Templates list. Summarize findings.
```

**Response:** 
```
I've engaged `list_dynamic_templates` surveying your internal dashboard environment. Your vault holds 7 different distinct design layouts. The most recently updated is the 'Welcome Onboarding Form' attached to template ID (d-f018x8axxx...). Would you like me to dive into `get_template_details` for that specific iteration to reverse-engineer its internal blocks?
```

## Capabilities

### Dispatching authenticated emails
Send fully formatted HTML campaigns using verified sender addresses.

### Auditing list failures and blocks
Review records of bounced, blocked, or unsubscribed email addresses to clean up mailing lists.

### Managing contact directories
Look up existing contacts by email, create new ones, or enrich profiles with conversational data.

### Inspecting templates and stats
Retrieve details on stored marketing templates or check global delivery statistics for a given date.

## Use Cases

### Cleaning up old campaign lists
A marketing manager noticed their last campaign bounce rate was high. They ask the agent to run `list_bounces`. The agent identifies a cluster of invalid emails, and the manager asks it to execute `delete_bounce` on those addresses, cleaning the list before the next send.

### Verifying contact data before launch
A developer needs to ensure 50 new leads are added to the CRM. They instruct the agent to use `create_marketing_contact` for each lead, allowing the tool to merge data safely if any record already exists.

### Auditing email template readiness
A product manager wants to know what transactional emails are available. They ask the agent to use `list_dynamic_templates`, which returns a list of IDs, allowing them to then check specific details using `get_template_details`.

### Handling customer service follow-ups
A CS representative needs to send an email but isn't sure if the client’s address is active. They ask the agent to run `search_contact_by_email`, confirming the profile details are current before using `dispatch_email`.

## Benefits

- Saves time by automating list hygiene. Instead of manually reviewing failed emails, your agent can run `list_bounces` to identify stale addresses and then execute `delete_bounce` on specific records.
- Ensures professional communication flow. You don't have to guess if an address is valid; you can check a contact's status using `search_contact_by_email` before launching a campaign.
- Reduces technical debt in your campaigns. By listing all available templates via `list_dynamic_templates`, you can audit the structure of every email type and verify it with `get_template_details` before deployment.
- Provides critical visibility into delivery failures. You can check not only recent bounces but also permanently blocked emails using `list_blocked_emails` or view historical spam complaints via `list_spam_reports`.
- Keeps your CRM accurate instantly. When a user interacts, you can run `create_marketing_contact` to automatically append or enrich their details without manual data entry.

## How It Works

The bottom line is that once configured, your AI client can treat complex email operations—from list cleaning to sending—as simple natural language commands.

1. Enable the SendGrid component within your client environment.
2. Supply your encrypted SendGrid API Key, ensuring it has proper sub-user permissions.
3. Tell your agent to perform a task, like checking recent bounces or dispatching a test email.

## Frequently Asked Questions

**How can I check if a user unsubscribed using Twilio SendGrid MCP?**
You can use `list_global_unsubscribes` to get a complete record of every time a user opted out. This is the definitive source for tracking global unsubscribe actions.

**What's the difference between bounces and blocks with Twilio SendGrid MCP?**
Bounces are records of emails that failed delivery, which you track using `list_bounces`. Blocks, however, are temporary server-level rejections, which you find by calling `list_blocked_emails`.

**Can I update a contact's details in my CRM with Twilio SendGrid MCP?**
Yes, you can use the `create_marketing_contact` tool. This function either creates a new record or updates an existing one if the contact already exists.

**How do I check which templates are available in my account using Twilio SendGrid MCP?**
You first run `list_dynamic_templates` to get a list of all template IDs. Then, you can use `get_template_details` with a specific ID to review its full structure.

**Does Twilio SendGrid MCP let me see historical delivery rates?**
Yes, you can get global email delivery statistics for any specific date using the `get_delivery_stats` tool. Just provide the year, month, and day.

**Can the agent automatically send emails on my behalf?**
Yes. The integration natively wraps the `dispatch_email` mutation tool. If adequately prompted, the system will formulate HTML payloads and broadcast them assuming you explicitly provide the verified Sender Identity (from_email) corresponding to your account.

**How do I remove an email block suppressing one of my clients?**
You don't need to manually interact with the web app anymore. Dictate to the LLM: 'Unblock client@gmail.com from my bounce list'. The agent will instantly leverage `delete_bounce` removing the suspension logic behind the scenes.

**Can I query spam complaints regarding my outgoing templates?**
Absolutely. Utilize the command prompt sequence to call `list_spam_reports`. It retrieves detailed events pointing precisely to domains triggering those complaints, empowering you to adjust or purge bad contacts dynamically.