pyfastmail-mcp
Servidor MCP para Fastmail — e-mail, contatos, calendários e arquivos via JMAP, CardDAV, CalDAV e WebDAV
Documentação
pyfastmail-mcp
Um servidor MCP que dá aos assistentes de IA acesso completo à sua conta Fastmail — e-mail, contatos, calendários e armazenamento de arquivos.
⚠️ Este servidor pode enviar e-mails, excluir mensagens e modificar contatos/calendários em seu nome. Assistentes de IA podem agir com base em conteúdo de fontes não confiáveis (e-mails, páginas da web, arquivos) que podem conter ataques de injeção de prompt. Revise as chamadas de ferramentas antes de aprová-las, especialmente ações que enviam e-mail ou excluem dados.
Recursos
| Domínio | Protocolo | Ferramentas |
|---|---|---|
| JMAP | Enviar, responder, encaminhar, pesquisar, ler, fixar, arquivar, palavras-chave, e-mail mascarado, anexos, conversas, importar/exportar, identidades | |
| Contatos | JMAP | Listar catálogos de endereços, CRUD de contatos, consulta |
| Calendário | CalDAV | Listar calendários, CRUD de eventos (opcional — requer senha de aplicativo) |
| Arquivos | WebDAV | Listar, enviar, baixar, mover, excluir, criar pastas (opcional — requer senha de aplicativo) |
Instalação
pip install pyfastmail-mcp
Ou execute diretamente com uvx:
uvx pyfastmail-mcp
Configuração
1. Obtenha as Credenciais do Fastmail
Você precisa de um token de API do Fastmail. Uma senha de aplicativo é opcional (necessária apenas para calendário e armazenamento de arquivos).
- Token de API (obrigatório — e-mail e contatos): Configurações do Fastmail → Privacidade e Segurança → Tokens de API — habilite o recurso
urn:ietf:params:jmap:contacts - Senha de aplicativo (opcional — calendários e arquivos): Configurações do Fastmail → Privacidade e Segurança → Senhas de aplicativo — crie uma com o escopo "DAV (CardDAV, CalDAV, WebDAV)"
Se você definir apenas o token de API, o servidor inicia com as ferramentas de e-mail e contatos. As ferramentas de calendário e arquivos são registradas somente quando a senha de aplicativo também é fornecida.
2. Defina as Variáveis de Ambiente
export FASTMAIL_API_TOKEN="fmu1-..."
export FASTMAIL_APP_PASSWORD="your-app-password"
export FASTMAIL_EMAIL="you@fastmail.com"
3. Adicione ao Seu Cliente MCP
Para o Claude Desktop, adicione em claude_desktop_config.json:
{
"mcpServers": {
"fastmail": {
"command": "uvx",
"args": ["pyfastmail-mcp"],
"env": {
"FASTMAIL_API_TOKEN": "fmu1-...",
"FASTMAIL_APP_PASSWORD": "your-app-password",
"FASTMAIL_EMAIL": "you@fastmail.com"
}
}
}
}
Para o Kiro CLI, adicione em .kiro/settings/mcp.json:
{
"mcpServers": {
"fastmail": {
"command": "uvx",
"args": ["pyfastmail-mcp"],
"env": {
"FASTMAIL_API_TOKEN": "${FASTMAIL_API_TOKEN}",
"FASTMAIL_EMAIL": "${FASTMAIL_EMAIL}",
"FASTMAIL_APP_PASSWORD": "${FASTMAIL_APP_PASSWORD}"
}
}
}
}
Ferramentas
E-mail (mail_*)
| Ferramenta | Descrição |
|---|---|
health_check | Verificar conexão e autenticação |
mail_list_mailboxes | Listar todas as caixas de correio (pastas/rótulos) |
mail_create_mailbox | Criar uma caixa de correio |
mail_rename_mailbox | Renomear uma caixa de correio |
mail_delete_mailbox | Excluir uma caixa de correio |
mail_get_email | Obter e-mail por ID (com cabeçalhos opcionais) |
mail_get_recent_emails | Obter e-mails recentes |
mail_search_emails | Pesquisar por consulta |
mail_search_snippets | Trechos destacados de resultados de pesquisa |
mail_get_email_thread | Obter conversa completa |
mail_mark_email_read | Marcar como lido/não lido |
mail_pin_email | Fixar/desafixar (marcar/estrelar) |
mail_move_email | Mover para caixa de correio |
mail_delete_email | Mover para a lixeira ou excluir permanentemente |
mail_archive_email | Arquivar |
mail_manage_email_labels | Adicionar/remover palavras-chave |
mail_export_email | Baixar arquivo .eml bruto |
mail_import_email | Importar .eml para o armazenamento de e-mail |
mail_parse_email | Analisar um blob como e-mail sem importar |
mail_list_identities | Listar identidades de envio |
mail_set_identity | Criar/atualizar/excluir identidades |
mail_send_email | Enviar novo e-mail |
mail_reply_to_email | Responder a e-mail |
mail_forward_email | Encaminhar e-mail |
mail_list_masked_emails | Listar e-mails mascarados |
mail_create_masked_email | Criar e-mail mascarado |
mail_update_masked_email | Atualizar estado, domínio, descrição ou URL do e-mail mascarado |
mail_download_attachment | Baixar anexo |
mail_upload_attachment | Fazer upload de blob para envio |
Contatos (contacts_*)
| Ferramenta | Descrição |
|---|---|
contacts_list_address_books | Listar catálogos de endereços |
contacts_list | Listar contatos (combinação de consulta e obtenção) |
contacts_get_contact | Obter contato(s) por ID |
contacts_query_contacts | Consultar contatos com filtros e ordenação |
contacts_create_contact | Criar contato |
contacts_update_contact | Atualizar campos do contato |
contacts_delete_contact | Excluir contato(s) |
Calendário (calendar_*)
| Ferramenta | Descrição |
|---|---|
calendar_list_calendars | Listar calendários |
calendar_list_events | Listar eventos |
calendar_get_event | Obter detalhes do evento |
calendar_create_event | Criar evento |
calendar_update_event | Atualizar evento |
calendar_delete_event | Excluir evento |
Arquivos (files_*)
| Ferramenta | Descrição |
|---|---|
files_list | Listar arquivos/pastas |
files_get | Baixar arquivo |
files_upload | Enviar arquivo |
files_create_folder | Criar pasta |
files_move | Mover/renomear arquivo |
files_delete | Excluir arquivo/pasta |
Desenvolvimento
git clone https://github.com/pjosols/pyfastmail-mcp.git
cd pyfastmail-mcp
uv sync --group dev
uv run pytest
Licença
MIT