Vexa
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Description from the maker (original English)
Email inboxes for AI agents: send, receive, search, drafts with owner approval, and webhooks.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
AuthorizationValues 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 cooper-email https://cooperemail.com/mcp --header 'Authorization: your-value'Fill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"cooper-email": {
"url": "https://cooperemail.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.
Paste into .vscode/mcp.json in your project
{
"servers": {
"cooper-email": {
"type": "http",
"url": "https://cooperemail.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.
Authorization secret HTTP headerThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
We have not read this server’s tool list yet; we check endpoints in rotation.
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 8, 2026
The registry name was verified against the domain cooperemail.com (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
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.
You need to fill in: Authorization
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.
The GitHub repo last changed –, and the latest version (1.4.0) reached the registry 28 days ago.
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.
In the same category: Vexa, emailmd, MCP WhatsApp Cloud
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
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.
MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API
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.
Email inboxes for AI agents. Give an agent its own address on cooperemail.com, let it send and receive real email over a simple HTTP API, get signed webhooks when mail arrives, and loop a human in by email when the agent needs a decision.
This repository holds the open-source client side of Cooper Email: the TypeScript and Python SDKs, framework tool packages, MCP client config, and examples. The hosted service itself is not in this repo.
your-agent@cooperemail.com), and an API key. No dashboard needed.client_id.progress / needs_input / done / error updates, and receive their replies as tasks you can long-poll and answer in-thread. Replies carry SPF/DKIM/DMARC results and a verified_owner flag.message.received, message.sent, task.received, and owner.reply, signed with HMAC-SHA256 (x-cooper-signature: sha256= ), optionally filtered to one inbox.https://cooperemail.com/mcp works with Claude, ChatGPT, Cursor, and other MCP clients.com.cooperemail/cooper-email/plugin marketplace add cooper-email/cooper-email, then /plugin install cooper-email@cooper-emailSupported through a config file; no directory listing yet. Copy-paste configs: https://cooperemail.com/integrations
The same list is published at https://cooperemail.com/#available-on and in https://cooperemail.com/llms.txt.
This repository is also a Cursor plugin (.cursor-plugin/plugin.json). It registers the hosted MCP server https://cooperemail.com/mcp (OAuth sign-in on first use; no key in the config) and adds these skills from skills/:
| Skill | What it covers |
|---|---|
cooper-email | Overview: connect, everyday tools, checking mail, safety |
cooper-agent-inbox | Create an inbox, send, read, reply, wait for mail |
cooper-check-email | Read, search, triage, attachments, read/unread labels |
cooper-send-email | Send, reply, forward, drafts, scheduled send, idempotent retries |
cooper-manage-inboxes | Create (single, batch, temporary), pause, update, delete inboxes |
cooper-owner-approval | Owner-approved drafts: a human approves each send by email |
cooper-agent-signup-otp | Sign up as the agent and read the emailed verification code |
cooper-owner-updates | Progress emails and daily digests to an owner; replies become tasks |
cooper-custom-domains | Inboxes on your own domain (Starter and Pro) |
cooper-mcp | MCP setup and troubleshooting for Cursor and other clients |
cooper-agent-email-patterns | Architecture patterns and threat model for agent email |
cooper-webhooks | One-call push webhooks, signature checks, test and re-enable |
cooper-suppressions-bounces | Bounces, complaints, the suppression list, and rates |
cooper-idempotent-sends | Retry-safe sends and creates with idempotency keys |
cooper-sms | SMS status (coming soon) and the email alternatives today |
To try it locally before it is listed, copy this repository into ~/.cursor/plugins/local/cooper-email and run Developer: Reload Window. To use an API key instead of OAuth, see skills/cooper-mcp.
The cooper-email npm package is not published yet. Connect the hosted MCP server and install the skills from this repository.
Hosted MCP: https://cooperemail.com/mcp (Streamable HTTP). Sign in with OAuth on first use, or send Authorization: Bearer coop_live_…. Per-client steps are in Connect the hosted MCP server. In Cursor, the plugin above registers that server.
Skills: the guides in skills/, listed in the table above. Install one with the skills CLI:
npx skills add cooper-email/cooper-email --skill cooper-email
Replace cooper-email with any other name from that table (cooper-check-email, cooper-send-email, cooper-mcp, and the rest). The skill is written to ~/.agents/skills/ / and, for Claude Code, ~/.claude/skills/ /.
| Package | Language | Install | Source |
|---|---|---|---|
cooper-email | TypeScript / JavaScript SDK | npm install cooper-email | packages/cooper-email |
cooper-email | Python | pip install cooper-email | packages/cooper-email-python |
cooper-email-langchain | TypeScript | npm install cooper-email-langchain | packages/langchain |
cooper-email-langchain | Python | pip install cooper-email-langchain | packages/langchain-py |
cooper-email-ai (Vercel AI SDK) | TypeScript | npm install cooper-email-ai | packages/ai |
cooper-email-mastra | TypeScript | npm install cooper-email-mastra | packages/mastra |
cooper-email-anthropic | TypeScript | npm install cooper-email-anthropic | packages/anthropic |
cooper-email-anthropic | Python | pip install cooper-email-anthropic | packages/anthropic-py |
cooper-email-openai-agents | TypeScript | npm install cooper-email-openai-agents | packages/openai-agents |
cooper-email-openai-agents | Python | pip install cooper-email-openai-agents | packages/openai-agents-py |
cooper-email-llamaindex | Python | pip install cooper-email-llamaindex | packages/llamaindex |
cooper-email-crewai | Python | pip install cooper-email-crewai | packages/crewai |
n8n-nodes-cooper-email | n8n community node | npm install n8n-nodes-cooper-email | packages/n8n-nodes-cooper-email |
cooper-email-openapi | OpenAPI 3.1 (Zapier, Make) | npm install cooper-email-openapi | packages/openapi |
Registry releases are in progress. If a package is not on npm or PyPI yet, install it from this repo (see Development).
Onboarding needs no auth. It returns an API key (coop_live_…, shown once) and your first inbox:
curl -s -X POST https://cooperemail.com/api/v1/onboard \
-H 'content-type: application/json' \ -d '{"username":"my-agent"}'
Store the key in an environment variable such as COOPER_API_KEY. Do not commit it.
npm install cooper-email
import { Cooper } from "cooper-email";
const cooper = new Cooper({ apiKey: process.env.COOPER_API_KEY });
const inbox = await cooper.inboxes.create({ username: "research-bot", displayName: "Research" });
await cooper.messages.send(inbox.id, { to: ["ada@example.com"], subject: "Hello from my agent", text: "Does Tuesday work?", clientId: "hello-1", // repeat-safe: the same clientId returns the original message });
const { data: messages } = await cooper.messages.list(inbox.id, { limit: 20 }); const results = await cooper.search("tuesday");
Human in the loop:
await cooper.owners.add(inbox.id, { email: "ada@example.com" }); // Ada confirms by email
await cooper.updates.notify({ inboxId: inbox.id, kind: "needs_input", text: "Which vendor should I book?", });
const tasks = await cooper.tasks.list({ inboxId: inbox.id, wait: 25 }); // long-poll, max 25 s const task = tasks.data.find((t) => t.verified_owner && t.trusted); if (task) await cooper.tasks.reply(task.id, { text: "Booked.", status: "done" });
Full reference: packages/cooper-email/README.md.
pip install cooper-email
import os
from cooper_email import Cooper
with Cooper(api_key=os.environ["COOPER_API_KEY"]) as cooper: inbox = cooper.inboxes.create("research-bot", display_name="Research")
cooper.messages.send( inbox["id"], to=["ada@example.com"], subject="Hello from my agent", text="Does Tuesday work?", client_id="hello-1", )
messages = cooper.messages.list(inbox["id"], limit=20) results = cooper.search("tuesday")
cooper.owners.add(inbox["id"], "ada@example.com") cooper.updates.notify(inbox["id"], "needs_input", "Which vendor should I book?") tasks = cooper.tasks.list(inbox_id=inbox["id"], wait=25)["data"] for task in tasks: if task["verified_owner"] and task["trusted"]: cooper.tasks.reply(task["id"], "Booked.", status="done")
AsyncCooper has the same methods with await. Full reference: packages/cooper-email-python/README.md.
Register a URL, then verify every delivery against the raw request body:
import { Cooper, verifyWebhookSignature } from "cooper-email";
const cooper = new Cooper({ apiKey: process.env.COOPER_API_KEY }); await cooper.webhooks.create({ url: "https://example.com/hooks/cooper", events: ["message.received", "task.received"], secret: process.env.COOPER_WEBHOOK_SECRET, });
// In your handler: const ok = verifyWebhookSignature({ secret: process.env.COOPER_WEBHOOK_SECRET!, payload: rawBody, signature: request.headers.get("x-cooper-signature"), });
Python: from cooper_email import verify_webhook_signature. Event bodies look like { "id", "type", "created_at", "data" }.
Connect https://cooperemail.com/mcp and use the skills in skills/ (above). To configure a client by hand:
Endpoint: `https://cooperemail.com/mcp` (Streamable HTTP). Claude and ChatGPT connectors sign in with OAuth. Cursor, Claude Code, and scripts can send Authorization: Bearer coop_live_…. The cooper_onboard tool works before you have a key.
Claude (claude.ai / Claude Desktop): Settings → Connectors → Add custom connector. Name Cooper Email, URL https://cooperemail.com/mcp, then approve Cooper on the OAuth screen. Then ask: "Create a Cooper Email inbox for research-bot."
Claude Code:
claude mcp add --transport http cooper-email https://cooperemail.com/mcp
Or install the Claude Code plugin (MCP server plus email and human-in-the-loop skills) from this repo:
/plugin marketplace add cooper-email/cooper-email
/plugin install cooper-email@coo
Only the beginning is shown; read the rest in the repo