# engagelab-email [Health: Active]

**Category:** 💬 Communication  
**Repository:** https://github.com/Metaverse-Cloud/engagelab-email-mcp  
**GitHub Stars:** 0  
**npm Downloads (last month):** 15  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/engagelab-email

## Description
Send, receive, monitor and reply to email from AI agents with threaded inbox context.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "engagelab-email": {
    "command": "npx",
    "args": ["-y","@engagelabemail/mcp"]
  }
}
```

## Documentation & README

# EngageLab Agent Email MCP Server

[![npm](https://img.shields.io/npm/v/@engagelabemail/mcp)](https://www.npmjs.com/package/@engagelabemail/mcp)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
[![Node](https://img.shields.io/badge/node-%3E%3D20-green)](https://nodejs.org)

**English** | [简体中文](https://github.com/Metaverse-Cloud/engagelab-email-mcp/blob/HEAD/README.zh-CN.md)

> Official EngageLab Email project.

**Send, receive, and reply to email from AI agents** — through the [Model Context Protocol](https://modelcontextprotocol.io).

Each agent gets its **own mailbox**: a real address that sends *and* receives, with conversations grouped into threads so your agent has context. Works with Claude Desktop, Claude Code, Cursor, Cowork, and any MCP-compatible client.

```json
{
  "mcpServers": {
    "engagelab-email": {
      "command": "npx",
      "args": ["-y", "@engagelabemail/mcp"],
      "env": { "ENGAGELAB_EMAIL_SECRET_KEY": "sk_sg_your_key" }
    }
  }
}
```

## Why

Most email APIs are send-only. Agents that need to *have a conversation* over email — support, scheduling, approvals — need an inbox.

- **Send & receive** — the agent owns a dedicated mailbox, not a bolted-on parse webhook
- **Thread-aware** — replies group into conversations, so the agent sees full history
- **Sandbox mode** — test agent flows without emailing real humans
- **One env var** — no OAuth dance for local use; region inferred from the key

## Tools

| | Tool | What it does |
|---|---|---|
| **Discover** | `list_mailboxes` | List mailboxes; call this first to get IDs |
| **Send** | `send_email` | New email (text/html, cc/bcc, attachments, sandbox) |
| | `reply_email` | Reply to a message — recipients & thread inferred |
| **Receive** | `list_inbound_messages` | Inbound mail, filter by mailbox/keyword |
| | `get_message` | Full message details by UID |
| | `check_new_messages` | One-shot poll for new mail |
| **Threads** | `list_threads` / `get_thread` / `list_thread_messages` | Browse conversations |

## Quickstart

### Smithery / MCPB

For local stdio distribution, build an MCPB bundle:

```bash
npm run build:mcpb
```

The bundle is generated at `dist/engagelab-agent-email.mcpb` and can be uploaded through [Smithery publishing](https://smithery.ai/new).

### Official MCP Registry

EngageLab Agent Email is also listed in the [official MCP Registry](https://registry.modelcontextprotocol.io/?q=io.github.R1ghtHereWaiting%2Fengagelab-email). Clients that consume the Registry can find it by the server name `io.github.R1ghtHereWaiting/engagelab-email`; the underlying npm package remains [`@engagelabemail/mcp`](https://www.npmjs.com/package/@engagelabemail/mcp).

**1. Get a Secret Key.** Create an EngageLab account and generate a key from the console (format `sk_sg_xxx` — the prefix selects the region). Or use the [CLI](https://github.com/Metaverse-Cloud/engagelab-email-cli): `engagelab-email-cli login` creates one via browser.

**2. Create a mailbox.** In the console, create a mailbox for your agent (shared subdomain is instant; custom domains need DNS verification). Programmatic mailbox creation is on the roadmap — see [Troubleshooting](#troubleshooting) if `list_mailboxes` returns empty.

**3. Register the server.**

Claude Desktop — add the JSON block above to `claude_desktop_config.json`.

Claude Code:

```bash
claude mcp add engagelab-email \
  -e ENGAGELAB_EMAIL_SECRET_KEY=sk_sg_your_key \
  -- npx -y @engagelabemail/mcp
```

Then ask your agent:

> List my mailboxes, then send an email from the first one to bob@example.com saying the invoice is approved.

A typical agent loop for a support bot:

```
check_new_messages()            → [messageUids]
get_message(uid)                → body, attachments
list_thread_messages(threadId)  → full conversation context
reply_email(uid, { text: ... }) → response lands in the same thread
```

## Configuration

| Environment variable | Required | Description |
|---|---|---|
| `ENGAGELAB_EMAIL_SECRET_KEY` | Yes | Secret Key starting with `sk_` |
| `ENGAGELAB_EMAIL_BASE_URL` | No | Override the API base URL. Inferred from the key region: `sg` → Singapore, `tr` → Türkiye |

Limits: up to 10 attachments / 10MB total per message (base64-encoded in the tool schema).

## Troubleshooting

- **`list_mailboxes` returns an empty list** — your account has no mailbox yet. Create one in the EngageLab console (see Quickstart step 2). Agents cannot self-provision mailboxes yet.
- **401 / `code 100101`** — the Secret Key is wrong or revoked. Check `ENGAGELAB_EMAIL_SECRET_KEY` and that the key's region prefix (`sk_sg_` / `sk_tr_`) matches the endpoint you use.
- **Could not determine API base URL** — the key's region prefix isn't recognized. Set `ENGAGELAB_EMAIL_BASE_URL` explicitly.
- **Reply shows up as a new conversation** — use `reply_email` (not `send_email`) so In-Reply-To headers and threading stay intact.

## Roadmap

- [ ] Hosted MCP (OAuth) for zero-config remote use
- [ ] Programmatic mailbox creation via Secret Key
- [ ] Webhook push (no polling) for `check_new_messages`
- [ ] URL-based attachment references (no base64 in context)

## Run from source

```bash
git clone https://github.com/Metaverse-Cloud/engagelab-email-mcp
cd engagelab-email-mcp
npm install && npm run build
ENGAGELAB_EMAIL_SECRET_KEY=sk_sg_xxx node dist/index.cjs
```

## Related

- [EngageLab Agent Email CLI](https://github.com/Metaverse-Cloud/engagelab-email-cli) — same mailboxes from the terminal, `--json` output for agents
- [EngageLab Node SDK](https://github.com/Metaverse-Cloud/engagelab-email-node) / [Python SDK](https://github.com/Metaverse-Cloud/engagelab-email-python) — send email from code

## License

[MIT](https://github.com/Metaverse-Cloud/engagelab-email-mcp/blob/HEAD/LICENSE)

