Serveur MCP — @spektrum/release-util-mcp
Vue d'ensemble
@spektrum/release-util-mcp est un serveur Model Context Protocol qui expose les opérations de release comme des outils typés à destination des agents IA (Claude Code, etc.). Il vit dans packages/mcp/ en tant que package workspace pnpm distinct.
Architecture en deux niveaux
Les outils de lecture seule importent directement le sous-chemin ./api du package principal (zéro sous-processus, typage complet). Les outils mutants délèguent au binaire CLI via un sous-processus car ils invoquent release-it et git push. Les releases prod sont volontairement exclues — une release de production doit être validée par un humain. Pour la même raison, hotfix --apply (qui pousse un tag prod et déclenche un déploiement en production) n'est pas exposé : seuls --start et --finish le sont.
Sous-chemin API du package principal
src/api.ts est un barrel qui ré-exporte : buildReleasePlan, parseReleaseSubject, runPreconditions, loadConfig, repoRoot, CliError, isCliError. Le build génère dist/api.js (esbuild) et dist/api.d.ts (tsc via tsconfig.build.json). Le package.json expose le sous-chemin avec la condition types.
Outils MCP
| Outil | Entrée | Sortie | Implémentation |
|---|---|---|---|
next_version | `{ env: "staging" | "feature" }` | { version, bump, branchName } |
preview_release | `{ env: "staging" | "prod" | "feature" }` |
detect_release | { tag: string } | { version, env, slug? } | Bibliothèque |
check_preconditions | {} | { passed, checks[] } | Bibliothèque |
cut_staging_release | { bump?: boolean } | { version, mrUrl? } | Sous-processus CLI |
cut_feature_release | {} | { version } | Sous-processus CLI |
start_hotfix | {} | { version, branch } | Sous-processus CLI |
finish_hotfix | {} | { mrUrl? } | Sous-processus CLI |
hotfix --apply (tag + déploiement production) est volontairement absent — étape humaine uniquement.
Configuration consommateur
{
"mcpServers": {
"release-util": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@spektrum/release-util-mcp"]
}
}
}
