No description
Find a file
thibaud-lclr 90dbed4d37 fix(secretstore): éviter l'invalidation croisée des sessions Bitwarden entre MCPs
Quand deux MCPs appellaient login, le second appelait bw unlock et générait
un nouveau token, invalidant celui du premier. Deux mécanismes corrigent ça :

1. LoginBitwarden ne relance plus bw unlock si le vault est déjà unlocked
   et qu'une session existe (env, fichier service, ou fichier partagé).
2. Le login écrit le token dans ~/.config/mcp-framework/bw-session (partagé)
   en plus du fichier service-spécifique. Les autres MCPs lisent ce fichier
   en priorité via refreshSessionEnv avant chaque opération Bitwarden.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 13:57:58 +02:00
.forgejo/workflows ci(release): corriger la construction de l'URL git pour le push 2026-05-13 11:31:42 +02:00
bootstrap refactor(bootstrap): renommer DefaultLoginHandler en BitwardenLoginHandler 2026-05-13 10:50:28 +02:00
cli feat(bootstrap): ajouter DefaultLoginHandler et StandardConfigTestHandler 2026-05-13 10:45:51 +02:00
cmd/mcp-framework chore: update module path to forge 2026-05-05 12:23:14 +02:00
config feat: add versioned config migrations 2026-04-13 17:28:47 +02:00
docs docs: mettre à jour bootstrap-cli et cli-helpers 2026-05-13 10:55:52 +02:00
generate chore: update module path to forge 2026-05-05 12:23:14 +02:00
manifest chore: update module path to forge 2026-05-05 12:23:14 +02:00
scaffold chore: update module path to forge 2026-05-05 12:23:14 +02:00
secretstore fix(secretstore): éviter l'invalidation croisée des sessions Bitwarden entre MCPs 2026-05-13 13:57:58 +02:00
update fix(update): reject HTML artifacts during self-update 2026-04-15 14:23:15 +02:00
.gitignore update .gitignore 2026-04-13 15:47:20 +02:00
AGENTS.md docs(agents): ajouter instruction de mise à jour du CHANGELOG après chaque dev 2026-05-13 11:22:15 +02:00
CHANGELOG.md fix(secretstore): éviter l'invalidation croisée des sessions Bitwarden entre MCPs 2026-05-13 13:57:58 +02:00
CLAUDE.md docs(agents): ajouter instruction de mise à jour du CHANGELOG après chaque dev 2026-05-13 11:22:15 +02:00
go.mod chore: update module path to forge 2026-05-05 12:23:14 +02:00
go.sum feat: add toml manifest loader for mcp projects 2026-04-13 15:52:00 +02:00
README.md chore: update module path to forge 2026-05-05 12:23:14 +02:00

mcp-framework

mcp-framework est une bibliothèque Go et un petit CLI pour construire des binaires MCP avec une base commune : CLI, configuration locale, secrets, manifeste mcp.toml, diagnostic et auto-update.

Installation

Dans un projet Go :

go get forge.lclr.dev/AI/mcp-framework

Pour utiliser le CLI :

go install forge.lclr.dev/AI/mcp-framework/cmd/mcp-framework@latest

Créer un projet MCP

mcp-framework scaffold init \
  --target ./my-mcp \
  --module example.com/my-mcp \
  --binary my-mcp \
  --profiles dev,prod

cd my-mcp
go mod tidy
go run ./cmd/my-mcp help

Le scaffold crée une arborescence prête à adapter :

cmd/<binary>/main.go
internal/app/app.go
mcp.toml
install.sh
README.md

Générer la glue depuis mcp.toml

Dans un projet qui possède un mcp.toml à la racine :

mcp-framework generate

La commande génère un package mcpgen/ avec un loader de manifeste embarqué, des helpers de métadonnées, update, secret store, et des helpers de config si [[config.fields]] est déclaré.

En CI :

mcp-framework generate --check

Utiliser les packages

Les packages peuvent être utilisés séparément :

  • bootstrap : CLI commune (setup, login, mcp, config, update, version).
  • cli : résolution de profil, setup interactif, résolution flag/env/config/secret, doctor.
  • config : stockage JSON versionné dans le répertoire de config utilisateur.
  • manifest : lecture de mcp.toml et fallback embarqué.
  • secretstore : keyring natif, environnement ou Bitwarden CLI.
  • update : téléchargement et remplacement du binaire depuis une release.
  • scaffold : génération d'un squelette de projet.
  • generate : génération de code Go depuis mcp.toml.

Documentation