Skip to main content
S

SendGrid

@codespar/mcp-sendgrid Β· v0.2.2

🌐 GlobalMessagingAuth · API Keybeta20 tools2 env vars

Email (transactional + marketing), Twilio-owned. Completes channel coverage: Twilio handles SMS/WhatsApp/Voice, SendGrid handles email. Send mail, templates, contacts CRUD, suppressions, stats.

Get started Β· freeView docs

MIT Β· runs locally with your own credentials

Limitations

  • Hosted calls with a test key are not available: the provider has no test environment.
Package
@codespar/mcp-sendgrid
Version
0.2.2
npm dist-tag
latest
Category
Messaging
Auth
API Key
Country
🌐 Global
License
MIT
Transport
stdio Β· streamable-http

Quickstart

Install, set the credentials, make the first call.

Pick your client. The server runs locally over stdio, with your own credentials.

Add the server to your clientOne config entry. No build step, no SDK required.
Set the environment variables2 variables read by this server's code, listed below.
Restart and make the first callThe agent can call any of the 20 tools. Try send_mail first.
terminal
# Claude Code claude mcp add sendgrid -e SENDGRID_API_KEY=… -e SENDGRID_FROM_EMAIL=… -- npx -y @codespar/mcp-sendgrid@0.2.2 # then: /mcp to confirm the server is connected
Environment variables2 variables
SENDGRID_API_KEYSendGrid API key. Used as Bearer token in the Authorization header.requiredsecret
SENDGRID_FROM_EMAILOptional default From address used by send_mail / send_template when `from.email` is omitted. Must be a Verified Sender or authenticated domain.optional

Names read from the package code (@codespar/mcp-sendgrid@0.2.2). Descriptions and flags come from its manifest. Self-hosted, you hold the credentials.

First call demosend_mail

"Send an email via POST /mail/send. Supply at least one `personalization` with `to` recipients, a `from` address"

tools/callsend_mailresult returned

Tools

What your agent can call.

20 tools, as the package's tools/list returns them.

send_mail

Send an email via POST /mail/send. Supply at least one `personalization` with `to` recipients, a `from` address (falls back to SENDGRID_FROM_EMAIL), and either `content` blocks or a `template_id` with `dynamic_template_data`. Returns 202 on success.

send_template

Convenience wrapper for POST /mail/send with a dynamic template. Equivalent to send_mail with `template_id` set. Supply `to`, `template_id`, and `dynamic_template_data`; content is rendered from the template.

add_contact

Upsert contacts in Marketing Campaigns via PUT /marketing/contacts. Matches on email. Returns a job_id β€” ingestion is async. Optionally assign to list_ids.

list_contacts

List Marketing Campaigns contacts via GET /marketing/contacts. Returns up to 50 sample contacts; for full export use a Contacts Export job.

delete_contact

Delete contacts by id via DELETE /marketing/contacts?ids=.... Pass a comma-separated list of contact UUIDs, or set delete_all_contacts=true to wipe all contacts (irreversible).

search_contacts

Search contacts with an SGQL query via POST /marketing/contacts/search. Example: `email LIKE '%@codespar.com' AND CONTAINS(list_ids, 'abc-123')`.

get_contact

Retrieve a single Marketing Campaigns contact by id via GET /marketing/contacts/{id}. Returns full contact record including custom fields and list_ids.

list_lists

List all Marketing Campaigns contact lists via GET /marketing/lists. Returns list UUIDs, names, and contact_count. Supports pagination.

create_list

Create a Marketing Campaigns contact list via POST /marketing/lists. Returns the new list UUID. Use the id with add_contact's list_ids to populate it.

delete_list

Delete a Marketing Campaigns contact list via DELETE /marketing/lists/{id}. Contacts are NOT deleted by default β€” set delete_contacts=true to also remove contacts that belong ONLY to this list.

list_templates

List transactional templates via GET /templates. By default returns dynamic templates (recommended); set generations='legacy' for legacy.

create_template

Create a transactional template via POST /templates. Returns a template_id. Add versions separately via /templates/{id}/versions.

Names and descriptions come from the package's tools/list (@codespar/mcp-sendgrid@0.2.2). A kind (read, write, delete) is shown only when the package annotates its tools or each tool was verified one by one; neither exists for this server yet.

Compatibility

MCP is a protocol. Any client that speaks it can mount this server.

codespar_discover lists this server's tools, but a project with a test key cannot call them: the provider has no test environment, so the runtime refuses test-mode calls.

Protocol

Any MCP client

stdio Β· streamable-http

Questions

Before you install.

How do I install the SendGrid MCP server?

Run npx -y @codespar/mcp-sendgrid@0.2.2 and add the config block above to your MCP client: Claude Code, Cursor, Claude Desktop, VS Code, or any MCP-compatible client. No build step, no SDK required.

What can my agent do with SendGrid?

SendGrid exposes 20 tools for messaging. Your agent calls them directly; the full list is above.

How does SendGrid authenticate, and how are credentials stored?

SendGrid uses API Key. Self-hosted, you hold the credentials: the server reads them from its environment variables.

How does SendGrid handle upstream API changes?

Every server is versioned independently on npm. The command on this page pins 0.2.2, the version whose tools are listed here; your agent keeps running it until you change the version.

Is SendGrid open source? How do I report a bug?

Yes. SendGrid is MIT-licensed and published on npm as @codespar/mcp-sendgrid, source on GitHub (link in the Details panel). Report issues on the package repository; security issues go to security@codespar.dev, and we respond within 24 hours.

Start in seconds.

Add the config above, set the variables, and your agent calls the tools.

Start in seconds demo
Add the server to your client with the config above.
Set the environment variables listed above.
Ask your agent for the first call.
SendGrid β€” MCP server Β· 20 tools | CodeSpar