Sendgrid MCP, Contacts, Templates, Campaigns, Stats, etc. more to come. With READ_ONLY option.
- ✓Open-source license (ISC)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Mature repo (>1y old)
- ✓Documented (README)
git clone https://github.com/deyikong/sendgrid-mcp{
"mcpServers": {
"sendgrid-mcp": {
"command": "node",
"args": ["/path/to/sendgrid-mcp/dist/index.js"],
"env": {
"SENDGRID_API_KEY": "<sendgrid_api_key>",
"MCP_PUBLIC_URL": "<mcp_public_url>"
}
}
}
}SENDGRID_API_KEYMCP_PUBLIC_URLMCP Servers overview
# SendGrid MCP Server
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 58 tools covering all aspects of email management and performance analysis.
*Built and maintained by a SendGrid engineer, as an independent project — not an official SendGrid product.*
> See [RELEASES.md](./RELEASES.md) for what's changed in the latest release.
## Features
- **Marketing Automations**: Create and manage email automation workflows
- **Single Send Campaigns**: Manage one-time email campaigns with detailed performance tracking
- **Contact Management**: Complete CRUD operations for contacts with advanced search and bulk operations
- **Email Statistics & Analytics**: Multi-dimensional performance analysis across browsers, devices, geography, and email providers with 13-month historical data
- **Dynamic Segment Management**: Create, update, and delete contact segments with complex filtering criteria that automatically refresh
- **Dynamic Template Management**: Create, manage, and version HTML email templates with Handlebars support for personalization
- **Custom Fields Management**: Define and manage additional contact data fields for enhanced targeting
- **Mail Sending**: Send transactional emails via SendGrid with full personalization support
- **Sender Identity Management**: Manage verified sender identities with authentication tracking
- **Suppression Lists**: Manage bounces, spam reports, and unsubscribes for deliverability optimization
- **Account Settings**: Access account details and configuration management
- **Browser Integration**: Quick links to SendGrid web interface for visual operations
- **Read-Only Safety Mode**: Secure operation mode prevents accidental data modification while maintaining full analytics access
## Supported MCP Clients
✅ **Claude Desktop** - Official desktop app
✅ **Claude Code** - Official CLI tool
✅ **Claude custom connectors** - via Streamable HTTP (see [Install the server](#1-install-the-server))
✅ **OpenAI Responses API / Apps SDK** - via Streamable HTTP
✅ **MCP Market** - Hosted, one-click deploy, no install required (see [Install the server](#1-install-the-server))
✅ **Cline** - VS Code extension
✅ **Zed Editor** - Modern code editor
✅ **Continue** - VS Code autopilot
✅ **Codex CLI** - via Streamable HTTP
✅ **Any MCP-compatible client**
## Getting Started
Follow these steps in order — by the end you'll have the server installed (or deployed), your SendGrid API key set, and your MCP client connected.
This is the actual request path, whichever client you end up using — some
launch the server locally over stdio, others reach it over the network via
Streamable HTTP (MCP Market, self-hosted), which adds a choice of client
auth on top:
```
┌──────────┐
│ Client │
└────┬─────┘
┌──────────────────────┴───────────────────┐
│ │
stdio (local subprocess) HTTP (network)
│ auth: none | token | oauth │
│ │
└──────────────────────┬───────────────────┘
▼
┌────────────────────┐
│ MCP Server │
│ (this repo) │
└─────────┬──────────┘
│ SENDGRID_API_KEY
│ (always required, any transport)
▼
┌────────────────────┐
│ SendGrid API │
└────────────────────┘
```
`SENDGRID_API_KEY` is required no matter which path you take. `READ_ONLY=true`
(the default) is a further gate *inside* the MCP Server box — it blocks
create/update/delete/send tools once a request is already in, regardless of
which branch it arrived on. See [Environment Variables](#environment-variables)
for the full list of what you can configure.
### 1. Install the server
Install it **locally** if your client launches it itself, or go **remote** if it connects over the network instead.
**Local (stdio)** — for Claude Desktop, Claude Code, Cline, Zed, Continue, or any client that runs the server as a subprocess:
```bash
npm install -g sendgrid-mcp
```
This installs the `sendgrid-mcp` command globally, which your MCP client will launch as a subprocess. Requires Node.js 20+.
**Remote (HTTP)** — nothing to install locally; pick one:
<details>
<summary>MCP Market (hosted, no install required)</summary>
[MCP Market](https://app.mcpmarket.com/deyikong/mcp/sendgrid) deploys and hosts this server for you — nothing to install locally and no environment variables to manage on your machine. You still need a [SendGrid API key](#2-get-your-sendgrid-api-key); you'll enter it into MCP Market instead of your own shell/config.
From MCP Market's **MCP Servers** page, deploy a custom MCP from either source:
- **GitHub** — select the GitHub source, choose Public or Private repo, paste
the repo URL (`https://github.com/deyikong/sendgrid-mcp`), and pick a
server name.
- **npm** — select the npm source, enter the package name (`sendgrid-mcp`),
and pick a server name.


Either way, MCP Market builds and runs it for you; it shows up under
**MCP Servers** with a `Running` status once ready. Continue to
[Configure your MCP client](#3-configure-your-mcp-client) to set your
credentials and connect.
---
</details>
<details>
<summary>Self-hosted (Streamable HTTP)</summary>
Run the server yourself and expose it over Streamable HTTP instead of letting
a client launch it locally — for Claude custom connectors, OpenAI's Responses
API `mcp` tool / Apps SDK, or any other remote client.
The MCP endpoint is `POST /mcp`; `GET /health` returns a status document for
load balancers. Requests are handled **statelessly** (no session id required),
which is what hosted clients expect.
`none`/`token`/`oauth` below are not alternate ways to *connect* — they're
three different locks on the one new door (HTTP), as shown in the
[request-flow diagram above](#getting-started).
#### Quick start (local development)
```bash
export SENDGRID_API_KEY="SG.your_api_key_here"
export MCP_TRANSPORT=http
export MCP_AUTH_MODE=token
export MCP_AUTH_TOKEN="$(openssl rand -hex 32)"
sendgrid-mcp
```
#### Authentication
Set `MCP_AUTH_MODE` to one of:
| Mode | Use for | Requires |
|------|---------|----------|
| `oauth` | Production / remote clients | `MCP_OAUTH_ISSUER`, `MCP_OAUTH_AUDIENCE` |
| `token` | Local dev, simple self-hosting | `MCP_AUTH_TOKEN` (16+ chars) |
| `none` | Loopback development only | — refuses to start on a public bind |
**OAuth mode** makes this server an OAuth 2.1 **resource server**. It does not
issue or store credentials — it verifies access tokens minted by your existing
identity provider (Auth0, Okta, Entra ID, Google, Stytch, …) against that
provider's published JWKS.
```bash
export MCP_AUTH_MODE=oauth
export MCP_OAUTH_ISSUER="https://your-tenant.auth0.com"
export MCP_OAUTH_AUDIENCE="https://mcp.example.com"
export MCP_OAUTH_REQUIRED_SCOPES="sendgrid:read"
export MCP_PUBLIC_URL="https://mcp.example.com"
```
`SENDGRID_API_KEY` (see the [diagram in Getting Started](#getting-started))
is still required alongside these — OAuth only controls who can reach the server, not what the server
uses to talk to SendGrid.
The server publishes [RFC 9728](https://datatracker.ietf.org/doc/html/rfc9728)
Protected Resource Metadata at `/.well-known/oauth-protected-resource`, so
clients discover your authorization server automatically: an unauthenticated
request gets a `401` whose `WWW-Authenticate` header points at that document,
the client reads it, sends the user to your IdP to log in, and retries with the
resulting token.
Tokens are rejected (`401`) if expired, wrongly signed, or issued for a
different issuer or audience; a valid token missing a required scope gets `403`.
#### Setting up your identity provider
Whichever provider you use, you're configuring the same three things: an
**issuer URL**, an **audience** (a stable identifier for this API resource),
and a **scope** clients will request. A few concrete walkthroughs:
<details>
<summary>Auth0</summary>
1. Sign in to your [Auth0 Dashboard](https://manage.auth0.com/) and go to
**Applications → APIs → Create API**.
2. Set an **Identifier** — this is your audience, e.g.
`https://mcp.example.com`. It doesn't need to resolve to anything; it just
needs to be unique.
3. Under the API's **Permissions** tab, add the scopes your server should
require, e.g. `sendgrid:read`, `sendgrid:write`.
4. Your **Issuer URL** is your tenant domain, shown on the API's *Settings*
tab: `https://YOUR_TENANT.auth0.com/`.
```bash
export MCP_OAUTH_ISSUER="https://YOUR_TENANT.auth0.com/"
export MCP_OAUTH_AUDIENCE="https://mcp.example.com"
export MCP_OAUTH_REQUIRED_SCOPES="sendgrid:read"
```
</details>
<details>
<summary>Okta</summary>
1. Sign in to the [Okta Admin Console](https://login.okta.com/) and go to
**Security → API → Authorization Servers**.
2. Use the `default` authorization server, or create a new one. Its
**Issuer URI**, shown at the top of the server's settings page, looks like
`https://{yourOktaDomain}/oauth2/{authServerId}`.
3. On the same page, the **Audience** field (default `api://default`) is what
you'll use for the audience — set it to something specific to this server,
e.g. `api://sendgrid-mcp`.
4. Open the **Scopes** tab and add a scope, e.g. `sendgrid:read`.
What people ask about sendgrid-mcp
What is deyikong/sendgrid-mcp?
+
deyikong/sendgrid-mcp is mcp servers for the Claude AI ecosystem. Sendgrid MCP, Contacts, Templates, Campaigns, Stats, etc. more to come. With READ_ONLY option. It has 3 GitHub stars and its last recorded update is dated 2026-08-26.
How do I install sendgrid-mcp?
+
You can install sendgrid-mcp by cloning the repository (https://github.com/deyikong/sendgrid-mcp) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is deyikong/sendgrid-mcp safe to use?
+
Our security agent has analyzed deyikong/sendgrid-mcp and assigned a Trust Score of 100/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains deyikong/sendgrid-mcp?
+
deyikong/sendgrid-mcp is maintained by deyikong. The last recorded GitHub activity is dated 2026-08-26, with 0 open issues.
Are there alternatives to sendgrid-mcp?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy sendgrid-mcp to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/deyikong-sendgrid-mcp)<a href="https://claudewave.com/repo/deyikong-sendgrid-mcp"><img src="https://claudewave.com/api/badge/deyikong-sendgrid-mcp" alt="Featured on ClaudeWave: deyikong/sendgrid-mcp" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!