No description
Find a file
2026-04-14 10:25:11 +02:00
.gitea/workflows feat: adopt mcp framework cli flow 2026-04-13 18:01:28 +02:00
cmd/email-mcp feat: adopt mcp framework cli flow 2026-04-13 18:01:28 +02:00
docs/superpowers docs: add email mcp implementation plan 2026-04-10 09:32:21 +02:00
internal feat(cli): adopt rc4 declarative setup engine 2026-04-14 10:13:39 +02:00
.gitignore update .gitignore 2026-04-10 14:37:26 +02:00
go.mod build: bump framework version to 1.2.0 2026-04-14 10:25:11 +02:00
go.sum build: bump framework version to 1.2.0 2026-04-14 10:25:11 +02:00
Makefile feat: adopt mcp framework cli flow 2026-04-13 18:01:28 +02:00
mcp.toml feat: adopt mcp framework cli flow 2026-04-13 18:01:28 +02:00
README.md feat: adopt rc3 credential resolution flow 2026-04-14 09:04:40 +02:00

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 sappuie 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 lOS
  • le manifeste mcp.toml
  • lauto-update via email-mcp update

Commandes

  • email-mcp config : configure un profil IMAP
  • email-mcp setup : alias de compatibilité vers config
  • email-mcp mcp : lance le serveur MCP sur stdin/stdout
  • email-mcp doctor : diagnostique la configuration locale, le wallet, le manifeste et laccès IMAP
  • email-mcp update : met à jour le binaire courant depuis la dernière release
  • email-mcp version : affiche la version du binaire

La commande email-mcp help (ou -h / --help) affiche laide globale.

Outils MCP

  • list_mailboxes : lister les boîtes IMAP visibles
  • list_messages : lister les messages récents dune boîte
  • get_message : récupérer un message par UID IMAP

Configuration

La configuration est séparée en deux parties :

  • host et username sont stockés dans config.json
  • password est stocké dans le wallet système

Le profil actif est résolu dans cet ordre :

  1. --profile
  2. EMAIL_MCP_PROFILE
  3. current_profile dans config.json
  4. default

Les credentials IMAP sont résolus ensuite via le résolveur multi-sources du framework (RC3) :

  1. host : EMAIL_MCP_HOST puis config.json
  2. username : EMAIL_MCP_USERNAME puis config.json
  3. password : EMAIL_MCP_PASSWORD puis secret wallet imap-password/<profile>

Configurer un profil

./email-mcp config

Pour un profil nommé :

./email-mcp config --profile work

Le binaire demande ensuite :

  1. lhôte IMAP
  2. le nom dutilisateur
  3. 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 na été configuré pour le profil résolu, le serveur renvoie lerreur :

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 nest trouvé, la commande échoue.

./email-mcp update

Le manifeste de ce repo pointe vers lendpoint 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"

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 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-amd64
  • mcp.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