docs: restore french accents in readme

This commit is contained in:
thibaud-leclere 2026-04-13 15:57:35 +02:00
parent 2bda5459d6
commit 9b151968bd

View file

@ -1,15 +1,15 @@
# mcp-framework # mcp-framework
Bibliotheque Go pour construire des binaires MCP avec : Bibliothèque Go pour construire des binaires MCP avec :
- resolution de profils CLI - résolution de profils CLI
- stockage JSON de configuration dans `os.UserConfigDir()` - stockage JSON de configuration dans `os.UserConfigDir()`
- stockage de secrets dans le wallet natif selon l'OS - stockage de secrets dans le wallet natif selon l'OS
- lecture d'un manifeste `mcp.toml` a la racine du projet - lecture d'un manifeste `mcp.toml` à la racine du projet
- pipeline d'auto-update via endpoint de release configurable - pipeline d'auto-update via endpoint de release configurable
Le framework est volontairement petit. Il fournit des briques reutilisables, Le framework est volontairement petit. Il fournit des briques réutilisables,
pas une application MCP complete. pas une application MCP complète.
## Installation ## Installation
@ -19,26 +19,26 @@ go get gitea.lclr.dev/AI/mcp-framework
## Packages ## Packages
- `cli` : helpers pour resoudre un profil, valider une URL et demander des valeurs a l'utilisateur. - `cli` : helpers pour résoudre un profil, valider une URL et demander des valeurs à l'utilisateur.
- `config` : lecture/ecriture atomique d'une config JSON versionnee dans `os.UserConfigDir()`. - `config` : lecture/écriture atomique d'une config JSON versionnée dans `os.UserConfigDir()`.
- `manifest` : lecture de `mcp.toml` a la racine du projet et conversion vers `update.ReleaseSource`. - `manifest` : lecture de `mcp.toml` à la racine du projet et conversion vers `update.ReleaseSource`.
- `secretstore` : lecture/ecriture de secrets dans le wallet natif. - `secretstore` : lecture/écriture de secrets dans le wallet natif.
- `update` : telechargement et remplacement du binaire courant depuis un endpoint de release. - `update` : téléchargement et remplacement du binaire courant depuis un endpoint de release.
## Usage Type ## Utilisation type
Le flux typique cote application est : Le flux typique côté application est :
1. Resoudre le profil actif avec `cli`. 1. Résoudre le profil actif avec `cli`.
2. Charger la config versionnee avec `config`. 2. Charger la config versionnée avec `config`.
3. Lire les secrets avec `secretstore`. 3. Lire les secrets avec `secretstore`.
4. Charger `mcp.toml` avec `manifest`. 4. Charger `mcp.toml` avec `manifest`.
5. Executer l'auto-update avec `update` si necessaire. 5. Exécuter l'auto-update avec `update` si nécessaire.
## Manifeste `mcp.toml` ## Manifeste `mcp.toml`
Le package `manifest` cherche automatiquement `mcp.toml` dans le repertoire Le package `manifest` cherche automatiquement `mcp.toml` dans le répertoire
courant puis remonte les repertoires parents jusqu'a trouver le fichier. courant puis remonte les répertoires parents jusqu'à trouver le fichier.
Exemple minimal : Exemple minimal :
@ -51,12 +51,12 @@ token_header = "Authorization"
token_env_names = ["GITEA_TOKEN"] token_env_names = ["GITEA_TOKEN"]
``` ```
Champs supportes dans `[update]` : Champs supportés dans `[update]` :
- `source_name` : nom humain de la source de release, utilise dans certains messages d'erreur. - `source_name` : nom humain de la source de release, utilisé dans certains messages d'erreur.
- `base_url` : base de la forge ou du service de release. - `base_url` : base de la forge ou du service de release.
- `latest_release_url` : URL complete qui retourne la release la plus recente. - `latest_release_url` : URL complète qui retourne la release la plus récente.
- `token_header` : header HTTP a utiliser pour l'authentification. - `token_header` : header HTTP à utiliser pour l'authentification.
- `token_env_names` : liste de variables d'environnement candidates pour retrouver le token. - `token_env_names` : liste de variables d'environnement candidates pour retrouver le token.
Exemple de chargement : Exemple de chargement :
@ -73,7 +73,7 @@ source := file.Update.ReleaseSource()
## Config JSON ## Config JSON
Le package `config` stocke une structure generique par profil dans un JSON prive Le package `config` stocke une structure générique par profil dans un JSON privé
pour l'utilisateur courant. pour l'utilisateur courant.
Exemple : Exemple :
@ -108,14 +108,14 @@ fmt.Printf("config saved to %s\n", path)
Notes : Notes :
- le fichier est cree avec des permissions `0600` - le fichier est créé avec des permissions `0600`
- le repertoire parent est force en `0700` - le répertoire parent est forcé en `0700`
- l'ecriture est atomique via un fichier temporaire puis `rename` - l'écriture est atomique via un fichier temporaire puis `rename`
- si le fichier n'existe pas, `Load` et `LoadDefault` retournent une config vide par defaut - si le fichier n'existe pas, `Load` et `LoadDefault` retournent une config vide par défaut
## Secrets ## Secrets
Le package `secretstore` s'appuie sur le wallet natif du systeme : Le package `secretstore` s'appuie sur le wallet natif du système :
- macOS : Keychain - macOS : Keychain
- Linux : Secret Service ou KWallet selon l'environnement - Linux : Secret Service ou KWallet selon l'environnement
@ -146,7 +146,7 @@ default:
} }
``` ```
## CLI Helpers ## Helpers CLI
`cli` fournit des helpers simples pour les assistants interactifs : `cli` fournit des helpers simples pour les assistants interactifs :
@ -169,11 +169,11 @@ if err != nil {
## Auto-Update ## Auto-Update
Le package `update` ne deduit pas la forge ni l'authentification. Le package `update` ne déduit pas la forge ni l'authentification.
L'application cliente fournit l'URL de release, le header d'auth eventuel et, L'application cliente fournit l'URL de release, le header d'auth éventuel et,
si besoin, les variables d'environnement a consulter. si besoin, les variables d'environnement à consulter.
Le format attendu pour la reponse `latest release` est actuellement : Le format attendu pour la réponse `latest release` est actuellement :
```json ```json
{ {
@ -210,10 +210,10 @@ if err != nil {
Contraintes actuelles : Contraintes actuelles :
- le `latest_release_url` doit etre renseigne explicitement - le `latest_release_url` doit être renseigné explicitement
- les assets supportes sont `darwin/amd64`, `darwin/arm64`, `linux/amd64` et `windows/amd64` - les assets supportés sont `darwin/amd64`, `darwin/arm64`, `linux/amd64` et `windows/amd64`
- le remplacement du binaire n'est pas supporte sur Windows - le remplacement du binaire n'est pas supporté sur Windows
- le nom de l'asset est derive de `BinaryName`, `GOOS` et `GOARCH` - le nom de l'asset est dérivé de `BinaryName`, `GOOS` et `GOARCH`
## Exemple Minimal ## Exemple Minimal
@ -254,6 +254,6 @@ func run(ctx context.Context, flagProfile string) error {
## Limites Actuelles ## Limites Actuelles
- le manifeste gere uniquement la section `[update]` - le manifeste gère uniquement la section `[update]`
- le framework ne fournit pas encore d'interface unique de bootstrap - le framework ne fournit pas encore d'interface unique de bootstrap
- l'auto-update reste volontairement simple et ne supporte pas encore de scripts externes - l'auto-update reste volontairement simple et ne supporte pas encore de scripts externes