Are you the author? Sign in to claim
MCP server to manage temporary email addresses via the mail.tm API
An MCP (Model Context Protocol) server that lets AI assistants manage temporary email addresses via the mail.tm API. Create disposable inboxes, read messages, and manage accounts — all from your AI chat.
| Tool | Description |
|---|---|
list_domains | List available domains for creating temp addresses |
create_temp_email | Create a new disposable email account (random or custom) |
login | Log in to an existing mail.tm account |
get_inbox | List messages in the current inbox (paginated) |
read_email | Read the full content of an email by ID |
mark_as_read | Mark a message as read |
delete_email | Permanently delete a message |
get_account_info | Get current account details and storage usage |
delete_account | Permanently delete the account and all its messages |
logout | Clear the current session without deleting the account |
The server runs as a streamable-http MCP server on port 8000, endpoint /mcp.
Compatible with:
streamable-httpcurl -O https://raw.githubusercontent.com/opastorello/mailtm-mcp-server/master/docker-compose.yml
docker compose up -d
Server available at http://localhost:8000/mcp.
docker pull ghcr.io/opastorello/mailtm-mcp-server:latest
docker run -d -p 8000:8000 -v mailtm-session:/tmp --name mailtm ghcr.io/opastorello/mailtm-mcp-server:latest
pip install -r requirements.txt
python mailtm_server.py
Requires Python 3.11+.
cat > /tmp/mailtm.json << 'EOF'
{
"name": "mailtm",
"transport": "streamable_http",
"url": "http://localhost:8000/mcp"
}
EOF
mcpjungle register -c /tmp/mailtm.json
When mcpjungle runs inside Docker, localhost doesn't resolve to the host. You need both containers on the same Docker network.
The included docker-compose.yml handles this automatically — it joins the opt_default network (mcpjungle's default network) and sets a fixed container name mailtm so the hostname never changes across restarts.
# Download and start
curl -O https://raw.githubusercontent.com/opastorello/mailtm-mcp-server/master/docker-compose.yml
docker compose up -d
# Register using the container hostname
cat > /tmp/mailtm.json << 'EOF'
{
"name": "mailtm",
"transport": "streamable_http",
"url": "http://mailtm:8000/mcp"
}
EOF
mcpjungle register -c /tmp/mailtm.json
Note: The transport value is
streamable_http(underscore), nothttp— this is mcpjungle-specific.
Note:
host.docker.internaldoes not work on Linux. Use the container name or a fixed IP instead.
To re-register after changes:
mcpjungle deregister mailtm
mcpjungle register -c /tmp/mailtm.json
mcpjungle invoke mailtm__create_temp_email
mcpjungle invoke mailtm__get_inbox
mcpjungle invoke mailtm__list_domains
Pointing to a running instance:
{
"mcpServers": {
"mailtm": {
"url": "http://localhost:8000/mcp"
}
}
}
The server stores the active session in /tmp/mailtm_session.json:
/tmp as a Docker volume to survive container restarts.logout() clears the session without deleting the account.delete_account() deletes the account and clears the session.1. create_temp_email() → generates a random address like abc123@dollicons.com
2. get_inbox() → check for new messages
3. read_email(message_id="...") → read the content
4. delete_account() → clean up when done
MIT — Nícolas Pastorello
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
Google's universal MCP server supporting PostgreSQL, MySQL, MongoDB, Redis, and 10+ databases
Official GitHub integration for repos, issues, PRs, and CI/CD workflows