跳转到内容

TypeScript Nx Plugin

生成一个完整的 TypeScript Nx Plugin,并集成 Model Context Protocol (MCP) 服务器。此生成器创建了一个基础框架,用于构建可被 AI 助手无缝使用的自定义生成器,以实现自动化代码生成和项目脚手架。

您可以通过两种方式生成 TypeScript Nx Plugin:

运行此生成器@aws/nx-plugin:ts#nx-plugin

pnpm nx g @aws/nx-plugin:ts#nx-plugin
构建你的命令4

必需

生成器选项4 个选项
name必需string

TypeScript 项目名称

directorystring默认值: packages

库所放置的父目录。

subDirectorystring

库所放置的子目录。默认情况下,这是库的名称。

preferInstallDependenciesboolean默认值: true

是否在生成器运行后优先安装依赖项。设置为 false 可在批量运行多个生成器时延迟安装(如果后续生成器需要计算 Nx 项目图,仍会运行安装);在最后统一安装一次。

生成器将创建以下项目结构:

  • 文件夹your-plugin/
    • 文件夹src/
      • index.ts Entry point for your plugin
      • 文件夹mcp-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
        • 文件夹resources/
          • GENERAL_GUIDANCE.md Guidance served by the general-guidance tool
        • 文件夹tools/
          • 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

一旦您有了插件项目,就可以使用 ts#nx-generator 生成器来添加生成器:

运行此生成器@aws/nx-plugin:ts#nx-generator

pnpm nx g @aws/nx-plugin:ts#nx-generator
构建你的命令5

必需

必需

这将向您的插件添加一个新的生成器。

确保为您的生成器编写详细的 README.md,因为 MCP 服务器的 generator-guide 工具会使用它。

生成的插件包含几个重要的目标:

编译您的 TypeScript 代码并准备插件以供使用:

Terminal window
pnpm nx build your-plugin

创建一个可分发的包,准备发布到 NPM:

Terminal window
pnpm nx package your-plugin

打包目标包含所有必要的资源:

  • 编译后的 JavaScript 文件
  • TypeScript 声明文件
  • Nx 从已发布插件中读取的 generators.jsonexecutors.jsonmigrations.json 清单
  • 文档和许可证文件

该插件使用 ts#mcp-server 生成器配置 MCP 服务器。

该插件包含一个完整的 MCP 服务器,为 AI 助手提供以下工具:

  • general-guidance:获取使用 Nx 和您的插件的最佳实践
  • create-workspace-command:了解如何创建可以使用您的插件的新工作区
  • list-generators:列出您的插件中所有可用的生成器
  • generator-guide:获取有关特定生成器的详细信息,包括模式和用法

大多数支持 MCP 的 AI 助手使用类似的配置方法。您需要创建或更新配置文件,其中包含您的 MCP 服务器详细信息:

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

在开发 MCP 服务器时,您可能希望配置 --watch 标志,以便 AI 助手始终看到工具/资源的最新版本:

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

请参阅以下文档以了解如何为特定 AI 助手配置 MCP:

您可以通过修改 server.ts 来扩展 MCP 服务器,以添加特定于您的插件领域的其他工具或资源。

有关编写 MCP 服务器的更多详细信息,请参阅 ts#mcp-server 指南

  1. 更新包信息:编辑您的插件的 package.json,填写正确的名称、版本、描述和仓库信息。同时删除 "private": true

  2. 构建包

    Terminal window
    pnpm nx package your-plugin

    包会放在 dist/<your-plugin's project root>/package 中 — 对于使用 --name=nx-plugin --directory=tools 生成的插件,那就是 dist/tools/nx-plugin/package

  3. 本地测试:您可以通过在另一个工作区中安装来本地测试您的插件:

    终端窗口
    npm install /path/to/your/workspace/dist/tools/nx-plugin/package

一旦您的插件准备就绪:

终端窗口
cd dist/tools/nx-plugin/package
npm publish

发布后,其他人可以安装和使用您的插件:

Terminal window
pnpm add -w your-plugin-name

然后使用您的生成器:

运行此生成器your-plugin-name:your-generator-name

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

您已发布的插件的 MCP 服务器可以按如下方式配置:

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