3.3 KiB
3.3 KiB
Manifeste mcp.toml
Le package manifest cherche automatiquement mcp.toml dans le répertoire courant puis remonte les répertoires parents jusqu'à trouver le fichier.
Exemple minimal :
binary_name = "my-mcp"
docs_url = "https://docs.example.com/my-mcp"
[update]
source_name = "Gitea releases"
driver = "gitea"
repository = "org/repo"
base_url = "https://gitea.example.com"
asset_name_template = "{binary}-{os}-{arch}{ext}"
checksum_asset_name = "{asset}.sha256"
checksum_required = true
signature_asset_name = "{asset}.sig"
signature_required = false
signature_public_key_env_names = ["MY_MCP_RELEASE_ED25519_PUBLIC_KEY"]
token_header = "Authorization"
token_prefix = "token"
token_env_names = ["GITEA_TOKEN"]
[environment]
known = ["MY_MCP_PROFILE", "MY_MCP_URL", "MY_MCP_TOKEN"]
[secret_store]
backend_policy = "auto"
[profiles]
default = "prod"
known = ["dev", "staging", "prod"]
[bootstrap]
description = "Client MCP interne"
Champs supportés :
binary_name: nom du binaire (utilisable par le bootstrap/scaffolding).docs_url: URL de documentation projet.[update]: source de release consommée parupdate.source_name: nom humain de la source de release, utilisé dans certains messages d'erreur.driver: driver de forge (gitea,gitlab,github) pour déduire automatiquement l'endpoint latest.repository: dépôt cible (org/repoougroup/subgroup/repo).base_url: base de la forge ou du service de release.latest_release_url: URL complète qui retourne la release la plus récente (prioritaire sur le driver).asset_name_template: template de nom d'asset ({binary},{os},{arch},{ext}).checksum_asset_name: nom d'asset checksum, avec placeholder optionnel{asset}.checksum_required: sitrue, l'update échoue quand l'asset checksum est absent.signature_asset_name: nom d'asset signature Ed25519 (détachée), avec placeholder optionnel{asset}.signature_required: sitrue, l'update échoue si la signature ou la clé publique manquent, ou si la signature est invalide.signature_public_key: clé publique Ed25519 (hex ou base64) utilisée pour vérifier la signature.signature_public_key_env_names: variables d'environnement candidates contenant la clé publique Ed25519.token_header: header HTTP à utiliser pour l'authentification.token_prefix: préfixe appliqué devant le token (Bearer,token, ...).token_env_names: liste de variables d'environnement candidates pour retrouver le token.[environment].known: variables d'environnement connues du projet.[secret_store].backend_policy: politique de secret store (auto,kwallet-only,keyring-any,env-only).[profiles].default: profil recommandé par défaut.[profiles].known: profils connus du projet.[bootstrap].description: description CLI utilisée par le bootstrap.
Toutes ces sections (hors [update] selon les besoins de l'application) sont optionnelles.
Exemple de chargement :
file, path, err := manifest.LoadDefault(".")
if err != nil {
return err
}
fmt.Printf("manifest loaded from %s\n", path)
source := file.Update.ReleaseSource()
bootstrapInfo := file.BootstrapInfo()
scaffoldInfo := file.ScaffoldInfo()
_ = bootstrapInfo
_ = scaffoldInfo
_ = source