MCP Server
Connect Claude Desktop, claude.ai, Claude Code, Cursor, or any MCP-compatible agent to Envloped — hosted over OAuth, or locally through the CLI.
MCP Server
Envloped ships a native Model Context Protocol server inside the CLI binary. Point Claude Desktop, Claude Code, Cursor, or any MCP client at it and the agent can send transactional email, debug domain verification, build contact segments, draft campaigns, and read campaign reports — using your existing Envloped account.
There is no separate package to install. If you have the CLI, you have the MCP server.
envloped mcpTwo ways to connect
| Local (stdio) | Hosted (Streamable HTTP) | |
|---|---|---|
| Endpoint | envloped mcp on your machine | https://mcp.envloped.com/mcp |
| Authentication | The API key envloped login already stored | OAuth 2.1, with a consent screen |
| Setup | One config block | Paste a URL, approve in the browser, pick a workspace |
| Which workspace | Fixed by the API key — a key belongs to the workspace it was created in | Chosen on the consent screen, once per authorization |
| Effective permissions | Everything an API key can do, including send | Only the scopes approved on the consent screen |
| Best for | Local development, coding agents, CI | Claude Desktop, claude.ai, third-party agents |
That last row is the asymmetry worth understanding before you pick one. An API key is unscoped and can do everything the API can do, including send — so a local config hands an agent a full-access credential. An OAuth token carries only what you approved on the consent screen, and sending is a separate, default-off toggle there.
Local setup (stdio)
1. Install and authenticate the CLI
curl -fsSL https://envloped.com/install.sh | bash
envloped loginThe key is stored in ~/.config/envloped/credentials.toml (or $XDG_CONFIG_HOME/envloped/).
The MCP server reads it automatically — you do not put your key in the MCP config file.
2. Add it to your client
Claude Code
claude mcp add envloped -- envloped mcpVerify with /mcp inside Claude Code. The server should report as connected with 20 tools.
Claude Desktop
Claude Desktop connects to the hosted server instead — it takes a URL in Settings → Connectors, not a stdio command. See Hosted setup.
Cursor
Create .cursor/mcp.json in your project (or ~/.cursor/mcp.json for every project):
{
"mcpServers": {
"envloped": {
"command": "envloped",
"args": ["mcp"]
}
}
}Other clients
Any client that speaks stdio works. The command is envloped and the single argument is mcp.
If your client cannot inherit your shell environment, or you want to pin a specific account,
pass the key explicitly instead of relying on envloped login:
{
"mcpServers": {
"envloped": {
"command": "envloped",
"args": ["mcp"],
"env": {
"ENVLOPED_API_KEY": "en_..."
}
}
}
}3. Try it
Which of my domains are verified, and what DNS records are still missing?
The agent calls domain_list, then domain_records for anything unverified, and reports the
live SES status per record.
Hosted setup (OAuth)
The hosted server needs no install at all — just the URL:
https://mcp.envloped.com/mcpClaude Desktop and claude.ai
- Open Settings → Connectors.
- Click Add custom connector.
- Name it
Envlopedand pastehttps://mcp.envloped.com/mcpas the remote MCP server URL. Leave the advanced OAuth fields empty — the server registers the client for you. - Click Add, then Connect.
On Team and Enterprise plans an owner adds the connector once under Organization settings → Connectors (Add → Custom → Web); everyone else then finds it under Settings → Connectors and only has to press Connect.
Connecting opens Envloped's consent screen in your browser. Once approved, enable Envloped per conversation from the + button → Connectors.
Claude Code
claude mcp add --transport http envloped https://mcp.envloped.com/mcpRun /mcp, select envloped, and authenticate. The same consent screen opens in your browser.
Cursor and other clients
Any client that accepts a remote MCP URL takes the endpoint directly:
{
"mcpServers": {
"envloped": {
"url": "https://mcp.envloped.com/mcp"
}
}
}What you are approving
The consent screen asks three things: whether to authorize the client, which workspace to connect it to, and whether the agent may send email. Approve, and the client holds an OAuth 2.1 access token bound to your user, that workspace, and exactly the permissions shown on the page.
The workspace choice is per authorization, not per session. It is fixed for the life of that client's token — the agent cannot switch workspaces mid-conversation, and it has no visibility into the workspaces you did not pick. To point a client at a different workspace, authorize it again and choose the other one.
Every authorization is listed under Settings → Connected agents with the permissions it holds and when it was last used, and revoking one there takes effect on the agent's very next request. Tokens expire on their own after 90 days; re-authorizing is the same flow again.
Ask the agent to call whoami immediately after connecting. It reports the workspace the token
actually resolved to, which is the one thing worth confirming before an agent starts acting on
your account.
The hosted server never holds a credential of its own. Every request is executed with your token, which is why one tenant's agent cannot reach another tenant's data even in principle.
Once connected, your client's own tool list shows everything the server exposes — twenty tools across email, domains, contacts, segments, and campaigns. You do not need to configure or learn them: each carries its own schema, and the server sends the agent its operating instructions when the connection opens. Notably absent, and deliberately so: there is no bulk campaign send, no API key creation, and no delete. An agent drafts, targets, previews and tests; a human presses Launch.
See also
- CLI commands — the same operations at the terminal, plus the ones withheld from agents
- Segments — the full definition grammar
- Campaigns — the send pipeline an agent drafts into
- Authentication — API keys and OAuth