@infomaniak/mcp-server-mail
v1.10.1
Published
MCP server for interacting with Infomaniak Mail via web API
Readme
Mail MCP Server
MCP Server for the Infomaniak Mail API.
Tools
mail_list_mailboxes- List all mailboxes in your Infomaniak account
- Returns: List of mailboxes with uuid, email, and mailbox name
mail_list_folders- List all folders in a mailbox
- Required inputs:
mailbox_uuid(string, optional): Mailbox UUID (uses primary if omitted)
- Returns: List of folders with id, name, path, role, unread/total counts
mail_create_folder- Create a new folder in the mailbox
- Required inputs:
name(string): Name of the folder to create
- Optional inputs:
parent_folder_id(string): Parent folder ID (omit for root-level folder)mailbox_uuid(string): Mailbox UUID (uses primary if omitted)
- Returns: Created folder with id, name, and parent_folder_id
mail_delete_folder- Delete a folder from the mailbox
- Required inputs:
folder_id(string): Folder ID to delete
- Optional inputs:
mailbox_uuid(string): Mailbox UUID (uses primary if omitted)
- Returns: Deletion confirmation
mail_rename_folder- Rename a folder in the mailbox
- Required inputs:
folder_id(string): Folder ID to renamename(string): New folder name
- Optional inputs:
mailbox_uuid(string): Mailbox UUID (uses primary if omitted)
- Returns: Renamed folder with id and name
mail_list_emails- List emails in a folder
- Required inputs:
folder_id(string): Folder ID
- Optional inputs:
mailbox_uuid(string): Mailbox UUIDlimit(number): Maximum emails to return (default: 50)offset(number): Pagination offset (default: 0)
- Returns: List of email threads with subject, from, date, seen status, flagged status, preview
mail_read_email- Required inputs:
folder_id(string): Folder ID containing the emailmessage_id(string): Message ID or UID
- Optional inputs:
mailbox_uuid(string): Mailbox UUID
- Returns: Full email with uid, msg_id, subject, from, to, cc, bcc, date, body, html, preview, seen status, flagged status, folder, folder_id, headers, and attachment metadata
- Required inputs:
mail_download_attachment- Download an email attachment as base64-encoded content
- Required inputs:
folder_id(string): Folder ID containing the emailmessage_id(string): Message ID or UIDattachment_id(string): Attachment ID frommail_read_emailresponse
- Optional inputs:
mailbox_uuid(string): Mailbox UUID (uses primary if omitted)
- Returns: Attachment metadata with base64 content
{ "filename": "report.pdf", "mime_type": "application/pdf", "size": 124500, "content": "JVBERi0xLjQKJdPr6eEKMSAwIG9iago8PAovVHlw..." }
mail_send_email- Send an email
- Required inputs:
to(string): Recipient email address(es), comma-separatedsubject(string): Email subjectbody(string): Email body (plain text)
- Optional inputs:
mailbox_uuid(string): Mailbox UUID (uses primary if omitted)cc(string): CC recipient(s), comma-separatedbcc(string): BCC recipient(s), comma-separatedattachments(string[]): Local file paths to attachin_reply_to(string): Message-ID of the email being replied to (for threading)in_reply_to_uid(string): UID of the email being replied to (format:UID@resource)references(string): References header for threading (Message-IDs, space-separated)
- Returns: Send confirmation with timestamp
mail_create_draft- Create a new email draft
- Required inputs:
to(string): Recipient email address(es), comma-separatedsubject(string): Draft subjectbody(string): Draft body (plain text)
- Optional inputs:
mailbox_uuid(string): Mailbox UUID (uses primary if omitted)cc(string): CC recipient(s), comma-separatedbcc(string): BCC recipient(s), comma-separatedin_reply_to(string): Message-ID of the email being replied to (for threading)in_reply_to_uid(string): UID of the email being replied to (format:UID@resource)references(string): References header for threading (Message-IDs, space-separated)
- Returns: Draft UUID and UID for later update/send
mail_update_draft
- Update an existing email draft (only provide fields to change)
- Required inputs:
draft_uuid(string): Draft UUID to update
- Optional inputs:
to(string),subject(string),body(string)cc(string),bcc(string)attachments(string[]): Local file paths to attach
- Returns: Updated draft info
mail_send_draft
- Send an existing email draft
- Required inputs:
draft_uuid(string): Draft UUID to send
- Optional inputs:
delay(number): Delay in seconds before sending (default: 0)
- Returns: Send confirmation with scheduled time
mail_delete_draft
- Delete an email draft
- Required inputs:
draft_uuid(string): Draft UUID to delete
- Returns: Deletion confirmation
mail_list_drafts
- List all drafts in the mailbox
- Returns: Draft threads with subject, date, and message UID
mail_search_emails
- Search emails by keyword, sender, recipient, subject, or date range
- Optional inputs:
query(string): Full-text search in message body and metadatafrom(string): Filter by sender email or nameto(string): Filter by recipient email or namesubject(string): Filter by subjectsince(string): Start date (YYYY-MM-DD)before(string): End date (YYYY-MM-DD)folder_id(string): Limit search to a specific folder (searches all folders if omitted)mailbox_uuid(string): Mailbox UUID (uses primary if omitted)limit(number): Maximum results to return (default: 50)offset(number): Pagination offset (default: 0)
- Returns: List of matching emails with subject, from, to, date, seen status, flagged status, preview, folder, and folder_id
- Note: At least one of query, from, to, subject, since, or before must be provided.
mail_mark_email
- Mark one or more emails as read or unread
- Required inputs:
folder_id(string): Folder ID containing the messagesmessage_ids(string[]): Message sequence UIDs (frommail_list_emailsormail_search_emails)read(boolean):trueto mark as read,falseto mark as unread
- Optional inputs:
mailbox_uuid(string): Mailbox UUID (uses primary if omitted)
- Returns: Confirmation with count of marked messages
mail_flag_email
- Flag (star) or unflag (unstar) one or more emails
- Required inputs:
folder_id(string): Folder ID containing the messagesmessage_ids(string[]): Message sequence UIDsflagged(boolean):trueto star/flag,falseto unstar/unflag
- Optional inputs:
mailbox_uuid(string): Mailbox UUID (uses primary if omitted)
- Returns: Confirmation with count of flagged/unflagged messages
mail_move_email
- Move one or more emails to a different folder
- Required inputs:
message_ids(string[]): Message sequence UIDsfrom_folder_id(string): Source folder IDto_folder_id(string): Destination folder ID
- Optional inputs:
mailbox_uuid(string): Mailbox UUID (uses primary if omitted)
- Returns: Confirmation with count of moved messages
mail_archive_email
- Archive one or more emails (move to the Archives folder)
- Required inputs:
folder_id(string): Folder ID currently containing the messagesmessage_ids(string[]): Message sequence UIDs
- Optional inputs:
mailbox_uuid(string): Mailbox UUID (uses primary if omitted)
- Returns: Confirmation with count of archived messages
mail_delete_email
- Delete one or more emails (move to Trash by default, or permanently delete)
- Required inputs:
folder_id(string): Folder ID currently containing the messagesmessage_ids(string[]): Message sequence UIDs
- Optional inputs:
permanent(boolean): Iftrue, permanently delete. Iffalse(default), move to Trash.mailbox_uuid(string): Mailbox UUID (uses primary if omitted)
- Returns: Confirmation with count of deleted messages and whether deletion was permanent
Setup
- Create a token linked to your user:
- Visit the API Token page
- Choose "workspace:mail" scopes
Usage with Claude Desktop
Add the following to your claude_desktop_config.json:
NPX
{
"mcpServers": {
"mail": {
"command": "npx",
"args": [
"-y",
"@infomaniak/mcp-server-mail"
],
"env": {
"MAIL_TOKEN": "your-token"
}
}
}
}Docker
{
"mcpServers": {
"mail": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MAIL_TOKEN",
"infomaniak/mcp-server-mail"
],
"env": {
"MAIL_TOKEN": "your-token"
}
}
}
}Environment Variables
MAIL_TOKEN: Required. Your Infomaniak API token.
Troubleshooting
If you encounter permission errors, verify that:
- All required scopes are added to your token
- The token is correctly copied to your configuration
Build
Docker build:
docker build -t infomaniak/mcp-server-mail -f Dockerfile .License
This MCP server is licensed under the MIT License.
