Skip to main content
Glama
sparkpost-mcp

sparkpost-mcp

by Pcummings

sparkpost-mcp

MCP server exposing the SparkPost (EU) email API as 20 tools — account, templates, transactional sends, suppression, sending domains, webhooks, subaccounts, message events, deliverability metrics, and recipient lists.

Published on npm as @pcummings/sparkpost-mcp.

Install into an AI agent

You need a SPARKPOST_API_KEY (SparkPost EU dashboard → API Keys). For the US region, also set SPARKPOST_API_BASE=https://api.sparkpost.com/api/v1.

The commands below fetch the server from npm via npx -y @pcummings/sparkpost-mcp. To run from a local clone instead, replace npx -y @pcummings/sparkpost-mcp with npx tsx /absolute/path/to/index.ts.

Claude Code

claude mcp add sparkpost -e SPARKPOST_API_KEY=your-key -- npx -y @pcummings/sparkpost-mcp

Add --scope user to make it available in every project.

OpenAI Codex

codex mcp add sparkpost --env SPARKPOST_API_KEY=your-key -- npx -y @pcummings/sparkpost-mcp

Gemini CLI

gemini mcp add -e SPARKPOST_API_KEY=your-key sparkpost npx -y @pcummings/sparkpost-mcp

US region — append the base-URL env to any command above (-e for Claude/Gemini, --env for Codex):

SPARKPOST_API_BASE=https://api.sparkpost.com/api/v1

Any other MCP client (Claude Desktop, Cursor, Windsurf, VS Code, Cline, Zed …) — add this to the client's MCP config:

{
  "mcpServers": {
    "sparkpost": {
      "command": "npx",
      "args": ["-y", "@pcummings/sparkpost-mcp"],
      "env": { "SPARKPOST_API_KEY": "your-key" }
    }
  }
}

For a local clone, use "args": ["tsx", "/absolute/path/to/index.ts"].

Related MCP server: Postmark MCP Server

Run from source

npm install
export SPARKPOST_API_KEY=your-key   # required; server exits if missing
export SPARKPOST_API_BASE=...        # optional; defaults to EU. US: https://api.sparkpost.com/api/v1
npm start

Tools

Tool

Description

get_account

Get SparkPost EU account info and usage

list_templates

List all email templates

get_template

Get a specific template by ID

create_template

Create a new email template

update_template

Update an existing template

send_email

Send a test/transactional email

check_suppression

Check if an address is suppressed

list_sending_domains

List all verified sending domains

list_webhooks

List all webhooks

create_webhook

Create a webhook (name, target URL, events)

delete_webhook

Delete a single webhook by id

list_subaccounts

List all subaccounts

create_subaccount

Create a subaccount with an API key (name, key_label, key_grants)

search_message_events

Search message events (one page; cursor + per_page for paging)

get_deliverability_metrics

Get deliverability metrics (from + metrics required; group_by selects a breakdown dimension)

list_recipient_lists

List all recipient lists

get_recipient_list

Get a recipient list by id (optionally with recipients)

create_recipient_list

Create a recipient list (recipients required; id/name auto-generated if omitted)

add_suppression

Add or update a suppression entry for one email

remove_suppression

Remove the suppression entry for one email

Usage examples

Send an email:

Send a transactional email to alice@example.com from noreply@yourdomain.com with subject "Hello" and body "Hi Alice"

Create a template:

Create an email template with id "welcome", name "Welcome Email", subject "Welcome to {{company}}!", html "Hi {{name}}", from noreply@yourdomain.com

Search recent bounces:

Search message events for bounce events in the last 24 hours for recipient domain example.com

Dev

npm run typecheck   # tsc --noEmit
npm test            # node:test suite (44 tests)

Available Tools

20 tools
add_suppressionC

Add or update a suppression entry for one email

Inputs: email (required), type, description.

check_suppressionC

Check if an address is suppressed

Inputs: email (required).

create_recipient_listB

Create a recipient list (recipients required; id/name auto-generated if omitted)

Inputs: recipients (required), id, name, description.

create_subaccountC

Create a subaccount with an API key (name, key_label, key_grants)

Inputs: name (required), key_label (required), key_grants (required).

create_templateC

Create a new email template

Inputs: id (required), html (required), name (required), subject (required), +3 more.

create_webhookC

Create a webhook (name, target URL, events)

Inputs: name (required), events (required), target (required), auth_type.

delete_webhookA

Delete a single webhook by id

Inputs: id (required).

get_accountA

Get SparkPost EU account info and usage

Inputs: no named parameters.

get_deliverability_metricsC

Get deliverability metrics (from + metrics required; group_by selects a breakdown dimension)

Inputs: from (required), metrics (required), to, limit, +2 more.

get_recipient_listB

Get a recipient list by id (optionally with recipients)

Inputs: id (required), show_recipients.

get_templateB

Get a specific template by ID

Inputs: template_id (required), draft.

list_recipient_listsB

List all recipient lists

Inputs: no named parameters.

list_sending_domainsA

List all verified sending domains

Inputs: no named parameters.

list_subaccountsB

List all subaccounts

Inputs: no named parameters.

list_templatesA

List all email templates

Inputs: no named parameters.

list_webhooksC

List all webhooks

Inputs: no named parameters.

remove_suppressionC

Remove the suppression entry for one email

Inputs: email (required).

search_message_eventsA

Search message events (one page; cursor + per_page for paging)

Inputs: to, from, cursor, events, +3 more.

send_emailC

Send a test/transactional email

Inputs: to (required), from_email (required), html, subject, +2 more.

update_templateC

Update an existing template

Inputs: template_id (required), html, text, subject, +1 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 20 tools

    Disambiguation5/5

    Each tool targets a distinct resource and action (e.g., suppression, template, webhook). Even similar verbs like 'list' and 'get' are clearly separated by resource and operation.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_template, list_webhooks). No mixing of styles or vague verbs.

    Tool Count5/5

    20 tools cover the broad scope of an email service API (account, suppression, templates, webhooks, subaccounts, etc.) without being excessive. Each tool earns its place.

    Completeness3/5

    Covers core CRUD for most resources but misses some delete/update operations (e.g., no delete for templates, recipient lists, subaccounts; no update for webhooks). Still functional for common workflows.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      Provides an interface to manage email marketing, contact lists, dynamic templates, and email analytics via SendGrid's API.
      21
      297 npm
      32
      ISC
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables sending and managing emails via Postmark, including email delivery with templates, template listing, and delivery statistics.
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables sending emails (including mass emailing), querying, updating, and canceling delayed emails via the Resend API.
      -
    • A
      license
      A
      quality
      D
      maintenance
      Enables sending transactional email and monitoring delivery via the Postmark API, with tools for email, templates, bounces, messages, stats, and suppressions, including a read-only mode.
      28
      MIT