groundmail-mcp
Official# groundmail-mcp
MCP server for [Groundmail](https://groundmail.dev): send email and manage domains, webhooks, suppressions and templates from Claude, Claude Code, ChatGPT, Cursor and other MCP clients.
**Install:** `npx -y groundmail-mcp` · **Docs:** https://docs.groundmail.dev/ai/mcp
## Transports
| Mode | Command / URL | Auth |
|------|---------------|------|
| **stdio** (default) | `npx -y groundmail-mcp` | `GROUNDMAIL_API_KEY=gm_…` |
| **HTTP** (local) | `npx -y groundmail-mcp --http --port 3000` | `Authorization: Bearer gm_…` on each request |
| **HTTP** (hosted) | `https://mcp.groundmail.dev/mcp` | **OAuth** (recommended) or `Authorization: Bearer gm_…` |
Optional: `GROUNDMAIL_API_URL` (e.g. `http://localhost:3003/api` for local API).
Local HTTP endpoint: `http://127.0.0.1:3000/mcp` · health: `GET /health`
Hosted health: `GET https://mcp.groundmail.dev/health`
Hosted OAuth: add only `"url": "https://mcp.groundmail.dev/mcp"` — the client runs the browser consent flow. Bearer `gm_…` still works for advanced setups.
---
## Cursor (stdio)
`.cursor/mcp.json`:
```json
{
"mcpServers": {
"groundmail": {
"command": "npx",
"args": ["-y", "groundmail-mcp"],
"env": {
"GROUNDMAIL_API_KEY": "gm_your_key_here"
}
}
}
}
```
### Cursor (local HTTP)
```bash
npx -y groundmail-mcp --http --port 3000
```
```json
{
"mcpServers": {
"groundmail": {
"url": "http://127.0.0.1:3000/mcp",
"headers": {
"Authorization": "Bearer gm_your_key_here"
}
}
}
}
```
### Cursor (hosted)
```json
{
"mcpServers": {
"groundmail": {
"url": "https://mcp.groundmail.dev/mcp",
"headers": {
"Authorization": "Bearer gm_your_key_here"
}
}
}
}
```
---
## Claude Code
```bash
# Hosted, OAuth: then run /mcp, pick groundmail, Authenticate
claude mcp add --transport http groundmail https://mcp.groundmail.dev/mcp
# Hosted, API key
claude mcp add --transport http groundmail https://mcp.groundmail.dev/mcp \
--header "Authorization: Bearer $GROUNDMAIL_API_KEY"
# Local stdio
claude mcp add groundmail --env GROUNDMAIL_API_KEY=gm_your_key_here -- npx -y groundmail-mcp
```
## Claude and ChatGPT
Add a custom connector with the URL `https://mcp.groundmail.dev/mcp` and sign in to Groundmail when prompted (ChatGPT needs developer mode). Step-by-step: https://docs.groundmail.dev/ai/mcp
---
## Tools
See https://docs.groundmail.dev/ai/mcp — emails, domains, webhooks, suppressions, templates, deliverability, webhook test.
## License
MIT
TDQS
Scored across 19 tools
Each tool targets a distinct resource+action across emails, domains, webhooks, suppressions, and templates; no two tools have overlapping purposes. Descriptions clearly differentiate similar-sounding operations like apply_domain_dns vs verify_domain.
All tools use snake_case with a consistent verb-first pattern (e.g., list_emails, create_domain, delete_webhook). Minor multi-word nouns like send_test_webhook_event still follow the convention without mixing styles.
19 tools is slightly above the ideal 3-15 range for a single service, but the breadth of subdomains (emails, domains, webhooks, suppressions, templates, deliverability) justifies each tool's existence. No obvious redundant tools are present.
Core lifecycle for emails, domains, webhooks, suppressions, and templates is largely covered, but update operations for templates and domains (e.g., update_template, delete_domain) are missing, leaving minor gaps. Agents can work around most scenarios.