60 lines
1.7 KiB
Markdown
60 lines
1.7 KiB
Markdown
|
|
# Génération depuis `mcp.toml`
|
||
|
|
|
||
|
|
La commande `mcp-framework generate` génère la glue Go dérivée du manifeste
|
||
|
|
racine d'un projet existant. Le premier usage couvert est le loader de
|
||
|
|
manifeste embarqué.
|
||
|
|
|
||
|
|
## Usage
|
||
|
|
|
||
|
|
Depuis la racine du projet consommateur :
|
||
|
|
|
||
|
|
```bash
|
||
|
|
mcp-framework generate
|
||
|
|
```
|
||
|
|
|
||
|
|
La commande lit `./mcp.toml`, valide son contenu avec le package `manifest`, et
|
||
|
|
génère :
|
||
|
|
|
||
|
|
```text
|
||
|
|
mcpgen/
|
||
|
|
manifest.go
|
||
|
|
```
|
||
|
|
|
||
|
|
Le fichier généré expose :
|
||
|
|
|
||
|
|
```go
|
||
|
|
func LoadManifest(startDir string) (manifest.File, string, error)
|
||
|
|
```
|
||
|
|
|
||
|
|
Cette fonction appelle `manifest.LoadDefaultOrEmbedded`. En développement, un
|
||
|
|
`mcp.toml` présent sur disque reste prioritaire. Pour un binaire copié seul,
|
||
|
|
elle utilise le contenu du manifeste embarqué au moment de la génération.
|
||
|
|
|
||
|
|
## Flags
|
||
|
|
|
||
|
|
- `--manifest` : chemin du `mcp.toml` à lire. Par défaut, `./mcp.toml`.
|
||
|
|
- `--package-dir` : répertoire du package généré. Par défaut, `mcpgen`.
|
||
|
|
- `--package-name` : nom du package Go généré. Par défaut, dérivé du dossier.
|
||
|
|
- `--check` : mode CI, échoue si les fichiers générés sont absents ou obsolètes.
|
||
|
|
|
||
|
|
Exemple CI :
|
||
|
|
|
||
|
|
```bash
|
||
|
|
mcp-framework generate --check
|
||
|
|
```
|
||
|
|
|
||
|
|
## Migration d'un wrapper manuel
|
||
|
|
|
||
|
|
Pour remplacer un wrapper local du type `internal/manifest` :
|
||
|
|
|
||
|
|
1. Déplacer le manifeste projet vers `mcp.toml` à la racine.
|
||
|
|
2. Lancer `mcp-framework generate`.
|
||
|
|
3. Remplacer les imports du wrapper local par le package généré, par exemple
|
||
|
|
`example.com/my-mcp/mcpgen`.
|
||
|
|
4. Remplacer les appels `manifest.Load(...)` du wrapper par
|
||
|
|
`mcpgen.LoadManifest(...)`.
|
||
|
|
5. Supprimer l'ancien wrapper manuel.
|
||
|
|
|
||
|
|
Après génération, un simple `go build ./...` suffit. La compilation ne dépend
|
||
|
|
pas de la commande `mcp-framework`.
|