io.github.spruikco/send16-mcp
Email for AI agents: send mail, manage contacts, automations & webhooks. Zero-DNS first send.
Open source Repository Open in the app JSON README (API)
About
Email for AI agents: send mail, manage contacts, automations & webhooks. Zero-DNS first send.
Details
- Kind
- MCP servers
- Topic
- Communication
- Publisher
- spruikco
- Origin
- official
- Category
- ferramentas
- Transport
- http
- Version
- 0.5.8
- Last push
- 2026-07-19T18:26:57Z
- Repository state
- ativo
- Language
- JavaScript
- License
- MIT
- Added
- 2026-08-29 04:01:26
- Updated
- 2026-08-29 04:01:26
- Origin id
io.github.spruikco/send16-mcp
README
# send16-mcp
[](https://www.npmjs.com/package/send16-mcp)
[](https://www.npmjs.com/package/send16-mcp)
[](https://modelcontextprotocol.io)
[](./LICENSE)
**The email API your AI agent can actually use.** A [Model Context Protocol](https://modelcontextprotocol.io) server for [Send16](https://send16.com) that gives Claude, Cursor, and any MCP client **79 tools** to send transactional & marketing email, manage contacts, audiences, segments, automations, templates, the inbox, suppressions, and webhooks — from natural language.
It ships a **zero-DNS sandbox sender**, so an agent can send its first real, delivered email in seconds with no domain setup.
```bash
npx send16-mcp
```
---
## Quick start
You need a Send16 API key (`sk_live_…`) from your [dashboard](https://send16.com/dashboard/developers). Then pick your client:
### Claude Desktop / Claude Code
`claude_desktop_config.json` (macOS: `~/Library/Application Support/Claude/`, Windows: `%APPDATA%\Claude\`):
```json
{
"mcpServers": {
"send16": {
"command": "npx",
"args": ["-y", "send16-mcp"],
"env": { "SEND16_API_KEY": "sk_live_..." }
}
}
}
```
### Cursor
`.cursor/mcp.json`:
```json
{
"mcpServers": {
"send16": {
"command": "npx",
"args": ["-y", "send16-mcp"],
"env": { "SEND16_API_KEY": "sk_live_..." }
}
}
}
```
Windsurf, VS Code, and any stdio-capable MCP client work the same way — run the `send16-mcp` binary with `SEND16_API_KEY` in the environment.
### Hosted (no install)
For clients that only speak *remote* MCP (Claude web connectors, ChatGPT custom GPTs), point them at the hosted endpoint and authenticate with your key:
```
https://mcp.send16.com
```
One connection, your own `sk_live_…` key — no install, no config file.
---
## First send in seconds — no DNS
Most email APIs make you verify a domain before you can send *anything*, which blocks an unattended agent on step one. Send16's sandbox sender doesn't:
1. Ask the agent to call `whoami` — it returns your workspace and your `sandbox_recipient` (your account owner's email).
2. Send `from: "onboarding@send16.com"` to that address. It delivers with **zero DNS setup**.
3. Verify a domain later to send to anyone.
> *"Send a test email from onboarding@send16.com to my account email with the subject 'It works'."*
---
## What it can do
79 tools across the platform, including:
- **Email** — `send_email` (single/batch/scheduled/attachments), transactional templates, delivery status.
- **Marketing** — campaigns, broadcasts, automations, segments, subscription topics.
- **Contacts** — create/search/list/import, audiences, tags, custom fields.
- **Deliverability** — domains, DNS health (SPF/DKIM/DMARC), IP warming & sending capacity.
- **Inbox** — read and manage transactional replies.
- **Webhooks** — create/list/rotate outgoing webhook endpoints (HMAC-SHA256 signed).
Every tool also accepts an optional `apiKey` parameter that overrides `SEND16_API_KEY`, so you can switch workspaces in one session.
## Environment
| Variable | Required | Description |
|---|---|---|
| `SEND16_API_KEY` | Yes | Your Send16 key (`sk_live_…`) |
| `SEND16_API_URL` | No | API base URL (default: `https://api.send16.com`) |
| `SEND16_MCP_PORT` | No | If set, serves **Streamable HTTP** (multi-tenant) instead of stdio |
## Self-hosting the HTTP connector
Presence of `SEND16_MCP_PORT` flips the server into multi-tenant HTTP mode — each request carries its own `Authorization: Bearer sk_live_…`, threaded through the whole request, so one process serves many users:
```bash
docker build -t send16-mcp . && docker run -p 4242:4242 send16-mcp
```
## Develop
```bash
npm install
SEND16_API_KEY=sk_live_... npm run dev # run from source
npm run build # bundle to dist/
```
## Links
- **Site & docs:** https://send16.com · https://send16.com/docs
- **npm:** https://www.npmjs.com/package/send16-mcp
- **Status:** https://status.send16.com
## License
MIT © Spruik Co