tutamcp MCP Server for Tuta
Provides tools for managing a Tuta account: mail, calendar, contacts, and drive, including sending/receiving emails, managing events, contacts, and files.
tutamcp
MCP server giving Claude access to a Tuta account: mail, calendar, contacts, and drive. Each module is enabled independently. Built on top of tutaproxy's TutaClient — no direct Tuta API calls.
30 MCP tools across 4 modules. Requires tutaproxy-public ≥ v1.3.10.
Quickstart — Docker
The easiest setup: no local dependencies beyond Docker. The image bundles tutaproxy at build time.
git clone https://github.com/peix2/tutamcp-public.git
cd tutamcp-public
docker build -t tutamcp .Pin a specific tutaproxy release (default: v1.3.10):
docker build --build-arg TUTAPROXY_REF=v1.3.10 -t tutamcp .Create a credentials file (chmod 600):
TUTA_EMAIL=your@tuta.com
TUTA_PASSWORD=yourpasswordRegister in Claude Code (.mcp.json or ~/.claude.json):
{
"mcpServers": {
"tutamcp": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-v", "/path/to/credentials.env:/creds.env:ro",
"-e", "TUTAMCP_CREDENTIALS_FILE=/creds.env",
"-e", "TUTAMCP_ENABLE_MAIL=1",
"-e", "TUTAMCP_MAIL_MODE=dedicated",
"-e", "TUTAMCP_OWNER_EMAIL=you@tuta.com",
"tutamcp"
]
}
}
}Related MCP server: Proton-MCP
Without Docker
Requires Python 3.11 and a local clone of tutaproxy-public.
git clone https://github.com/peix2/tutamcp-public.git
cd tutamcp-public
pip install --target=.venv/lib/python3.11/site-packages -r requirements.txtRegister in Claude Code:
{
"mcpServers": {
"tutamcp": {
"command": "python3.11",
"args": ["/path/to/tutamcp-public/run.py", "/path/to/tutamcp-public/server.py"],
"env": {
"TUTAPROXY_PATH": "/path/to/tutaproxy-public",
"TUTAMCP_CREDENTIALS_FILE": "/path/to/credentials.env",
"TUTAMCP_ENABLE_MAIL": "1",
"TUTAMCP_MAIL_MODE": "dedicated",
"TUTAMCP_OWNER_EMAIL": "you@tuta.com",
"TUTAMCP_DOWNLOAD_DIR": "/tmp/tutamcp"
}
}
}
}For Claude Desktop, use the same block in ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows).
Configuration
See config.example.env for all variables. Key options:
Mail modes
Mode | Description |
| Account belongs to Claude only. Full access, send enabled by default. |
| Account shared with the user. Full read/write access; send policy controlled by |
| Shared account; Claude sees only the folder set in |
Send policy
TUTAMCP_MAIL_SEND=reply_only — only tuta_mail_reply is registered; recipients are derived from the original mail only, no arbitrary addresses accepted.
TUTAMCP_MAIL_SEND=full — also registers tuta_mail_send for initiating new threads.
Default: dedicated → full, shared → reply_only, folder → always reply_only.
Trusted senders
Used for autonomous mail handling (e.g. a background poller that wakes Claude to process incoming commands).
Variable | Description |
| Always trusted. |
| Comma-separated list of additional trusted addresses. |
|
|
|
|
tuta_mail_list and tuta_mail_read return trusted_sender: bool and e2e: bool on every message. Pass only_trusted=True to tuta_mail_list to filter to trusted senders only.
Tools
Status
Tool | Description |
| Server info: version, enabled modules, mail mode/send policy, session state |
Tool | Description |
| List all folders |
| List emails without body. Supports |
| Read full email with decrypted body and attachment metadata |
| Download attachment to |
| Send new email (requires |
| Reply to email; recipients derived from original only |
| Move to folder |
| Delete permanently or move to trash |
| Mark as read/unread |
| Create custom folder |
| Rename custom folder |
| Delete custom folder |
| List labels |
| Add/remove labels on a mail |
Calendar
Tool | Description |
| List events in a date range (recurring events always included) |
| Create event with optional RRULE recurrence |
| Update event |
| Delete event |
Note: editing a single occurrence of a recurring series is not supported.
Contacts
Tool | Description |
| List/search contacts by name, company, or email |
| Get full contact details |
| Create contact |
| Update contact fields |
| Delete contact |
Drive
Tool | Description |
| List folder contents by path |
| Download file to |
| Upload local file |
| Create folder |
| Rename file or folder |
| Move file or folder |
| Delete file or folder |
Drive requires a paid Tuta account. Free accounts receive an informative error rather than a crash.
Security
Credentials are never logged. The server warns if the credentials file permissions are wider than
600.All logging goes to
stderror a log file.stdoutis reserved for the MCP protocol.Tool registration is conditional: a disabled module registers no tools — Claude doesn't see them at all.
In
foldermode, all operations are scoped to the configured folder; attempts to access outside it are rejected at the tool level.Reply-only policy is enforced structurally:
tuta_mail_sendis simply not registered, not blocked at runtime.Path traversal on attachment/drive downloads is blocked (basename sanitization + regex).
License
AGPL-3.0 — see LICENSE.
This server cannot be installed
Maintenance
Latest Blog Posts
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/peix2/tutamcp-public'
If you have feedback or need assistance with the MCP directory API, please join our Discord server