imap-mail-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| IMAP_SSL | No | Use SSL for IMAP; set to 'false' for STARTTLS | true |
| IMAP_HOST | Yes | IMAP server hostname (required) | |
| IMAP_PORT | No | IMAP port (993 for SSL, 143 for STARTTLS) | 993 |
| MAIL_FROM | No | From address, e.g. 'Name <user@example.com>' | MAIL_USER |
| MAIL_PASS | Yes | Email account password (required) | |
| MAIL_USER | Yes | Email account username (required) | |
| SMTP_HOST | Yes | SMTP server hostname (required) | |
| SMTP_PORT | No | SMTP port (587, 465, or 25) | 587 |
| ATTACH_DIR | No | Directory to save attachments | ~/mcp-mail-attachments |
| TLS_VERIFY | No | Verify TLS certificate; set to 'false' for self-signed | true |
| SENT_FOLDER | No | Sent folder name; auto-detected if not set | |
| SMTP_SECURITY | No | SMTP security mode: starttls, ssl, or none | starttls |
| MAX_BODY_CHARS | No | Maximum characters of email body to read | 20000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_accountsA | Lista as contas de e-mail configuradas e qual é a padrão. |
| account_infoB | Mostra a configuração ativa de uma conta (sem senha), capacidades do servidor IMAP e a pasta de Enviados detectada. |
| list_foldersA | Lista todas as pastas (mailboxes) de uma conta. Com with_counts=True inclui total e não lidos (mais lento). account: nome ou e-mail da conta; vazio = conta padrão. |
| search_emailsA | Busca e-mails em uma pasta de uma conta. Retorna os mais recentes primeiro com UID, remetente, assunto, data e flags. account: nome ou e-mail da conta; vazio = conta padrão. Datas no formato YYYY-MM-DD. raw_criteria permite passar critério IMAP SEARCH direto (ex.: 'UNSEEN FROM "x"'), ignorando os demais filtros. Os filtros sender/to/subject/text são substring, case-insensitive. |
| search_all_accountsB | Executa a mesma busca em TODAS as contas configuradas (mesma pasta em cada uma) e devolve os resultados agrupados por conta. Útil para 'o que chegou de novo em todas as caixas'. Erros de uma conta não interrompem as demais. |
| read_emailB | Lê um e-mail completo pelo UID: cabeçalhos, corpo (texto por padrão, ou HTML) e lista de anexos. account: nome ou e-mail da conta; vazio = conta padrão. Use download_attachment para salvar anexos. max_chars=0 usa o limite padrão (MAX_BODY_CHARS). |
| get_raw_emailC | Retorna a fonte RFC822 completa da mensagem (cabeçalhos brutos + MIME). Útil para diagnóstico. |
| download_attachmentB | Salva anexos de um e-mail em disco. index=-1 salva todos; caso contrário salva só o anexo indicado (índice conforme read_email). dest_dir vazio usa a pasta de anexos da conta. Retorna os caminhos gravados. |
| send_emailA | Envia um e-mail via SMTP pela conta indicada (account vazio = conta padrão). Destinatários separados por vírgula ou ponto-e-vírgula. html=True trata body como HTML. attachments = lista de caminhos locais. Grava cópia na pasta Enviados via IMAP quando save_to_sent=True. |
| reply_emailA | Responde um e-mail existente mantendo o encadeamento (In-Reply-To/References) e marca-o como respondido. account: nome ou e-mail da conta onde o e-mail está; vazio = conta padrão. |
| forward_emailC | Encaminha um e-mail (corpo em texto + anexos originais) para novos destinatários. |
| set_flagsB | Marca/desmarca flags em um ou mais UIDs: seen (lido), flagged (estrela/importante), answered. Passe True para adicionar, False para remover, omita para não alterar. |
| move_emailB | Move e-mails para outra pasta da mesma conta (usa MOVE se o servidor suportar; senão COPY + delete + EXPUNGE). |
| delete_emailA | Exclui e-mails (marca \Deleted e, se expunge=True, remove definitivamente da pasta). Para 'mover para a lixeira' prefira move_email para a pasta Trash/Lixeira. |
| create_folderC | Cria uma pasta. Use o delimitador do servidor para subpastas (ex.: 'INBOX/Clientes' ou 'INBOX.Clientes'). |
| delete_folderC | Remove uma pasta e todas as mensagens nela. Irreversível. |
| rename_folderD | Renomeia uma pasta. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 17 tools
Each tool maps to a distinct IMAP action (list, search, read, send, flag, move, delete, folder CRUD). Minor overlaps exist between read_email/get_raw_email and search_emails/search_all_accounts, but descriptions clarify scope (formatted vs raw source; single account vs all accounts).
Mostly consistent verb_noun snake_case pattern: list_folders, search_emails, send_email, move_email, create_folder. The main exception is account_info (noun_noun), which breaks the pattern but does not make the naming chaotic.
17 tools is slightly above the typical 3–15 sweet spot, but each maps to a necessary email action (accounts, folders, search, read/send/reply/forward, attachments, flags, move, delete). No obvious filler tools, so the count is reasonable for a full IMAP client.
Covers core lifecycle: account listing/config, folder CRUD, message search/read/send/reply/forward, attachment download, flags, move, delete. Minor gaps exist (e.g., draft management), but agents can work around them and the core workflows are complete.