@deaddrop/mcp
v1.1.0
Published
MCP server for DeadDrop — expose inbox management and OTP/link extraction as native agent tools
Downloads
324
Maintainers
Readme
@deaddrop/mcp
MCP server for DeadDrop — expose inbox management and OTP/link extraction as native agent tools.
Quick Start
npx @deaddrop/mcpThe server communicates over stdio and is compatible with any MCP client (Claude Desktop, Cursor, Windsurf, and others).
Configuration
| Variable | Required | Default | Description |
| ------------------ | ----------------------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| DEADDROP_API_KEY | For authenticated tools | — | Your DeadDrop API key. Required for create_inbox, delete_inbox, and listing messages from persistent inboxes. |
| DEADDROP_API_URL | No | https://api.deaddrop.zone | API base URL. Override for self-hosted or staging deployments. |
Get an API key from deaddrop.zone/dashboard.
MCP Client Setup
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"deaddrop": {
"command": "npx",
"args": ["-y", "@deaddrop/mcp"],
"env": {
"DEADDROP_API_KEY": "your-api-key-here"
}
}
}
}Cursor
Add to .cursor/mcp.json in your project root, or ~/.cursor/mcp.json for global config:
{
"mcpServers": {
"deaddrop": {
"command": "npx",
"args": ["-y", "@deaddrop/mcp"],
"env": {
"DEADDROP_API_KEY": "your-api-key-here"
}
}
}
}Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"deaddrop": {
"command": "npx",
"args": ["-y", "@deaddrop/mcp"],
"env": {
"DEADDROP_API_KEY": "your-api-key-here"
}
}
}
}Tools
| Tool | Description | Required params |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------- | ------------------- |
| create_ephemeral_inbox | Create a temporary inbox that expires after 1 hour. No API key required. | — |
| create_inbox | Create a persistent inbox. Returns the email address for receiving messages. | API key |
| wait_for_message | Wait for a new message to arrive, with optional subject/sender filters. | inbox_id |
| list_messages | List messages in an inbox in reverse chronological order with parsed OTPs and links. | inbox_id |
| get_latest_otp | Get the highest-confidence OTP code from the most recent message. Optionally waits for arrival. | inbox_id |
| get_latest_link | Get the latest link of a specific type (verification, login, password reset, etc.) from the most recent message. | inbox_id |
| delete_inbox | Delete a persistent inbox and all its messages. Irreversible. | inbox_id, API key |
Tool parameters
create_ephemeral_inbox — no parameters.
create_inbox
slug(optional) — custom slug for the inbox address, e.g.my-agent. Auto-generated if omitted.webhook_url(optional) — URL to receive messages via HTTP POST on arrival.
wait_for_message
inbox_id— the inbox ID to watch.timeout_seconds(optional) — max seconds to wait. Default: 30, max: 120.subject_contains(optional) — only match messages whose subject contains this string (case-insensitive).from_contains(optional) — only match messages whose sender address contains this string.after(optional) — only match messages received after this ISO 8601 timestamp.
list_messages
inbox_id— the inbox ID.limit(optional) — max messages to return. Default: 10, max: 50.
get_latest_otp
inbox_id— the inbox ID.timeout_seconds(optional) — if >0, wait for a message with an OTP (max 120 seconds). Default: 0 (check immediately).min_confidence(optional) — minimum confidence threshold 0–1. Default: 0.5.
get_latest_link
inbox_id— the inbox ID.link_type(optional) — one ofverification,login,password_reset,action,unsubscribe,other. Returns any link if omitted.timeout_seconds(optional) — if >0, wait for a matching link (max 120 seconds). Default: 0 (check immediately).
delete_inbox
inbox_id— the inbox ID to delete.
Authentication
Tools that manage persistent inboxes (create_inbox, delete_inbox, and reading from persistent inboxes) require a DeadDrop API key. Set it via the DEADDROP_API_KEY environment variable.
Ephemeral inboxes (create_ephemeral_inbox) work without an API key but are subject to browser-based verification constraints — they may not be available in all headless environments.
To get an API key: deaddrop.zone/dashboard → API Keys → Create key.
For full API documentation, see deaddrop.zone/docs.
For the complete MCP setup guide, tool reference, and workflow examples, see docs/MCP_GUIDE.md.
License
MIT
