Skip to content

TypeScript Nx Plugin

Generate a complete TypeScript Nx Plugin with an integrated Model Context Protocol (MCP) server. This generator creates a foundation for building custom generators that can be seamlessly used by AI assistants for automated code generation and project scaffolding.

You can generate a TypeScript Nx Plugin in two ways:

  1. Install the Nx Console VSCode Plugin if you haven't already
  2. Open the Nx Console in VSCode
  3. Click Generate (UI) in the "Common Nx Commands" section
  4. Search for @aws/nx-plugin - ts#nx-plugin
  5. Fill in the required parameters
    • Click Generate
    Parameter Type Default Description
    name Required 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.

    The generator will create the following project structure:

    • Directoryyour-plugin/
      • Directorysrc/
        • index.ts Empty entry point for your plugin
        • Directorymcp-server/
          • index.ts MCP server entry point
          • server.ts Main MCP server configuration
          • Directorytools/
            • 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 with MCP server binary
      • tsconfig.json TypeScript configuration (CommonJS for Nx compatibility)
      • project.json Nx project configuration with build and package targets

    Once you have your plugin project, you can add generators using the ts#nx-generator generator:

    1. Install the Nx Console VSCode Plugin if you haven't already
    2. Open the Nx Console in VSCode
    3. Click Generate (UI) in the "Common Nx Commands" section
    4. Search for @aws/nx-plugin - ts#nx-generator
    5. Fill in the required parameters
      • pluginProject: your-plugin
    6. Click Generate

    This will add a new generator to your plugin.

    Make sure to write a detailed README.md for your generator, since this is used by the MCP Server’s generator-guide tool.

    The generated plugin includes several important targets:

    Compiles your TypeScript code and prepares the plugin for use:

    Terminal window
    pnpm nx build your-plugin

    Creates a distributable package ready for NPM publishing:

    Terminal window
    pnpm nx package your-plugin

    The package target includes all necessary assets:

    • Compiled JavaScript files
    • TypeScript declaration files
    • Generator and executor configuration files
    • Documentation and license files

    The plugin configures an MCP server using the ts#mcp-server generator.

    The plugin includes a complete MCP server that provides AI assistants the following tools:

    • general-guidance: Get best practices for working with Nx and your plugin
    • create-workspace-command: Learn how to create new workspaces that can use your plugin
    • list-generators: List all available generators in your plugin
    • generator-guide: Get detailed information about specific generators including schemas and usage

    Most AI assistants that support MCP use a similar configuration approach. You’ll need to create or update a configuration file with your MCP server details:

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

    While developing your MCP server, you may wish to configure the --watch flag so that the AI assistant always sees the latest versions of tools/resources:

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

    Please refer to the following documentation for configuring MCP with specific AI Assistants:

    You can extend the MCP server by modifying server.ts to add additional tools or resources specific to your plugin’s domain.

    For more details about writing MCP Servers, refer to the ts#mcp-server guide.

    1. Update Package Information: Edit your plugin’s package.json with proper name, version, description, and repository information.

    2. Build the Package:

      Terminal window
      pnpm nx package your-plugin
    3. Test Locally: You can test your plugin locally by installing it in another workspace:

      Terminal window
      npm install /path/to/your/workspace/dist/your-plugin/package

    Once your plugin is ready:

    Terminal window
    cd dist/your-plugin/package
    npm publish

    After publishing, others can install and use your plugin:

    Terminal window
    pnpm add -w your-plugin-name

    Then use your generators:

    1. Install the Nx Console VSCode Plugin if you haven't already
    2. Open the Nx Console in VSCode
    3. Click Generate (UI) in the "Common Nx Commands" section
    4. Search for your-plugin-name - your-generator-name
    5. Fill in the required parameters
      • Click Generate

      Configure AI Assistants with your Published Plugin

      Section titled “Configure AI Assistants with your Published Plugin”

      Your published plugin’s MCP server can be configured as follows:

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