Fastmail MCP Server
Um servidor de código aberto que dá aos assistentes de IA acesso completo a e-mails, calendários e contatos do Fastmail via JMAP.
Documentação
Fastmail MCP Server
Um servidor Model Context Protocol (MCP) para Fastmail. Permite que qualquer assistente de IA compatível com MCP leia, pesquise, envie e gerencie e-mails, calendários e contatos em uma conta Fastmail por meio do protocolo JMAP.
Pré-requisitos
- Node.js 18 ou posterior
- Uma conta Fastmail (plano Standard ou Professional)
- Um token de API Fastmail com acesso JMAP
Configuração
1. Gerar um token de API Fastmail
- Faça login no Fastmail
- Vá para Configurações → Privacidade e Segurança → Gerenciar tokens de API
- Clique em Novo token de API
- Conceda acesso a E-mail, Calendários e Contatos (leitura e escrita)
- Copie o token gerado
2. Instalação
npm install @jordonh19/fastmail-mcp-server
Ou execute diretamente:
npx @jordonh19/fastmail-mcp-server
3. Configuração
Este servidor MCP funciona com qualquer assistente de IA que suporte o Model Context Protocol. Abaixo estão exemplos para clientes MCP populares.
Claude Desktop
Adicione à sua configuração do Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"fastmail": {
"command": "npx",
"args": ["@jordonh19/fastmail-mcp-server"],
"env": {
"FASTMAIL_API_TOKEN": "your-api-token-here"
}
}
}
}
Claude Code CLI
export FASTMAIL_API_TOKEN="your-api-token-here"
claude mcp add fastmail -- npx @jordonh19/fastmail-mcp-server
Cursor
Adicione à sua configuração MCP do Cursor (.cursor/mcp.json):
{
"mcpServers": {
"fastmail": {
"command": "npx",
"args": ["@jordonh19/fastmail-mcp-server"],
"env": {
"FASTMAIL_API_TOKEN": "your-api-token-here"
}
}
}
}
Windsurf
Adicione à sua configuração MCP do Windsurf (~/.codeium/windsurf/mcp_config.json):
{
"mcpServers": {
"fastmail": {
"command": "npx",
"args": ["@jordonh19/fastmail-mcp-server"],
"env": {
"FASTMAIL_API_TOKEN": "your-api-token-here"
}
}
}
}
VS Code
Adicione à sua configuração MCP do VS Code (.vscode/mcp.json):
{
"servers": {
"fastmail": {
"command": "npx",
"args": ["@jordonh19/fastmail-mcp-server"],
"env": {
"FASTMAIL_API_TOKEN": "your-api-token-here"
}
}
}
}
Outros clientes MCP
Para qualquer cliente compatível com MCP, execute o servidor com a variável de ambiente FASTMAIL_API_TOKEN definida:
FASTMAIL_API_TOKEN="your-api-token-here" npx @jordonh19/fastmail-mcp-server
O servidor se comunica via stdio por padrão, seguindo o protocolo de transporte MCP padrão. Para executar via HTTP, use a flag --transport:
FASTMAIL_API_TOKEN="your-api-token-here" npx @jordonh19/fastmail-mcp-server --transport http --port 3000
Ferramentas
search_emails: Pesquisar e-mails por caixa de correio, texto, remetente, intervalo de datas, anexos e mais.get_email: Obter o conteúdo completo do e-mail por ID.get_email_headers: Obter cabeçalhos selecionados do e-mail sem retornar o corpo completo da mensagem.get_thread: Obter todos os e-mails de uma conversa em thread.get_unread_emails: Recuperar rapidamente e-mails não lidos, opcionalmente filtrados por caixa de correio.get_latest_emails: Obter os e-mails mais recentes de todas ou de uma caixa de correio específica.get_mailbox_emails: Listar e-mails em uma caixa de correio específica com paginação.get_email_attachments: Listar anexos de um e-mail sem retornar o corpo completo da mensagem.send_email: Redigir e enviar um novo e-mail.reply_email: Responder ou responder a todos em um e-mail.forward_email: Encaminhar um e-mail para novos destinatários.create_draft: Salvar um e-mail como rascunho sem enviar.send_draft: Enviar um rascunho de e-mail salvo anteriormente.move_email: Mover um e-mail para uma caixa de correio diferente.add_labels: Adicionar rótulos de caixa de correio a um e-mail preservando as atribuições de caixa existentes.remove_labels: Remover rótulos de caixa de correio de um e-mail preservando outras atribuições de caixa.update_email_flags: Marcar e-mails como lidos/não lidos ou sinalizados/não sinalizados.delete_email: Mover para a Lixeira ou excluir permanentemente.bulk_email_action: Executar ações em vários e-mails de uma vez.bulk_add_labels: Adicionar rótulos de caixa de correio a vários e-mails de uma vez.bulk_remove_labels: Remover rótulos de caixa de correio de vários e-mails de uma vez.archive_email: Mover um ou mais e-mails para a caixa de correio Arquivo.mark_mailbox_read: Marcar todos os e-mails de uma caixa de correio como lidos.get_mailbox_stats: Obter contagens compactas de não lidos, e-mails e threads por caixa de correio.get_account_summary: Obter uma visão geral compacta da conta com totais de e-mails únicos e principais caixas de correio.download_attachment: Baixar um anexo de e-mail por ID de blob.one_click_unsubscribe: Enviar uma solicitação de cancelamento de assinatura com um clique para um e-mail.
Caixa de correio
list_mailboxes: Listar todas as caixas de correio ou pastas com funções e contagens de e-mails.create_mailbox: Criar uma nova caixa de correio ou pasta.rename_mailbox: Renomear uma caixa de correio ou pasta existente.delete_mailbox: Excluir uma caixa de correio ou pasta, opcionalmente com exclusão forçada.
Calendário
list_calendars: Listar todos os calendários com nomes, cores e visibilidade.get_calendar_events: Pesquisar ou listar eventos de calendário por intervalo de datas, calendário ou título.get_calendar_event: Obter detalhes completos de um evento de calendário específico.create_calendar_event: Criar um novo evento de calendário com local, participantes e alertas.update_calendar_event: Atualizar um evento de calendário existente.delete_calendar_event: Excluir um evento de calendário.
Contatos
list_address_books: Listar todos os catálogos de endereços ou grupos de contatos.search_contacts: Pesquisar contatos por nome, e-mail ou outros critérios.get_contact: Obter detalhes completos de um contato específico.create_contact: Criar um novo contato com e-mail, telefone, organização e mais.update_contact: Atualizar as informações de um contato existente.delete_contact: Excluir um contato.
Identidade
get_identities: Listar identidades de remetente disponíveis.
Diagnóstico
check_function_availability: Verificar quais grupos de recursos do Fastmail e capacidades do cliente MCP estão disponíveis, com orientações de configuração para acesso ausente.
Modos de transporte
O servidor suporta dois modos de transporte:
stdio (padrão)
Transporte padrão de entrada/saída. Usado pela maioria dos clientes MCP (Claude Desktop, Cursor, VS Code, etc.):
FASTMAIL_API_TOKEN="your-token" npx @jordonh19/fastmail-mcp-server
HTTP (Streamable HTTP)
Executa como um servidor HTTP para acesso remoto ou cenários com vários clientes:
FASTMAIL_API_TOKEN="your-token" npx @jordonh19/fastmail-mcp-server --transport http --port 3000
O transporte HTTP expõe um único endpoint /mcp que suporta o protocolo MCP Streamable HTTP.
Painel Web UI
Ao executar em modo HTTP, um painel web integrado está disponível na raiz do servidor. Ele oferece:
- Log de chamadas de ferramentas em tempo real — veja cada invocação de ferramenta MCP em tempo real via SSE
- Rastreamento de conexões — monitore conexões ativas de clientes MCP
- Tempo de atividade do servidor — status de saúde em uma olhada
Na inicialização, o servidor imprime um token de acesso único no console. Abra http://localhost:<port>/ em um navegador e insira o token para fazer login. O token está vinculado a um cookie HttpOnly, portanto nunca aparece em URLs.
Extensão Claude Desktop (DXT)
Uma extensão .dxt pré-empacotada pode ser criada para instalação com um clique no Claude Desktop:
npm run build:dxt
Isso gera fastmail-mcp-server-v<version>.dxt na raiz do projeto. Clique duas vezes no arquivo (ou arraste-o para o Claude Desktop) para instalar. O Claude solicitará seu token de API Fastmail no primeiro uso.
Configuração
O servidor pode ser configurado por meio de variáveis de ambiente ou de um arquivo de configuração JSON.
Variáveis de ambiente
FASTMAIL_API_TOKEN: Obrigatório. Token de API Fastmail com acesso JMAP.
Arquivo de configuração
Crie um arquivo .fastmail-mcp.json na raiz do seu projeto ou no diretório inicial:
{
"transport": "stdio",
"port": 3000
}
O servidor procura arquivos de configuração nesta ordem:
./.fastmail-mcp.json(diretório atual)~/.fastmail-mcp.json(diretório inicial)
Variáveis de ambiente e flags de CLI sempre têm precedência sobre os valores do arquivo de configuração.
Desenvolvimento
Consulte CONTRIBUTING.md para diretrizes detalhadas de desenvolvimento.
git clone https://github.com/Jordonh18/fastmail-mcp-server.git
cd fastmail-mcp-server
npm install
npm run build
npm test
Scripts
| Comando | Descrição |
|---|---|
npm run build | Compilação TypeScript |
npm run build:dxt | Build + empacotamento como extensão .dxt do Claude Desktop |
npm run dev | Build em modo de observação |
npm test | Executar testes (Vitest) |
npm run test:coverage | Testes com cobertura v8 |
npm run typecheck | Verificação de tipos sem emitir |
Execute localmente:
FASTMAIL_API_TOKEN="your-token" node dist/index.js
Licença
MIT