strato-mail-mcp
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., "@strato-mail-mcpShow me my last 5 unread emails"
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.
Strato Mail MCP Server v2
Volledige mail client voor Claude via IMAP + SMTP — perfect voor Portainer hosting.
🎯 Features
✅ IMAP Functionaliteit:
Alle mails lezen (onderwerp, body, HTML, headers)
Zoeken met geavanceerde IMAP filters
Folder management (switch, list)
Email flags (read/unread, starred, draft)
Attachment handling
Bulk operations
✅ SMTP Functionaliteit:
Mails verzenden
CC/BCC support
HTML + plain text
✅ Extra:
Mailbox statistics
Draft management
Portainer-ready Docker setup
Attachment persistence
Health checks
Related MCP server: Mailbox.org MCP Server
🚀 Quick Start (Docker in Portainer)
1. In Portainer: Stacks → Add Stack
Name: strato-mail-mcp
Paste this:
version: '3.8'
services:
strato-mail-mcp:
build:
context: https://github.com/yourusername/strato-mail-mcp.git
dockerfile: Dockerfile
container_name: strato-mail-mcp
image: strato-mail-mcp:latest
restart: unless-stopped
environment:
IMAP_HOST: imap.strato.com
IMAP_PORT: 993
IMAP_USER: ${IMAP_USER}
IMAP_PASSWORD: ${IMAP_PASSWORD}
SMTP_HOST: smtp.strato.com
SMTP_PORT: 465
ATTACHMENT_DIR: /app/attachments
NODE_ENV: production
volumes:
- strato-attachments:/app/attachments
deploy:
resources:
limits:
cpus: '0.5'
memory: 256M
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
volumes:
strato-attachments:
driver: local2. Set Environment Variables
In Portainer Stack UI, add before deploying:
IMAP_USER=jouw-email@example.com
IMAP_PASSWORD=jouw-strato-password3. Deploy
Click "Deploy the stack" → Wait ~30 seconds
4. Verify
In Portainer → Containers → strato-mail-mcp
Should show
RunningLogs should show:
[strato-mail-mcp] ✓ Server started - Ready for Claude
🔗 Integratie met Claude
Option A: Lokaal (Windows/Mac/Linux)
Ga naar Claude Settings → Developer → MCP Settings:
{
"mcpServers": {
"strato-mail": {
"command": "node",
"args": ["/path/to/strato-mail-mcp/server.js"],
"env": {
"IMAP_USER": "jouw-email@example.com",
"IMAP_PASSWORD": "jouw-password"
}
}
}
}Herstart Claude → strato-mail is nu beschikbaar
Option B: Remote Docker (SSH naar Portainer host)
{
"mcpServers": {
"strato-mail": {
"command": "docker",
"args": ["exec", "-i", "strato-mail-mcp", "node", "/app/server.js"],
"env": {
"IMAP_USER": "jouw-email@example.com",
"IMAP_PASSWORD": "jouw-password"
}
}
}
}📧 Beschikbare Tools
Read & Search
get_folders()
→ List alle mail folders (INBOX, Sent, Drafts, etc.)
search_emails(query, limit, folder)
→ Search met IMAP syntax:
- ALL
- UNSEEN
- SEEN
- FROM "user@example.com"
- SUBJECT "keyword"
- SINCE 15-Mar-2024
- FLAGGED
- DRAFT
Voorbeelden: "UNSEEN FROM triple-audio", "ALL", "FLAGGED"
read_email(uid)
→ Lees volledige email (with attachments)
get_recent(count, folder)
→ Haal X recente mails (default 20)
get_mailbox_status()
→ Get folder statistieken (total, unread, recent)Send & Draft
send_email(to, subject, text/html, cc, bcc)
→ Verstuur email direct
save_draft(to, subject, text/html)
→ Opslaan als conceptManage
mark_read(uids)
→ Mark emails as read
mark_unread(uids)
→ Mark emails as unread
mark_flagged(uids)
→ Star/flag emails
unmark_flagged(uids)
→ Remove star
switch_folder(folder)
→ Switch to different folder
move_email(uids, folder)
→ Move emails to folder
delete_email(uids)
→ Delete emailsFiles
get_attachment(uid, filename)
→ Get attachment path (for Claude to access)🔧 Configuration Details
Strato Settings
IMAP:
Host:
imap.strato.com(SSL/TLS)Port:
993User: je Strato email
Pass: je Strato password
SMTP:
Host:
smtp.strato.com(SSL/TLS)Port:
465User: je Strato email
Pass: je Strato password
Docker Volumes
strato-attachments→ Attachments opgeslagen in/app/attachmentsPersisten over container restarts
Resource Limits
CPU: max
0.5coresMemory: max
256MBReserved:
0.25CPU,128MBRAM
🐛 Troubleshooting
"IMAP connection failed"
Check in Portainer logs:
Containers → strato-mail-mcp → Logs
Waarschijnlijke oorzaken:
- IMAP_USER/PASSWORD incorrect
- Strato account IMAP disabled
- Network firewall port 993 blocked"SMTP auth failed"
Check:
- IMAP_PASSWORD is correct (same for SMTP at Strato)
- Strato account allows SMTP
- Port 465 not blockedAttachments not saving
Check volume is mounted:
docker inspect strato-mail-mcp | grep -A 5 Mounts
Should show: /app/attachments → strato-attachmentsSlow searches
IMAP is inherent slow for large mailboxes.
Use more specific queries:
- "UNSEEN" instead of "ALL"
- "FROM example.com" to narrow down
- Limit parameter📈 Monitoring
In Portainer
Containers →
strato-mail-mcpStats tab → CPU/Memory usage
Logs → Real-time activity
Docker CLI
# Follow logs
docker logs -f strato-mail-mcp
# Container stats
docker stats strato-mail-mcp
# Shell access (debug)
docker exec -it strato-mail-mcp sh🔐 Security
⚠️ Credentials Storage:
.envcontains password (NEVER commit to git!)In Portainer: credentials stored in container variables (encrypted)
In Docker: use
.envfile OR Portainer UI (don't hardcode)Recommended: Use Portainer "Secrets" for production
Access Control:
Container runs as non-root user
TLS/SSL for IMAP (993) and SMTP (465)
Local filesystem attachments only
🚀 Advanced
Custom Folders
Strato default folders: INBOX, Sent, Drafts, Trash, Junk
If you have custom folders, use full path:
switch_folder("folder/subfolder")Email Size Limits
Strato typically allows:
Single mail: up to 50MB (with attachments)
Mailbox: depends on plan
Large attachments are downloaded to container volume automatically.
Rate Limiting
IMAP servers have implicit rate limits. If you get "too many connections":
Reduce concurrent searches
Add delays between operations
Use specific queries instead of broad searches
📝 API Examples (in Claude)
Search unread emails
"Search my unread emails from Triple Audio"
→ Claude calls: search_emails(query="UNSEEN FROM triple-audio")Read recent mails
"Show me my last 5 emails"
→ Claude calls: get_recent(count=5)Send email
"Send email to marco@triple-audio.nl with subject 'Themis Update'"
→ Claude calls: send_email(to="marco@...", subject="Themis Update", text="...", html="...")Manage folders
"Move all Themis emails to a folder"
→ Claude calls: search_emails(query='SUBJECT "Themis"') → move_email(uids=[...], folder="Themis")🛑 Stopping / Updating
In Portainer
Stacks →
strato-mail-mcpStop: click Stop
Update: remove stack, re-deploy with new code
Logs: check health status
Docker CLI
# Stop
docker-compose down
# Restart
docker-compose up -d
# View logs
docker logs strato-mail-mcp📞 Support
If issues:
Check logs:
docker logs strato-mail-mcpVerify Strato credentials work in email client
Check IMAP/SMTP ports (993, 465) are accessible
Ensure
.envis correctly set
Version: 2.0.0
Status: ✅ Production-ready for Portainer
This server cannot be installed
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
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/Ragazzoforte/strato-mail-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server