Skip to main content
Glama
Groundmail

groundmail-mcp

Official
README.md
# 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

B3.4/5.0

Scored across 19 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness4/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo issues