Aller au contenu

Plugin TypeScript Nx

Générer un plugin Nx TypeScript complet avec un serveur Model Context Protocol (MCP) intégré. Ce générateur crée une base pour développer des générateurs personnalisés qui peuvent être utilisés de manière transparente par des assistants IA pour la génération automatisée de code et l’échafaudage de projets.

Vous pouvez générer un plugin Nx TypeScript de deux manières :

  1. Installez le Nx Console VSCode Plugin si ce n'est pas déjà fait
  2. Ouvrez la console Nx dans VSCode
  3. Cliquez sur Generate (UI) dans la section "Common Nx Commands"
  4. Recherchez @aws/nx-plugin - ts#nx-plugin
  5. Remplissez les paramètres requis
    • Cliquez sur Generate
    Paramètre Type Par défaut Description
    name Requis string - TypeScript project name
    directory string packages Parent directory where the library is placed.
    subDirectory string - The sub directory the lib is placed in. By default this is the library name.

    Le générateur créera la structure de projet suivante :

    • Répertoireyour-plugin/
      • Répertoiresrc/
        • index.ts Point d’entrée vide pour votre plugin
        • Répertoiremcp-server/
          • index.ts Exporte votre serveur
          • server.ts Configuration principale du serveur MCP
          • stdio.ts Point d’entrée pour le serveur MCP avec transport STDIO
          • http.ts Point d’entrée pour le serveur MCP avec transport HTTP streamable
          • Répertoiretools/
            • create-workspace-command.ts Outil pour guider la création d’espace de travail
            • general-guidance.ts Outil pour les bonnes pratiques Nx et plugin
            • list-generators.ts Outil pour lister les générateurs disponibles
            • generator-guide.ts Outil pour les informations détaillées sur les générateurs
          • utils.ts Fonctions utilitaires pour le serveur MCP
      • generators.json Configuration des générateurs Nx (vide initialement)
      • package.json Configuration du package du plugin avec binaire MCP server
      • tsconfig.json Configuration TypeScript (CommonJS pour compatibilité Nx)
      • project.json Configuration de projet Nx avec cibles de build et package

    Une fois votre projet de plugin créé, vous pouvez ajouter des générateurs avec ts#nx-generator :

    1. Installez le Nx Console VSCode Plugin si ce n'est pas déjà fait
    2. Ouvrez la console Nx dans VSCode
    3. Cliquez sur Generate (UI) dans la section "Common Nx Commands"
    4. Recherchez @aws/nx-plugin - ts#nx-generator
    5. Remplissez les paramètres requis
      • pluginProject: your-plugin
    6. Cliquez sur Generate

    Ceci ajoutera un nouveau générateur à votre plugin.

    Assurez-vous de rédiger un README.md détaillé pour votre générateur, car il est utilisé par l’outil generator-guide du serveur MCP.

    Le plugin généré inclut plusieurs cibles importantes :

    Compile votre code TypeScript et prépare le plugin à l’utilisation :

    Terminal window
    pnpm nx build your-plugin

    Crée un package distribuable prêt pour la publication sur NPM :

    Terminal window
    pnpm nx package your-plugin

    Le package inclut toutes les ressources nécessaires :

    • Fichiers JavaScript compilés
    • Fichiers de déclaration TypeScript
    • Fichiers de configuration des générateurs et exécuteurs
    • Documentation et fichiers de licence

    Le plugin configure un serveur MCP avec le générateur ts#mcp-server.

    Le plugin inclut un serveur MCP complet fournissant aux assistants IA les outils suivants :

    • general-guidance : Obtenir les bonnes pratiques pour utiliser Nx et votre plugin
    • create-workspace-command : Apprendre à créer des espaces de travail compatibles avec votre plugin
    • list-generators : Lister tous les générateurs disponibles dans votre plugin
    • generator-guide : Obtenir des informations détaillées sur les générateurs (schémas et utilisation)

    La plupart des assistants IA compatibles avec MCP utilisent une approche de configuration similaire. Vous devrez créer ou mettre à jour un fichier de configuration avec les détails de votre serveur MCP :

    {
    "mcpServers": {
    "your-mcp-server": {
    "command": "npx",
    "args": ["tsx", "/path/to/your-mcp-server/stdio.ts"]
    }
    }
    }

    Pendant le développement de votre serveur MCP, vous pouvez activer le flag --watch pour que l’assistant IA détecte toujours les dernières versions des outils/ressources :

    {
    "mcpServers": {
    "your-mcp-server": {
    "command": "npx",
    "args": ["tsx", "--watch", "/path/to/your-mcp-server/stdio.ts"]
    }
    }
    }

    Consultez la documentation suivante pour configurer MCP avec des assistants IA spécifiques :

    Vous pouvez étendre le serveur MCP en modifiant server.ts pour ajouter des outils ou ressources spécifiques à votre domaine.

    Pour plus de détails sur l’écriture de serveurs MCP, consultez le guide ts#mcp-server.

    1. Mettre à jour les informations du package : Modifiez le package.json avec le nom, la version, la description et les informations de dépôt appropriées.

    2. Compiler le package :

      Terminal window
      pnpm nx package your-plugin
    3. Tester localement : Vous pouvez tester votre plugin localement en l’installant dans un autre espace de travail :

      Fenêtre de terminal
      npm install /path/to/your/workspace/dist/your-plugin/package

    Une fois votre plugin prêt :

    Fenêtre de terminal
    cd dist/your-plugin/package
    npm publish

    Après publication, les autres utilisateurs peuvent installer et utiliser votre plugin :

    Terminal window
    pnpm add -w your-plugin-name

    Puis utilisez vos générateurs :

    1. Installez le Nx Console VSCode Plugin si ce n'est pas déjà fait
    2. Ouvrez la console Nx dans VSCode
    3. Cliquez sur Generate (UI) dans la section "Common Nx Commands"
    4. Recherchez your-plugin-name - your-generator-name
    5. Remplissez les paramètres requis
      • Cliquez sur Generate

      Configuration des assistants IA avec votre plugin publié

      Section intitulée « Configuration des assistants IA avec votre plugin publié »

      Le serveur MCP de votre plugin publié peut être configuré ainsi :

      {
      "mcpServers": {
      "aws-nx-mcp": {
      "command": "npx",
      "args": ["-y", "-p", "your-plugin-name", "your-plugin-name-mcp-server"]
      }
      }
      }