| .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 config: configure un profil IMAPemail-mcp setup: alias de compatibilité versconfigemail-mcp mcp: lance le serveur MCP surstdin/stdoutemail-mcp update: met à jour le binaire courant depuis la dernière release
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.jsondefault
Configurer un profil
./email-mcp config
Pour un profil nommé :
./email-mcp config --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 config`
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 :
[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"
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 config.
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