Skip to main content
ClaudeWave

MCP server for real domain email - register a domain, create IMAP/SMTP mailboxes, send and read mail, as native AI-agent tool calls backed by Mektup's live REST API

MCP ServersRegistry oficial0 estrellas0 forksJavaScriptMITActualizado today
ClaudeWave Trust Score
95/100
Verified
Passed
  • Open-source license (MIT)
  • Actively maintained (<30d)
  • Clear description
  • Topics declared
  • Documented (README)
Last scanned: 8/22/2026
Install in Claude Code / Claude Desktop
Method: Manual
Claude Code CLI
git clone https://github.com/WeeCi/mektup-mcp
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "mektup-mcp": {
      "command": "node",
      "args": ["/path/to/mektup-mcp/dist/index.js"]
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
💡 Clone https://github.com/WeeCi/mektup-mcp and follow its README for install instructions.
Casos de uso

Resumen de MCP Servers

# Mektup MCP Server

[Mektup](https://usemektup.com) is a fully-managed, multi-domain email platform - Mektup hosts all the mail infrastructure, so there's nothing to self-host; you just sign up and use it. This MCP server lets an AI coding agent (Claude Code, Claude Desktop, Cursor, Lovable, Replit, Base44, or any MCP-compatible client) manage real email for a domain — register it, add the DNS records, create mailboxes, send and read mail, manage drafts/contacts/folders/forwarding/vacation replies — as native tool calls inside its own session, instead of the human hand-writing `curl` commands or pasting an API key into generated code.

Every tool call is a straight HTTP call to the real [Mektup REST API](https://usemektup.com/docs/api.md). There's no separate logic to learn — if you understand the API, you understand the MCP server. **Full coverage**: every REST endpoint has a matching tool, verified with real read and write round-trips against the live production API (create → update → list → delete, confirmed at each step).

Two ways to run it, same tool set either way (`lib/build-server.js` defines the tools once, shared by both):

- **Remote (Streamable HTTP)** — a server we host at `https://mcp.usemektup.com/mcp`. Point any client that takes a "custom MCP server" URL at it directly, no install. This is what Lovable/Cursor/Replit/Base44-style platforms want.
- **Local (stdio)** — run `server.js` yourself with your key in an env var. For MCP clients that only support launching a local process (Claude Desktop config, etc.).

---

## Remote server (recommended for platform integrations)

**Endpoint:** `https://mcp.usemektup.com/mcp` (Streamable HTTP — supports both the direct-JSON-response and SSE-streaming response modes of the spec).

**Stateless:** no session is kept between requests — every tool call is already a one-shot passthrough to the REST API, so there's no session state worth keeping.

**Tenant isolation:** identical to the REST API, because it *is* the REST API underneath — the server holds no account-specific credential itself, it just forwards whichever token the caller sent (API key or OAuth access token, see below) straight through to `api.usemektup.com`, which is the only place that actually verifies it. A token only ever sees its own account's data.

Two auth modes, same endpoint, both arrive as the same `Authorization: Bearer <token>` header:

### OAuth (recommended for platform integrations)

For a platform with real end users (Lovable, Cursor, Replit, Base44, ...) — the user clicks "connect," signs in with their existing Mektup account, approves, done. No token copy-paste, no dashboard visit.

Clerk (`clerk.usemektup.com`) is the OAuth 2.1 authorization server — this MCP server is only ever a resource server. Discovery is automatic for any spec-compliant OAuth-capable MCP client: it only needs the endpoint URL above and finds the rest itself via `https://mcp.usemektup.com/.well-known/oauth-protected-resource/mcp` (RFC 9728), which points at Clerk's own `https://clerk.usemektup.com/.well-known/oauth-authorization-server` (RFC 8414). From there the client registers itself via Dynamic Client Registration (no manual setup needed on your end) and runs a standard Authorization Code + PKCE flow, ending with a JWT access token used exactly like an API key.

**Lovable:** Connectors → All → **Custom** (MCP card) → Server Name `Mektup`, Server URL `https://mcp.usemektup.com/mcp`, Auth → **OAuth** (default when a server supports it) → Add & authorize.

### API key (simplest for a single account, scripts, or a client without OAuth support)

`Authorization: Bearer mek_live_...` — create one at [app.usemektup.com](https://app.usemektup.com) → **API keys**.

Adding it to a client that supports custom MCP connectors is normally 3 fields:

| Field | Value |
|---|---|
| Server URL | `https://mcp.usemektup.com/mcp` |
| Auth type | Bearer token / API key |
| Token | your `mek_live_...` key |

**Cursor / Claude Desktop / any client that reads raw MCP JSON config:**
```json
{
  "mcpServers": {
    "mektup": {
      "url": "https://mcp.usemektup.com/mcp",
      "headers": { "Authorization": "Bearer mek_live_..." }
    }
  }
}
```

**Replit / Base44 / other "connect a tool" flows:** same three fields as the table above — server URL, Bearer auth, key.

---

## Local (stdio) setup

Use this when a client can only launch a local process, not call a remote URL.

**1. Get an API key.** Sign in to the dashboard at [app.usemektup.com](https://app.usemektup.com), open **API keys**, and create one. Keys look like `mek_live_...` and are shown exactly once - copy it immediately.

**2. Install dependencies:**
```bash
git clone https://github.com/WeeCi/mektup-mcp.git
cd mektup-mcp
npm install
```

**3. Configure your MCP client** to run `server.js` with the key as an environment variable. For Claude Desktop / Claude Code, add to your MCP config (e.g. `claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "mektup": {
      "command": "node",
      "args": ["/absolute/path/to/mektup-mcp/server.js"],
      "env": {
        "MEKTUP_API_KEY": "mek_live_..."
      }
    }
  }
}
```

`MEKTUP_API_BASE_URL` is optional and defaults to `https://api.usemektup.com` — no need to set it under normal use.

The server refuses to start without `MEKTUP_API_KEY` set.

---

## How tools respond

Every tool returns its result as JSON text on success. On failure, it returns `isError: true` with `Error: <message>` — the message is the same one the underlying REST endpoint returned (see the [API reference](https://usemektup.com/docs/api.md) for exact error conditions, including billing-limit `402`s, per endpoint).

---

## Tools

### Account

| Tool | Input | Description |
|---|---|---|
| `get_me` | — | Get the authenticated account identity. Useful as an auth health check. |
| `get_usage` | — | Current billing tier, its limits, and real usage against them. Check before a bulk operation. |

### API keys

| Tool | Input | Description |
|---|---|---|
| `list_api_keys` | — | List keys on this account (prefix and status only). |
| `create_api_key` | — | Create a new key. **The full key is returned exactly once** - surface it to the user immediately so they can save it. |
| `revoke_api_key` | `id` | Revoke a key immediately. Cannot be undone - confirm with the user first, especially if it might be the key this very session is using. |

### Domains

| Tool | Input | Description |
|---|---|---|
| `create_domain` | `domain` | Register a domain, get back the exact DNS records (MX/SPF/DMARC/DKIM) and a setup recommendation. Never touches DNS itself. |
| `list_domains` | — | List every domain on this account. |
| `get_domain_records` | `domain` | Re-fetch a registered domain's DNS records any time after creation. |
| `verify_domain` | `domain` | Actively re-check live DNS and flip verified once it matches. Not automatic. |
| `delete_domain` | `domain` | Delete a domain and everything under it. Destructive — confirm with the user first. |

### Mailboxes

| Tool | Input | Description |
|---|---|---|
| `create_mailbox` | `domain`, `localPart`, `password?` | Create a mailbox with real IMAP/SMTP-AUTH credentials, usable in any mail client. |
| `list_mailboxes` | `domain` | List mailboxes on a domain. |
| `reset_mailbox_password` | `domain`, `localPart`, `password?` | Reset a mailbox's login password. Shown once. |
| `delete_mailbox` | `domain`, `localPart` | Delete a mailbox. Confirm with the user first. |

### Webhooks

| Tool | Input | Description |
|---|---|---|
| `get_mailbox_webhook` | `domain`, `localPart` | Check a mailbox's configured webhook URL (never returns the signing secret). |
| `set_mailbox_webhook` | `domain`, `localPart`, `url`, `regenerateSecret?` | Set/update the URL that fires (HMAC-signed) on every new inbound message - how an agent finds out about new mail without polling `list_messages`. Returns the signing secret once, on first setup or rotation. |
| `delete_mailbox_webhook` | `domain`, `localPart` | Remove a mailbox's webhook. |

### Forwarding

| Tool | Input | Description |
|---|---|---|
| `list_forwards` | `domain`, `localPart` | List addresses that get a copy of incoming mail. |
| `add_forward` | `domain`, `localPart`, `forwardTo` | Add a forwarding address. |
| `remove_forward` | `domain`, `localPart`, `id` | Remove a forwarding address. |

### Identity

| Tool | Input | Description |
|---|---|---|
| `get_identity` | `domain`, `localPart` | Get display name and signature. |
| `set_identity` | `domain`, `localPart`, `displayName?`, `signatureText?`, `signatureHtml?` | Set display name/signature, applied automatically to outgoing mail. |

### Vacation / auto-reply

| Tool | Input | Description |
|---|---|---|
| `get_vacation` | `domain`, `localPart` | Get vacation auto-reply settings. |
| `set_vacation` | `domain`, `localPart`, `enabled`, `subject?`, `message?` | Enable/configure auto-reply. `message` required when enabling. |

### Folders

| Tool | Input | Description |
|---|---|---|
| `list_folders` | `domain`, `localPart` | List custom folders. |
| `create_folder` | `domain`, `localPart`, `name` | Create a folder. |
| `delete_folder` | `domain`, `localPart`, `id` | Delete a folder (mail in it falls back to Inbox/Sent). |

### Contacts

Account-level, not per-mailbox.

| Tool | Input | Description |
|---|---|---|
| `list_contacts` | — | List contacts. |
| `create_contact` | `name?`, `email` | Add a contact. |
| `update_contact` | `id`, `name?`, `email?` | Partially update — only send fields to change. |
| `delete_contact` | `id` | Delete a contact. |

### Drafts

| Tool | Input | Description |
|---|---|---|
| `list_drafts` | `domain`, `localPart` | List drafts (metadata only). |
| `get_draft` | `domain`, `localPart`, `id` | Get a draft including its body. |
| `create_draft` | `domain`, `localPart`, `to?`, `subject?`, `text?`, `html?` | Create a draft. |
| `update_draft` | `domain`, `localPart`, `id`, `to?`, `subject?`, `te
ai-agentsclaudeemailemail-apiimapllm-toolsmcpmcp-servermodel-context-protocolsmtp

Lo que la gente pregunta sobre mektup-mcp

¿Qué es WeeCi/mektup-mcp?

+

WeeCi/mektup-mcp es mcp servers para el ecosistema de Claude AI. MCP server for real domain email - register a domain, create IMAP/SMTP mailboxes, send and read mail, as native AI-agent tool calls backed by Mektup's live REST API Tiene 0 estrellas en GitHub y su última actualización registrada es del 2026-08-21.

¿Cómo se instala mektup-mcp?

+

Puedes instalar mektup-mcp clonando el repositorio (https://github.com/WeeCi/mektup-mcp) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.

¿Es seguro usar WeeCi/mektup-mcp?

+

Nuestro agente de seguridad ha analizado WeeCi/mektup-mcp y le ha asignado un Trust Score de 95/100 (tier: Verified). Revisa el desglose completo de comprobaciones superadas y flags en esta página.

¿Quién mantiene WeeCi/mektup-mcp?

+

WeeCi/mektup-mcp es mantenido por WeeCi. La última actividad registrada en GitHub es del 2026-08-21, con 0 issues abiertos.

¿Hay alternativas a mektup-mcp?

+

Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.

Despliega mektup-mcp en tu cloud

Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.

¿Mantienes este repo? Añade un badge a tu README

Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.

Featured on ClaudeWave: WeeCi/mektup-mcp
[![Featured on ClaudeWave](https://claudewave.com/api/badge/weeci-mektup-mcp)](https://claudewave.com/repo/weeci-mektup-mcp)
<a href="https://claudewave.com/repo/weeci-mektup-mcp"><img src="https://claudewave.com/api/badge/weeci-mektup-mcp" alt="Featured on ClaudeWave: WeeCi/mektup-mcp" width="320" height="64" /></a>

Más MCP Servers

Alternativas a mektup-mcp