Huit étapes. Chacune prend une entrée, exécute une action, produit une sortie. Pointez SmeltSec vers un dépôt ou une spec OpenAPI ; obtenez un serveur MCP signé, noté, prêt à déployer.
Pointez SmeltSec vers une des trois sources. Une URL GitHub publique ou privée déclenche un clone. Un document OpenAPI 3.0/3.1 est parsé directement. Une description en langage naturel récupère la doc SDK pertinente. Sortie : un bundle source normalisé, prêt pour l'AST.
Tree-sitter parse le bundle et émet un AST typé par fichier. SmeltSec parcourt l'arbre, extrait les signatures de fonctions publiques et les handlers de route, et filtre tout ce qui est marqué internal ou deprecated. Sortie : une liste de candidats appelables avec leurs annotations de type.
Un pass LLM transforme chaque candidat en une définition d'outil MCP : nom, description et un JSON Schema strict pour les arguments et le type de retour. Les docstrings nourrissent les descriptions ; les annotations de type deviennent le schéma. Sortie : un manifeste d'outils typés prêts à câbler dans un serveur.
Chaque définition d'outil devient un vrai handler. SmeltSec émet du code FastMCP (Python 3.11) ou TypeScript SDK, câble les retries, circuit breakers, sanitation des arguments et le transport choisi. Sortie : un dépôt de serveur MCP exécutable avec dépendances figées.
Tout en local. Tout gratuit. Semgrep exécute les règles SAST, Gitleaks scanne le code et l'historique git pour les secrets, OSV-Scanner vérifie les dépendances épinglées contre la base OSV, MCP-Scan détecte le poisoning de descriptions. Une découverte Critique bloque le pipeline. Sortie : un rapport Gate 1 signé.
Un LLM compare la description de chaque outil à ce que son code fait vraiment. Les écarts apparaissent comme une dérive comportementale : un outil qui prétend lire mais écrit aussi, une description qui cache des effets de bord, une permission jamais déclarée. Cette étape est payante (≈ 0,02 $ par serveur). Sortie : un rapport comportemental avec Pass / Warn / Fail par outil.
Six dimensions, une note par serveur : clarté des descriptions, complétude du schéma, cohérence des noms, chevauchement avec les outils existants, surface d'erreur, hooks d'observabilité. Chaque dimension a un score chiffré et une suggestion. Sortie : une fiche de notation (A–F) avec actions concrètes.
SmeltSec empaquette le serveur, les deux rapports de gate, le score qualité et un SBOM dans une attestation signée avec cosign. Les configs clients pour Claude Desktop, Cursor, VS Code, ChatGPT et Windsurf sont écrites en une seule passe par le démon de synchronisation. Sortie : un serveur MCP signé et déployable, avec chaque outil câblé dans chaque client.
What to expect when running SmeltSec end to end.