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:

Terminal window
pnpm nx g @aws/nx-plugin:ts#nx-plugin
También puede realizar una ejecución en seco para ver qué archivos se cambiarían
Terminal window
pnpm nx g @aws/nx-plugin:ts#nx-plugin --dry-run
ParámetroTipoPredeterminadoDescripción
name Requeridostring-Nombre del proyecto TypeScript
directory stringpackagesDirectorio padre donde se coloca la biblioteca.
subDirectory string-El subdirectorio donde se coloca la biblioteca. Por defecto es el nombre de la biblioteca.
preferInstallDependencies booleantrueSi 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 Empty 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
        • 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
        • utils.ts Utility functions for the MCP server
    • generators.json Nx generator configuration (initially empty)
    • package.json Plugin package configuration
    • tsconfig.json TypeScript configuration (CommonJS for Nx compatibility)
    • project.json Nx project configuration with build and package targets

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

Terminal window
pnpm nx g @aws/nx-plugin:ts#nx-generator --project=your-plugin
También puede realizar una ejecución en seco para ver qué archivos se cambiarían
Terminal window
pnpm nx g @aws/nx-plugin:ts#nx-generator --project=your-plugin --dry-run

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
  • Archivos de configuración de generadores y ejecutores
  • 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.

  2. Construir el Paquete:

    Terminal window
    pnpm nx package your-plugin
  3. Probar Localmente: Puedes probar tu plugin localmente instalándolo en otro workspace:

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

Una vez que tu plugin esté listo:

Ventana de terminal
cd dist/your-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:

Terminal window
pnpm nx g your-plugin-name:your-generator-name
También puede realizar una ejecución en seco para ver qué archivos se cambiarían
Terminal window
pnpm nx g your-plugin-name:your-generator-name --dry-run

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"]
}
}
}