# SendGrid

> Send email and inspect deliverability via SendGrid from an AI agent.

[Canonical HTML page](https://top-mcps.com/mcp/sendgrid) · [server.json](https://top-mcps.com/mcp/sendgrid.json) · [methodology](https://top-mcps.com/about/methodology)

## Install

### Claude Desktop — `claude_desktop_config.json`

Paste under mcpServers. Fully quit and reopen Claude after editing.

```json
{
  "mcpServers": {
    "sendgrid": {
      "command": "npx",
      "args": [
        "-y",
        "sendgrid-mcp"
      ],
      "env": {
        "SENDGRID_API_KEY": "${SENDGRID_API_KEY}",
        "SENDGRID_FROM": "${SENDGRID_FROM}"
      }
    }
  }
}
```

### Claude Code — `CLI or .mcp.json`

Run from your repo. Commit .mcp.json to share with your team.

```shell
# export SENDGRID_API_KEY=SG.changeme
# export SENDGRID_FROM=agent@example.com
claude mcp add sendgrid -- npx -y sendgrid-mcp
```

### Cursor — `.cursor/mcp.json`

Global path: ~/.cursor/mcp.json. Reload window after editing.

```json
{
  "mcpServers": {
    "sendgrid": {
      "command": "npx",
      "args": [
        "-y",
        "sendgrid-mcp"
      ],
      "env": {
        "SENDGRID_API_KEY": "${SENDGRID_API_KEY}",
        "SENDGRID_FROM": "${SENDGRID_FROM}"
      }
    }
  }
}
```

### VS Code — `.vscode/mcp.json`

VS Code uses the "servers" key (not "mcpServers").

```jsonc
{
  "servers": {
    "sendgrid": {
      "command": "npx",
      "args": [
        "-y",
        "sendgrid-mcp"
      ],
      "env": {
        "SENDGRID_API_KEY": "${SENDGRID_API_KEY}",
        "SENDGRID_FROM": "${SENDGRID_FROM}"
      }
    }
  }
}
```

### Windsurf — `~/.codeium/windsurf/mcp_config.json`

Open via Cascade → hammer icon → Configure.

```json
{
  "mcpServers": {
    "sendgrid": {
      "command": "npx",
      "args": [
        "-y",
        "sendgrid-mcp"
      ],
      "env": {
        "SENDGRID_API_KEY": "${SENDGRID_API_KEY}",
        "SENDGRID_FROM": "${SENDGRID_FROM}"
      }
    }
  }
}
```

### Cline — `cline_mcp_settings.json`

Open via the Cline sidebar → MCP Servers → Edit.

```json
{
  "mcpServers": {
    "sendgrid": {
      "command": "npx",
      "args": [
        "-y",
        "sendgrid-mcp"
      ],
      "env": {
        "SENDGRID_API_KEY": "${SENDGRID_API_KEY}",
        "SENDGRID_FROM": "${SENDGRID_FROM}"
      }
    }
  }
}
```

### Continue — `~/.continue/config.json`

Continue uses modelContextProtocolServers with a transport block.

```json
{
  "experimental": {
    "modelContextProtocolServers": [
      {
        "transport": {
          "type": "stdio",
          "command": "npx",
          "args": [
            "-y",
            "sendgrid-mcp"
          ],
          "env": {
            "SENDGRID_API_KEY": "${SENDGRID_API_KEY}",
            "SENDGRID_FROM": "${SENDGRID_FROM}"
          }
        }
      }
    ]
  }
}
```

### Codex CLI — `~/.codex/config.toml`

Codex uses TOML. Each server is a [mcp_servers.<name>] subtable.

```shell
# ~/.codex/config.toml
[mcp_servers.sendgrid]
command = "npx"
args = [
  "-y",
  "sendgrid-mcp",
]
env = { SENDGRID_API_KEY = "${SENDGRID_API_KEY}", SENDGRID_FROM = "${SENDGRID_FROM}" }
```

### Zed — `~/.config/zed/settings.json`

Zed calls them "context_servers". Settings live-reload on save.

```jsonc
{
  "context_servers": {
    "sendgrid": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "sendgrid-mcp"
        ]
      },
      "env": {
        "SENDGRID_API_KEY": "${SENDGRID_API_KEY}",
        "SENDGRID_FROM": "${SENDGRID_FROM}"
      }
    }
  }
}
```

### ChatGPT — `ChatGPT → Apps directory`

SendGrid doesn't ship a hosted HTTPS endpoint today. ChatGPT supports remote MCP servers only — to use this server in ChatGPT you'll need to deploy it to a public HTTPS URL first (e.g. via Cloudflare Workers or Vercel) or wait for an official remote build.

```none

```

## At a glance

- **Maintainer:** Community
- **Transport:** stdio
- **Auth model:** API key
- **Required secrets:** SENDGRID_API_KEY, SENDGRID_FROM
- **Supported clients:** Claude, Cursor, VS Code, Windsurf, Any MCP-compatible client, SendGrid account
- **License:** MIT
- **Language:** TypeScript
- **Latest version:** latest
- **Last verified:** 2026-06-02
- **Score:** 56/100 (rubric 2026-04 — see https://top-mcps.com/about/methodology)
- **Source:** https://github.com/sendgrid-mcp/sendgrid-mcp

## Tools & permissions

| Tool | Description | Args | Side effects |
|------|-------------|------|--------------|
| `send_mail` | Send a transactional email via the v3 Mail Send API. | `to: string, subject: string, html: string` | write |
| `query_activity` | Search the Activity Feed by recipient, status, or time window. | `query: object` | read |
| `list_suppressions` | List bounces, blocks, and spam reports. | `type: string` | read |
| `verify_sender` | Check the verification status of a sender or domain. | `sender: string` | read |

## Security & scope

- **Access scope:** read-write
- **Sandbox:** Authenticates with a SendGrid API key scoped to the smallest necessary permissions. Send + read-stats by default; suppressions only when explicitly granted.
- **Gotchas:**
  - Never use a Full Access key — agents only need Mail Send + Stats Read.
  - SENDGRID_FROM must be a verified sender or domain; unverified senders fail with 403.
  - Activity Feed has a 30-day retention window — older events return empty without warning.

## Quick answer

**What it does.** Wraps the SendGrid v3 REST API: send mail, query Activity Feed, list suppressions, inspect authenticated senders and IPs.

**Best for:**
- Transactional send
- Activity Feed investigation
- Suppression list audits
- Sender auth verification
- Multi-domain send routing

**Not for:**
- High-volume marketing campaigns from chat
- Workflows that need granular IP pool selection from the model

## Description

A community SendGrid MCP connects an AI agent to a SendGrid account. Sends email via the Mail Send API, queries Activity Feed for delivery and engagement events, inspects suppression lists, and reads sender authentication state. Scoped via SendGrid API keys with the smallest necessary permission set (Mail Send + Stats Read by default).

## Why it matters

SendGrid (Twilio) is the most-installed transactional email platform globally. An MCP turns delivery investigation, suppression-list audits, and one-off agent sends into chat prompts.

## Key features

- API key permission scoping
- Activity Feed v3 queries
- Suppression list CRUD
- Sender authentication checks
- Subuser scoping for resellers

## FAQ

### Which API key permissions does it need?

Mail Send + Stats Read for the default tool set. Add Suppressions Read/Write to manage the bounce list. Never give the agent the Full Access key.

### Does it support subusers?

Yes via the on-behalf-of header. Pass SENDGRID_SUBUSER to scope all calls to one subuser without rotating keys.

### Activity Feed search granularity?

Per-recipient, per-status, per-time-window. The Activity Feed v3 endpoint is what the SendGrid UI itself uses — same fidelity for the agent.

## Changelog

- **2026-06-02** — Refreshed install snippets and fact sheet; verified for 2026.
- **2025-02-22** — Initial directory listing.
