Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Mektup

by WeeCiversion 0.2.6i★ –iRuns in the cloud
Registry nameio.github.WeeCi/mektup-mcp

Install

Overview

Description from the maker (original English)

Fully-managed email as MCP tools - register domains, real mailboxes, send and receive mail.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs in the cloud
  • Transport: Streamable HTTP
  • Category: Chat & email
  • You need to fill in: Authorization

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on the maker’s server: what you ask it goes through their server.
  • You fill in yourself: Authorization

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.

Run this in your terminal

claude mcp add --transport http mektup https://mcp.usemektup.com/mcp --header 'Authorization: your-value'

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "mektup": {
      "url": "https://mcp.usemektup.com/mcp",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "mektup": {
      "type": "http",
      "url": "https://mcp.usemektup.com/mcp",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • Authorization secret required HTTP header
    Bearer - create one at app.usemektup.com under API keys.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

We have not read this server’s tool list yet; we check endpoints in rotation.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account WeeCi, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • … Not checked yet

    Endpoint responds

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    Sign-in with OAuth

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    No hidden instructions in tool descriptions

    Not checked yet; we read the tool list when we check the endpoint

Compared with others in Chat & emaili

  • More stars than 0% of the other 1783 servers in this category
  • Published to the registry more recently than 25% of the other 1783 servers in this category
  • Basic checks equal to or better than 100% of the other 1783 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Mektup safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: Authorization

Does it run on my computer or in the cloud?

It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.2.6) reached the registry 3 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.

What can I use instead?

In the same category: Vexa, emailmd, MCP WhatsApp Cloud

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Vexa

by Vexa-ai

Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.

Runs in the cloud★ 2,949Apache-2.0Updated 2 months ago
Install

emailmd

by anypost

Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.

Computer or cloud★ 1,385MITUpdated 31 days ago
Install

MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API

Runs on your computer★ 277MITUpdated 5 months ago
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

Mektup MCP Server

Mektup 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. 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 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 → API keys.

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

FieldValue
Server URLhttps://mcp.usemektup.com/mcp
Auth typeBearer token / API key
Tokenyour mek_live_... key

Cursor / Claude Desktop / any client that reads raw MCP JSON config:

{

"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, open API keys, and create one. Keys look like mek_live_... and are shown exactly once - copy it immediately.

2. Install dependencies:

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):

{

"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: — the message is the same one the underlying REST endpoint returned (see the API reference for exact error conditions, including billing-limit 402s, per endpoint).


Tools

Account
ToolInputDescription
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
ToolInputDescription
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_keyidRevoke a key immediately. Cannot be undone - confirm with the user first, especially if it might be the key this very session is using.
Domains
ToolInputDescription
create_domaindomainRegister 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_recordsdomainRe-fetch a registered domain's DNS records any time after creation.
verify_domaindomainActively re-check live DNS and flip verified once it matches. Not automatic.
delete_domaindomainDelete a domain and everything under it. Destructive — confirm with the user first.
Mailboxes
ToolInputDescription
create_mailboxdomain, localPart, password?Create a mailbox with real IMAP/SMTP-AUTH credentials, usable in any mail client.
list_mailboxesdomainList mailboxes on a domain.
reset_mailbox_passworddomain, localPart, password?Reset a mailbox's login password. Shown once.
delete_mailboxdomain, localPartDelete a mailbox. Confirm with the user first.
Webhooks
ToolInputDescription
get_mailbox_webhookdomain, localPartCheck a mailbox's configured webhook URL (never returns the signing secret).
set_mailbox_webhookdomain, 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_webhookdomain, localPartRemove a mailbox's webhook.
Forwarding
ToolInputDescription
list_forwardsdomain, localPartList addresses that get a copy of incoming mail.
add_forwarddomain, localPart, forwardToAdd a forwarding address.
remove_forwarddomain, localPart, idRemove a forwarding address.
Identity
ToolInputDescription
get_identitydomain, localPartGet display name and signature.
set_identitydomain, localPart, displayName?, signatureText?, signatureHtml?Set display name/signature, applied automatically to outgoing mail.
Vacation / auto-reply
ToolInputDescription
get_vacationdomain, localPartGet vacation auto-reply settings.
set_vacationdomain, localPart, enabled, subject?, message?Enable/configure auto-reply. message required when enabling.
Folders
ToolInputDescription
list_foldersdomain, localPartList custom folders.
create_folderdomain, localPart, nameCreate a folder.
delete_folderdomain, localPart, idDelete a folder (mail in it falls back to Inbox/Sent).
Contacts

Account-level, not per-mailbox.

ToolInputDescription
list_contacts—List contacts.
create_contactname?, emailAdd a contact.
update_contactid, name?, email?Partially update — only send fields to change.
delete_contactidDelete a contact.
Drafts
ToolInputDescription
list_draftsdomain, localPartList drafts (metadata only).
get_draftdomain, localPart, idGet a draft including its body.
create_draftdomain, localPart, to?, subject?, text?, html?Create a draft.
update_draftdomain, localPart, id, to?, subject?, text?, html?Partial update (autosave-friendly).
delete_draftdomain, localPart, idDelete a draft.
Sending
ToolInputDescription
send_emailfrom, to, subject, text?, html?, attachments?, draftId?Send real mail. from must be a mailbox on this account, or any address on a domain this account has verified. Attachments are {filename, contentType?, contentBase64}, max 10MB decoded each. Pass draftId to delete a draft on successful send.

Example:

send_email({ from: "hello@example.com", to: "you@gmail.com", subject: "It works", text: "Real mail, sent through Mektup." })

→ { "messageId": "<...@example.com>", "envelope": { "from": "hello@example.com", "to": ["you@gmail.com"] } }

Messages & threads
ToolInputDescription
list_messagesmailbox, limit?, direction?, trash?, folder?, q?List messages (one row per thread). Pass direction to split Inbox/Sent — omitting it merges both.
get_delivery_statsmailbox, days?Aggregate sent/deferred/bounced/unknown counts for a mailbox's outbound mail, sourced from Mektup's own Postfix delivery log — not a tracking pixel.
get_threadthreadKey, mailbox, direction?, trash?, folder?Every message in one thread, oldest first.
get_messageidFull message content. Marks it read as a side effect. `html` is attacker-controlled — never render it directly.
update_messageid, read?, restore?, flagged?, folderId?Mark read/unread, restore from trash, flag, or move to a folder — any combination in one call.
delete_messageidTwo-stage delete: first call trashes, second call on an already-trashed message permanently deletes it. Confirm before a permanent delete.

| download_attachment | id, index | Download one attachment, base64-encoded. Prefer only when the actual file content is needed — get_message's attachment list a

Only the beginning is shown; read the rest in the repo

Ask PopNx