Drin MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Drin MCP ServerSend an email to john@example.com about project update"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@drin00/mcp
A Model Context Protocol server for the complete Drin email loop. Give any MCP-capable agent — Claude Desktop, Claude Code, Cursor, Windsurf, VS Code, Devin, your own — the ability to send and receive email, parse inbound messages, keep threads, reply with human approval, and manage domains, inboxes, contacts, templates, webhooks, API keys, integrations, and delivery metrics — full parity with the Drin dashboard, authenticated with a single Drin API key.
Zero third-party dependencies. Runs on Node 20+. Free on every Drin plan.
Install
No install needed — point your MCP client at it with npx:
{
"mcpServers": {
"drin": {
"command": "npx",
"args": ["-y", "@drin00/mcp"],
"env": { "DRIN_API_KEY": "drin_your_key" }
}
}
}Create an API key in the dashboard under Settings → API Keys. If the key is
account-wide (not scoped to one product), also set DRIN_SENDER to a product
externalId.
Claude Desktop
Add the block above to claude_desktop_config.json
(macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\),
then restart Claude.
Claude Code
claude mcp add drin -e DRIN_API_KEY=drin_your_key -- npx -y @drin00/mcpCursor / Windsurf / VS Code
Add the same mcpServers block to the editor's MCP config
(~/.cursor/mcp.json, Windsurf settings, or .vscode/mcp.json).
Related MCP server: Envoi MCP
Configuration
Env var | Required | Default | Purpose |
| yes | — | Bearer token (Settings → API Keys) |
| no |
| Override for self-hosted/preview |
| no | — | Default product |
Flags --api-key, --base-url, --sender override the env vars.
Tools
54 tools spanning the whole Drin API — everything the dashboard does, an agent can do.
Group | Tools |
Sending |
|
Reading |
|
Domains |
|
Inboxes |
|
Threads |
|
Inbound |
|
Contacts |
|
Suppressions |
|
Templates |
|
Webhooks |
|
API keys |
|
Metrics |
|
Account |
|
Integrations |
|
Addresses accept "Name <email>" or a bare "email"; recipient fields accept a
string or an array of strings. Show-once secrets (new API keys, webhook signing
secrets) are returned only on the create call — persist them immediately.
Programmatic use
import { createDrinMcpServer } from "@drin00/mcp";
const server = createDrinMcpServer({
apiKey: process.env.DRIN_API_KEY!,
sender: "acme", // optional, for account-wide keys
});
await server.serve(); // wires stdin/stdoutSecurity
The server speaks only to the Drin API over HTTPS using your Bearer key — there
is no separate auth surface. Everything the key is allowed to do, the agent can
do; scope the key to one product and the minimum it needs. Keys are shown once
on creation; store them in your MCP client's env, never in source.
Develop
npm run typecheck # tsc on src + tests
npm run build # emit dist/
npm test # node:test unit suiteMIT licensed.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ATOM00blue/drin-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server