| .gitea/workflows | ||
| cmd/email-mcp | ||
| docs/superpowers | ||
| internal | ||
| .gitignore | ||
| go.mod | ||
| go.sum | ||
| Makefile | ||
| mcp.toml | ||
| README.md | ||
email-mcp
Serveur MCP local pour lire une boîte mail via IMAP. Le serveur parle le protocole MCP standard sur stdio, avec des messages JSON-RPC 2.0 (initialize, notifications/initialized, tools/list, tools/call).
Le binaire s’appuie maintenant sur mcp-framework pour :
- la gestion de profils CLI
- le stockage JSON de configuration dans
os.UserConfigDir() - le stockage du mot de passe dans le wallet natif de l’OS
- le manifeste
mcp.toml - l’auto-update via
email-mcp update
Commandes
email-mcp setup: configure (ou met à jour) un profil IMAPemail-mcp config show: affiche la configuration IMAP résolue et la provenanceemail-mcp config test: lance les checks de configuration/connectivité (équivalent dedoctor)email-mcp config delete: supprime un profil local et son mot de passe stockéemail-mcp mcp: lance le serveur MCP surstdin/stdoutemail-mcp doctor: diagnostique la configuration locale, le wallet, le manifeste et l’accès IMAPemail-mcp update: met à jour le binaire courant depuis la dernière releaseemail-mcp version: affiche la version du binaire
La commande email-mcp help (ou -h / --help) affiche l’aide globale.
Outils MCP
list_mailboxes: lister les boîtes IMAP visibleslist_messages: lister les messages récents d’une boîteget_message: récupérer un message par UID IMAP
Configuration
La configuration est séparée en deux parties :
hostetusernamesont stockés dansconfig.jsonpasswordest stocké dans le wallet système
Le profil actif est résolu dans cet ordre :
--profileEMAIL_MCP_PROFILEcurrent_profiledansconfig.json[profiles].defaultdansmcp.tomldefault
Les credentials IMAP sont résolus ensuite via le résolveur multi-sources du framework (RC3) :
host:EMAIL_MCP_HOSTpuisconfig.jsonusername:EMAIL_MCP_USERNAMEpuisconfig.jsonpassword:EMAIL_MCP_PASSWORDpuis secret walletimap-password/<profile>
Configurer un profil
./email-mcp setup
Pour un profil nommé :
./email-mcp setup --profile work
Le binaire demande ensuite :
- l’hôte IMAP
- le nom d’utilisateur
- le mot de passe
Si un mot de passe existe déjà dans le wallet, laisser le champ vide le conserve.
Lancer le serveur MCP
./email-mcp mcp
Pour un profil nommé :
./email-mcp mcp --profile work
Si aucun credential n’a été configuré pour le profil résolu, le serveur renvoie l’erreur :
credentials not configured; run `email-mcp setup`
Inspecter la configuration résolue
./email-mcp config show
./email-mcp config show --profile work
Tester la configuration résolue
./email-mcp config test
./email-mcp config test --profile work
Auto-update
email-mcp update lit mcp.toml depuis le répertoire du binaire courant, puis remonte les répertoires parents. Si aucun manifeste n’est trouvé, la commande échoue.
./email-mcp update
Le manifeste de ce repo pointe vers l’endpoint Gitea :
binary_name = "email-mcp"
[update]
source_name = "email-mcp releases"
base_url = "https://gitea.lclr.dev"
latest_release_url = "https://gitea.lclr.dev/api/v1/repos/AI/email-mcp/releases/latest"
Diagnostic
email-mcp doctor vérifie :
- la lisibilité du fichier de configuration
- le profil IMAP résolu
- la disponibilité du wallet système
- la présence du mot de passe stocké
- la validité du manifeste
mcp.toml - la connectivité IMAP avec les credentials résolus
./email-mcp doctor
./email-mcp doctor --profile work
La commande retourne un code de sortie non nul si au moins un check échoue.
Installation
Claude Code CLI
Ajoute le serveur MCP en pointant vers le binaire et la sous-commande mcp :
claude mcp add email-mcp -- /absolute/path/to/bin/email-mcp mcp
La configuration se fait une fois séparément via email-mcp setup.
Configuration JSON manuelle
Ajoute le bloc suivant à ta configuration MCP (~/.claude.json côté utilisateur, ou .mcp.json dans un projet) :
{
"mcpServers": {
"email-mcp": {
"command": "/absolute/path/to/bin/email-mcp",
"args": ["mcp"]
}
}
}
Releases
Une release est générée automatiquement quand tu pousses un tag v* sur le repo Gitea.
Les assets publiés sont :
build/email-mcp-linux-amd64mcp.toml
Compiler depuis les sources
make build
Le binaire est généré dans build/email-mcp-<goos>-<goarch> avec une version injectée depuis git describe.
Pour cross-compiler :
make build GOOS=windows GOARCH=amd64
Pour lancer les tests :
make test