MCP server for SendGrid's v3 API: email marketing, transactional mail, templates, and analytics.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
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.
Built and maintained by a SendGrid engineer, as an independent project β not an official SendGrid product.
See RELEASES.md for what's changed in the latest release.
β Claude Desktop - Official desktop app β Claude Code - Official CLI tool β Claude custom connectors - via Streamable HTTP (see Install the server) β OpenAI Responses API / Apps SDK - via Streamable HTTP β MCP Market - Hosted, one-click deploy, no install required (see 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
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:
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
for the full list of what you can configure.
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:
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:
MCP Market 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; 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:
https://github.com/deyikong/sendgrid-mcp), and pick a
server 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 to set your
credentials and connect.
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.
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.
SENDGRID_API_KEY (see the diagram in 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
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.
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:
https://mcp.example.com. It doesn't need to resolve to anything; it just
needs to be unique.sendgrid:read, sendgrid:write.https://YOUR_TENANT.auth0.com/.No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/sendgrid-mcp-server)<a href="https://allmcps.com/mcp/sendgrid-mcp-server"><img src="https://allmcps.com/api/badge/sendgrid-mcp-server?style=directory" alt="SendGrid MCP Server on AllMCPs" /></a>