CamelMailer MCP Server
Official# CamelMailer MCP Server
[](https://github.com/camelmailer/camelmailer-mcp/actions/workflows/ci.yml)
[](https://www.npmjs.com/package/camelmailer-mcp)
[](LICENSE)
[Model Context Protocol](https://modelcontextprotocol.io) server for [CamelMailer](https://camelmailer.com) — lets AI assistants like Claude send and inspect transactional email. Works with the CamelMailer cloud and any self-hosted instance.
## Setup
You need a server API key from your CamelMailer dashboard.
### Claude Desktop
Add to `claude_desktop_config.json` (Settings → Developer → Edit Config):
```json
{
"mcpServers": {
"camelmailer": {
"command": "npx",
"args": ["-y", "camelmailer-mcp"],
"env": {
"CAMELMAILER_API_KEY": "cm_xxxx"
}
}
}
}
```
> Until the packages land on npm, use the GitHub source instead:
> `"args": ["-y", "github:camelmailer/camelmailer-mcp"]`
### Claude Code
```bash
claude mcp add camelmailer -e CAMELMAILER_API_KEY=cm_xxxx -- npx -y camelmailer-mcp
```
### Self-hosted instances
Point the server at your own instance (defaults to `https://app.camelmailer.com`):
```json
"env": {
"CAMELMAILER_API_KEY": "cm_xxxx",
"CAMELMAILER_BASE_URL": "https://mail.example.com"
}
```
## Tools
| Tool | Description |
| --- | --- |
| `send_email` | Send an email with `html_body` / `text_body` |
| `send_email_with_template` | Render a stored template against variables and send |
| `list_emails` | List messages (filter by scope, status, tag, query, stream) |
| `get_email` | One message incl. SMTP delivery attempts |
| `list_templates` | All stored message templates |
| `render_template` | Preview a rendered template — no send |
| `get_stats` | Message counters (sent, bounced, opens, clicks, …) |
| `list_bounces` | Bounced messages |
| `dmarc_summary` | DMARC pass rate and top sending sources |
Example prompts:
> Send a plain-text email from billing@acme.com to ada@example.com thanking her for the purchase.
> Why did yesterday's emails to @gmail.com addresses bounce?
> What's our DMARC pass rate for acme.com this month?
## Errors
API failures come back as tool errors carrying the stable CamelMailer error code (`Unauthorized`, `NotFound`, `ValidationError`, …), so the assistant can react — nothing crashes the server.
## Docs
Full API reference: [camelmailer.com/docs](https://camelmailer.com/docs) · SDK: [camelmailer-node](https://github.com/camelmailer/camelmailer-node) · CLI: [camelmailer-cli](https://github.com/camelmailer/camelmailer-cli)
## License
[MIT](LICENSE)
TDQS
Scored across 9 tools
Each tool targets a distinct operation: raw send, template send, list, get, template list, preview, stats, bounces, and DMARC summary. There is no overlap or ambiguity among them.
Most tools follow a verb_noun pattern (send_email, list_emails, get_email, render_template). The exception is dmarc_summary, which lacks a verb, but the pattern is otherwise consistent and readable.
With 9 tools, the set is well-scoped for a transactional email server covering sending, retrieval, templating, stats, and DMARC. Each tool earns its place without being overwhelming or sparse.
Core email lifecycle (send, list, get, bounce) and monitoring (stats, DMARC) are covered. The main gap is lack of template create/update/delete, but since templates can be managed externally, this is a minor workaround.