Serveur MCP SkyNode — pilotez vos serveurs depuis votre agent de code
SkyNode MCP demonstrates solid definition quality with complete schemas, detailed French descriptions, and thoughtful error handling. All 8 tools have explicit input schemas with typed parameters and descriptions. Tool names follow verb_noun convention (list_, inspect_, plan_, apply_, app_logs, rollback). Descriptions are comprehensive (100-300 chars), explaining WHAT, WHEN, and prerequisites. Risk annotations (READ_ONLY, DESTRUCTIVE) are present. However, descriptions are in French, which may reduce LLM comprehension in English-dominant contexts. Parameter descriptions are present but could be more explicit about constraints (e.g., format of server_id, path validation rules). Output schemas are not formally documented in the visible code, only inferred from implementation. Error handling is sophisticated (guard() pattern, custom error types) but recovery guidance is implicit rather than explicit in tool descriptions.
Lit les journaux d'une application déployée. Ce qu'il lit vient de l'application du client : c'est le seul outil dont la sortie est du texte que SkyNode n'a pas produit.
Exécute un plan de déploiement sur un serveur. Revalide le plan avant d'agir : schéma, dépendances, bornes, et surtout empreinte d'état. Une machine modifiée entre la proposition et l'exécution fait refuser le plan sans qu'une seule étape ne s'exécute.
Constate ce que contient un projet avant de le déployer : Dockerfile ou docker-compose déjà présents, runtime et framework détectés, port, clés d'environnement, poids de l'arborescence. À appeler avant inspect_server. Lecture seule : rien n'est écrit, et aucun contenu de fichier n'est renvoyé.
Constate l'état réel d'un serveur par SSH : système, ressources, Docker, reverse proxy, ports occupés, panneau de contrôle éventuel. Conclut sur un régime et dit si un déploiement y est possible, ou ce qu'il faut faire sinon. L'identifiant s'obtient avec list_servers. Lecture seule : rien n'est installé ni modifié, à l'exception d'un test d'élévation (`sudo -n true`) qui peut laisser une trace dans les journaux du serveur si l'utilisateur n'y a pas droit.
Descriptions are in French; LLMs trained primarily on English may misinterpret intent or fail to select tools appropriately. Consider providing English descriptions or translations.
Output schemas are not formally documented in tool definitions. Callers must infer response structure from implementation (format.ts, plan-render.ts, etc.). Document return types explicitly in tool registration.
Parameter constraints (e.g., server_id format, path validation, lines range) are mentioned in descriptions but not formalized as JSON Schema constraints (minLength, maxLength, pattern, minimum, maximum). This forces LLMs to parse natural language rather than reading machine-readable constraints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
Liste les serveurs (VPS) du compte SkyNode : nom, adresse IP, état, identifiant. À appeler en premier pour savoir sur quelle machine travailler. Lecture seule.
Constate le projet et le serveur, puis propose un plan de déploiement détaillé : ce qui sera installé, construit, démarré et publié, dans l'ordre. N'exécute rien — le plan est à lire et à faire approuver par le développeur avant toute action. Rend un refus motivé quand le serveur ne peut pas recevoir de déploiement, ou quand le projet ne peut pas y être déployé.
Annule le dernier déploiement d'une application et la ramène à son état antérieur.
Détaille un serveur : état, adresses IP, système, région, utilisateur SSH, échéance de facturation. L'identifiant s'obtient avec list_servers. Lecture seule.
apply_plan accepts a 'plan' parameter of type 'object' with no schema. This is underspecified, LLMs cannot validate the plan structure before submission. Define a formal schema for the plan object (required fields, types, nested structure).
Error recovery guidance is embedded in the guard() function and custom error messages but not surfaced in tool descriptions. Descriptions should explicitly state: 'If X fails, try Y next' to guide agent recovery.