Ir al contenido

TypeScript Nx Plugin

Genera un Nx Plugin completo en TypeScript con un servidor Model Context Protocol (MCP) integrado. Este generador crea una base para construir generadores personalizados que pueden ser utilizados sin problemas por asistentes de IA para la generación automatizada de código y el andamiaje de proyectos.

Puedes generar un TypeScript Nx Plugin de dos maneras:

Ejecute este generador@aws/nx-plugin:ts#nx-plugin

pnpm nx g @aws/nx-plugin:ts#nx-plugin
Construya su comando4

Requerido

Opciones del generador4 opciones
nameRequeridostring

Nombre del proyecto TypeScript

directorystringPredeterminado: packages

Directorio padre donde se coloca la biblioteca.

subDirectorystring

El subdirectorio donde se coloca la biblioteca. Por defecto es el nombre de la biblioteca.

preferInstallDependenciesbooleanPredeterminado: true

Si se prefiere instalar las dependencias después de que se ejecute el generador. Establecer en false para diferir la instalación al ejecutar múltiples generadores en lote (la instalación aún se ejecuta si es necesaria para que los generadores subsecuentes puedan calcular el grafo de proyectos de Nx); instalar una vez al final.

El generador creará la siguiente estructura de proyecto:

  • Directorioyour-plugin/
    • Directoriosrc/
      • index.ts Entry point for your plugin
      • Directoriomcp-server/
        • index.ts Exports your server
        • server.ts Main MCP server configuration
        • stdio.ts Entry point for your MCP server with STDIO transport
        • http.ts Entry point for your MCP server with Streamable HTTP transport
        • schema.ts Shared schemas for the MCP server’s tools
        • utils.ts Utility functions for the MCP server
        • Directorioresources/
          • GENERAL_GUIDANCE.md Guidance served by the general-guidance tool
        • Directoriotools/
          • create-workspace-command.ts Tool for workspace creation guidance
          • general-guidance.ts Tool for general Nx and plugin guidance
          • list-generators.ts Tool to list available generators
          • generator-guide.ts Tool for detailed generator information
    • generators.json Nx generator configuration (initially empty)
    • package.json Plugin package configuration
    • project.json Nx project configuration with build and package targets
    • tsconfig.json TypeScript configuration, referencing the two below
    • tsconfig.lib.json TypeScript configuration for your plugin’s source
    • tsconfig.spec.json TypeScript configuration for your plugin’s tests
    • vitest.config.mts Vitest configuration for your plugin’s tests
    • README.md Documentation for your plugin, served by the generator-guide tool
    • LICENSE Written by the license generator’s sync, when configured

Una vez que tengas tu proyecto de plugin, puedes agregar generadores usando el generador ts#nx-generator:

Ejecute este generador@aws/nx-plugin:ts#nx-generator

pnpm nx g @aws/nx-plugin:ts#nx-generator
Construya su comando5

Requerido

Requerido

Esto agregará un nuevo generador a tu plugin.

Asegúrate de escribir un README.md detallado para tu generador, ya que esto es utilizado por la herramienta generator-guide del servidor MCP.

El plugin generado incluye varios targets importantes:

Compila tu código TypeScript y prepara el plugin para su uso:

Terminal window
pnpm nx build your-plugin

Crea un paquete distribuible listo para publicar en NPM:

Terminal window
pnpm nx package your-plugin

El target package incluye todos los activos necesarios:

  • Archivos JavaScript compilados
  • Archivos de declaración TypeScript
  • Los manifiestos generators.json, executors.json y migrations.json que Nx lee de un plugin publicado
  • Archivos de documentación y licencia

El plugin configura un servidor MCP usando el generador ts#mcp-server.

El plugin incluye un servidor MCP completo que proporciona a los asistentes de IA las siguientes herramientas:

  • general-guidance: Obtén mejores prácticas para trabajar con Nx y tu plugin
  • create-workspace-command: Aprende cómo crear nuevos workspaces que puedan usar tu plugin
  • list-generators: Lista todos los generadores disponibles en tu plugin
  • generator-guide: Obtén información detallada sobre generadores específicos, incluyendo esquemas y uso

La mayoría de los asistentes de IA que soportan MCP utilizan un enfoque de configuración similar. Necesitarás crear o actualizar un archivo de configuración con los detalles de tu servidor MCP:

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

Mientras desarrollas tu servidor MCP, es posible que desees configurar la bandera --watch para que el asistente de IA siempre vea las últimas versiones de herramientas/recursos:

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

Por favor, consulta la siguiente documentación para configurar MCP con Asistentes de IA específicos:

Puedes extender el servidor MCP modificando server.ts para agregar herramientas o recursos adicionales específicos del dominio de tu plugin.

Para más detalles sobre cómo escribir servidores MCP, consulta la guía de ts#mcp-server.

  1. Actualizar Información del Paquete: Edita el package.json de tu plugin con el nombre, versión, descripción e información del repositorio adecuados. También elimina "private": true.

  2. Construir el Paquete:

    Terminal window
    pnpm nx package your-plugin

    El paquete se coloca en dist/<raíz del proyecto de tu plugin>/package — para un plugin generado con --name=nx-plugin --directory=tools, eso es dist/tools/nx-plugin/package.

  3. Probar Localmente: Puedes probar tu plugin localmente instalándolo en otro workspace:

    Ventana de terminal
    npm install /path/to/your/workspace/dist/tools/nx-plugin/package

Una vez que tu plugin esté listo:

Ventana de terminal
cd dist/tools/nx-plugin/package
npm publish

Después de publicar, otros pueden instalar y usar tu plugin:

Terminal window
pnpm add -w your-plugin-name

Luego usar tus generadores:

Ejecute este generadoryour-plugin-name:your-generator-name

pnpm nx g your-plugin-name:your-generator-name

Configurar Asistentes de IA con tu Plugin Publicado

Sección titulada «Configurar Asistentes de IA con tu Plugin Publicado»

El servidor MCP de tu plugin publicado se puede configurar de la siguiente manera:

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