# SendPulse MCP server

> Manage SendPulse email campaigns, CRM, chatbots, SMTP and courses from an AI assistant through the SendPulse API.

- Listing: https://mcp.tc/i/sendpulse
- Connect: use the server's own URL `https://mcp.sendpulse.com/mcp` (with your API key); clients connect to it directly. The listing link is a page, not an MCP endpoint.
- Type: remote (Streamable HTTP)
- Auth: API key
- Category: [Marketing & SEO](https://mcp.tc/c/marketing-seo)
- Vendor: SendPulse
- Homepage: <https://sendpulse.com/features/mcp>
- Repository: <https://github.com/sendpulse/mcp-server>

## About

Connects an AI assistant to a SendPulse account through the SendPulse API. It can fetch statistics, run message campaigns, update user data and work with email marketing, CRM, chatbots, SMTP and course features such as students and assignments.

The server is hosted at https://mcp.sendpulse.com/mcp and uses Streamable HTTP. MCP clients such as Claude Desktop or Cursor can sign in with OAuth, or you can send your SendPulse REST API ID and secret in the X-SP-ID and X-SP-SECRET headers.

## What it can do

- Request account and campaign statistics
- Run email and message campaigns
- Update user and contact data
- Work with CRM records
- Manage chatbots
- Send transactional email through SMTP
- Manage courses, students and assignment grading

## Example prompts

- "Show statistics for my latest SendPulse email campaign."
- "Update the contact data for this subscriber in SendPulse."
- "Run a message campaign to my newsletter list."
- "List students in my SendPulse course and grade pending assignments."

## Install

### Claude Code

1. Run this in a terminal, in your project folder:

```bash
claude mcp add --transport http sendpulse https://mcp.sendpulse.com/mcp --header "X-SP-ID: <YOUR_X_SP_ID>" --header "X-SP-SECRET: <YOUR_X_SP_SECRET>"
```

2. Replace the placeholder with your key before you run it, then check it with `/mcp` inside Claude Code.

Add `--scope user` to make it available in every project, not just this one.

### Claude Desktop

1. Custom connectors can’t send this server’s key header, so use the `mcp-remote` bridge. Open **Settings → Developer → Edit Config** and add:

`claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "sendpulse": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.sendpulse.com/mcp",
        "--header",
        "X-SP-ID: <YOUR_X_SP_ID>",
        "--header",
        "X-SP-SECRET: <YOUR_X_SP_SECRET>"
      ]
    }
  }
}
```

2. Replace the placeholder with your key and restart Claude Desktop.

The bridge needs Node.js on your computer.

### Cursor

[Add to Cursor](<https://cursor.com/install-mcp?name=sendpulse&config=eyJ1cmwiOiJodHRwczovL21jcC5zZW5kcHVsc2UuY29tL21jcCIsImhlYWRlcnMiOnsiWC1TUC1JRCI6IjxZT1VSX1hfU1BfSUQ%2BIiwiWC1TUC1TRUNSRVQiOiI8WU9VUl9YX1NQX1NFQ1JFVD4ifX0%3D>) (opens Cursor)

Or add it by hand to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (this project):

`mcp.json`:

```json
{
  "mcpServers": {
    "sendpulse": {
      "url": "https://mcp.sendpulse.com/mcp",
      "headers": {
        "X-SP-ID": "<YOUR_X_SP_ID>",
        "X-SP-SECRET": "<YOUR_X_SP_SECRET>"
      }
    }
  }
}
```

### VS Code

Add it to `.vscode/mcp.json`. VS Code asks for the key the first time and stores it securely:

`.vscode/mcp.json`:

```json
{
  "servers": {
    "sendpulse": {
      "type": "http",
      "url": "https://mcp.sendpulse.com/mcp",
      "headers": {
        "X-SP-ID": "${input:x-sp-id}",
        "X-SP-SECRET": "${input:x-sp-secret}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "x-sp-id",
      "description": "X-SP-ID",
      "password": true
    },
    {
      "type": "promptString",
      "id": "x-sp-secret",
      "description": "X-SP-SECRET",
      "password": true
    }
  ]
}
```

### Devin Desktop

1. Add it to `~/.config/devin/mcp_config.json` (macOS and Linux) or `%APPDATA%\devin\mcp_config.json` (Windows):

`mcp_config.json`:

```json
{
  "mcpServers": {
    "sendpulse": {
      "serverUrl": "https://mcp.sendpulse.com/mcp",
      "headers": {
        "X-SP-ID": "<YOUR_X_SP_ID>",
        "X-SP-SECRET": "<YOUR_X_SP_SECRET>"
      }
    }
  }
}
```

2. Refresh the MCP server list in Cascade.

Devin Desktop is the new name for Windsurf. It reads `serverUrl` (or `url`) for remote servers.

### Codex

```bash
codex mcp add sendpulse --url https://mcp.sendpulse.com/mcp
```

Or edit `~/.codex/config.toml` directly:

`config.toml`:

```toml
[mcp_servers.sendpulse]
url = "https://mcp.sendpulse.com/mcp"
env_http_headers = { "X-SP-ID" = "X_SP_ID", "X-SP-SECRET" = "X_SP_SECRET" }
```

Codex reads the header values from the environment variables named in `env_http_headers`.

### Gemini CLI

```bash
gemini mcp add --transport http --header "X-SP-ID: <YOUR_X_SP_ID>" --header "X-SP-SECRET: <YOUR_X_SP_SECRET>" sendpulse https://mcp.sendpulse.com/mcp
```

This adds it to the current project. Add `-s user` to use it everywhere.

### Any client

Most clients accept this shape. Some name the URL field differently: `serverUrl` in Devin Desktop, `httpUrl` in Gemini CLI’s settings file.

```json
{
  "mcpServers": {
    "sendpulse": {
      "type": "http",
      "url": "https://mcp.sendpulse.com/mcp",
      "headers": {
        "X-SP-ID": "<YOUR_X_SP_ID>",
        "X-SP-SECRET": "<YOUR_X_SP_SECRET>"
      }
    }
  }
}
```

Zed puts servers under `context_servers` in its settings. Cline needs `"type": "streamableHttp"`, or it assumes SSE.

Client only starts local servers? Bridge it with `npx -y mcp-remote https://mcp.sendpulse.com/mcp`.

## Details

- Server version: 1.0.0
- Last checked: 2026-10-03 (reachable, asks for credentials)
- Listed: 2026-10-03
- Updated: 2026-10-03

---
Source: https://mcp.tc/i/sendpulse (mcp.tc is an independent directory, not affiliated with this server's publisher). Corrections: https://mcp.tc/report
