@aws/nx-plugin-mcp 1.0.0-rc.62 → 1.0.0-rc.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/aws-nx-mcp.js CHANGED
@@ -20849,6 +20849,7 @@ const NX_VERSION = {
20849
20849
  "class-variance-authority": "0.7.1",
20850
20850
  clsx: "2.1.1",
20851
20851
  commander: "15.0.0",
20852
+ "cpy-cli": "7.0.0",
20852
20853
  electrodb: "3.9.1",
20853
20854
  esbuild: "0.28.1",
20854
20855
  "event-source-polyfill": "1.0.31",
@@ -20866,6 +20867,7 @@ const NX_VERSION = {
20866
20867
  "@types/fs-extra": "11.0.4",
20867
20868
  "make-dir-cli": "4.0.0",
20868
20869
  mariadb: "3.5.3",
20870
+ mise: "2026.8.3",
20869
20871
  ncp: "2.0.0",
20870
20872
  npm: "12.0.2",
20871
20873
  "npm-check-updates": "22.2.9",
@@ -20878,7 +20880,6 @@ const NX_VERSION = {
20878
20880
  rimraf: "6.1.3",
20879
20881
  rolldown: "1.2.2",
20880
20882
  "rolldown-plugin-dts": "0.28.0",
20881
- "@rollup/plugin-esm-shim": "0.1.8",
20882
20883
  "simple-git": "3.36.0",
20883
20884
  "source-map-support": "0.5.21",
20884
20885
  "starlight-blog": "0.28.0",
@@ -53898,6 +53899,7 @@ ${PACKAGE_MANAGERS.map((pm) => buildNxCommand("<options>", pm)).join(" - \n")}
53898
53899
  - Generate all projects into the \`packages/\` directory
53899
53900
  - After making changes to your projects, fix linting issues, then run a full build
53900
53901
  - When it's time to start testing a project, suggest to the user that infrastructure is deployed to AWS. For websites, if a runtime-config.json is needed, use the load-runtime-config target after a deployment to point a local website at a sandbox stack.
53902
+ - For CDK infrastructure projects, deploy the sandbox stage with the \`deploy-sandbox\` target (eg \`nx deploy-sandbox infra\`) rather than passing a stage pattern to \`deploy\` — it already targets the sandbox stage declared in \`main.ts\`.
53901
53903
 
53902
53904
  ## Batching Generators
53903
53905
 
@@ -66,25 +66,25 @@ Otherwise, follow the steps below to run each generator yourself.
66
66
 
67
67
  ### Add a tRPC API
68
68
 
69
- <RunGenerator generator="ts#api" requiredParameters={{ name: 'demo-api', framework: 'trpc', auth: 'iam' }} />
69
+ <RunGenerator generator="ts#api" requiredParameters={{ name: 'demo-api', framework: 'trpc', auth: 'iam' }} noInteractive />
70
70
 
71
71
  This will create the API inside the `packages/demo-api` folder.
72
72
 
73
73
  ### Add a React Website
74
74
 
75
- <RunGenerator generator="ts#website" requiredParameters={{ name: 'demo-website' }} />
75
+ <RunGenerator generator="ts#website" requiredParameters={{ name: 'demo-website' }} noInteractive />
76
76
 
77
77
  This scaffolds a new React website in `packages/demo-website`.
78
78
 
79
79
  ### Add Cognito Authentication
80
80
 
81
- <RunGenerator generator="ts#website#auth" requiredParameters={{ project: '@my-project/demo-website', cognitoDomain: 'my-demo' }} />
81
+ <RunGenerator generator="ts#website#auth" requiredParameters={{ project: '@my-project/demo-website', cognitoDomain: 'my-demo' }} noInteractive />
82
82
 
83
83
  This sets up the necessary infrastructure and React code to add Cognito Authentication to your website.
84
84
 
85
85
  ### Connect Frontend to Backend
86
86
 
87
- <RunGenerator generator="connection" requiredParameters={{ sourceProject: '@my-project/demo-website', targetProject: '@my-project/demo-api' }} />
87
+ <RunGenerator generator="connection" requiredParameters={{ sourceProject: '@my-project/demo-website', targetProject: '@my-project/demo-api' }} noInteractive />
88
88
 
89
89
  This configures the necessary providers to ensure your website can call your tRPC API.
90
90
 
@@ -94,12 +94,12 @@ Add the infrastructure project based on your chosen IAC provider.
94
94
 
95
95
  <Infrastructure>
96
96
  <Fragment slot="cdk">
97
- <RunGenerator generator="ts#infra" requiredParameters={{ name: 'infra' }} />
97
+ <RunGenerator generator="ts#infra" requiredParameters={{ name: 'infra' }} noInteractive />
98
98
 
99
99
  This configures a CDK App which you can use to deploy your infrastructure on AWS.
100
100
  </Fragment>
101
101
  <Fragment slot="terraform">
102
- <RunGenerator generator="terraform#project" requiredParameters={{ name: 'infra' }} />
102
+ <RunGenerator generator="terraform#project" requiredParameters={{ name: 'infra' }} noInteractive />
103
103
 
104
104
  This configures a Terraform project which you can use to deploy your infrastructure on AWS.
105
105
  </Fragment>
@@ -247,7 +247,7 @@ Deploy your project:
247
247
 
248
248
  <Infrastructure>
249
249
  <Fragment slot="cdk">
250
- <NxCommands commands={['deploy infra "my-project-sandbox/*"']} />
250
+ <NxCommands commands={['deploy-sandbox infra']} />
251
251
  </Fragment>
252
252
  <Fragment slot="terraform">
253
253
  <NxCommands commands={['apply infra']} />
@@ -107,7 +107,7 @@ Your game is complete and you've tested every piece locally. Now let's deploy it
107
107
 
108
108
  ### Deploy your application
109
109
 
110
- <NxCommands commands={['deploy infra "dungeon-adventure-infra-sandbox/*"']} />
110
+ <NxCommands commands={['deploy-sandbox infra']} />
111
111
 
112
112
  :::caution[Bootstrap Required]
113
113
  If this is the first CDK deployment in your AWS account/region, bootstrap it first:
@@ -115,6 +115,8 @@ If this is the first CDK deployment in your AWS account/region, bootstrap it fir
115
115
  <NxCommands commands={['bootstrap infra']} />
116
116
  :::
117
117
 
118
+ The `deploy-sandbox` target deploys the sandbox stage defined in `packages/infra/src/main.ts`.
119
+
118
120
  Your first deployment will take around 6 minutes to complete as it waits for all resources to fully stabilize. Subsequent deployments are faster. To speed up iteration during development you can opt into [CloudFormation express mode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-express-mode.html) by passing the `--express` flag, which completes each resource operation as soon as its configuration is applied rather than waiting for full stabilization.
119
121
 
120
122
  Once the deployment completes, you will see outputs similar to the following:
@@ -43,7 +43,6 @@ If you want an API with an implementation, use the <Link path="guides/ts-smithy-
43
43
  - src
44
44
  - main.smithy Your shared shape definitions
45
45
  - smithy-build.json Smithy build configuration
46
- - build.Dockerfile Builds and validates the model
47
46
  - project.json Project configuration and build targets
48
47
 
49
48
  </FileTree>
@@ -64,7 +63,7 @@ structure Customer {
64
63
  }
65
64
  ```
66
65
 
67
- Since a shape library has no service, its `smithy-build.json` configures no code generation — building it validates the model and assembles it into a single JSON model file at `dist/<my-shapes>/build/model/model.json`.
66
+ Since a shape library has no service, its `smithy-build.json` configures no code generation — building it validates the model and assembles it into a single JSON model file at `dist/<my-shapes>/build/model.json`.
68
67
 
69
68
  </OptionFilter>
70
69
 
@@ -80,7 +79,7 @@ Since a shape library has no service, its `smithy-build.json` configures no code
80
79
  - operations
81
80
  - echo.smithy An example operation
82
81
  - smithy-build.json Smithy build configuration, including code generation
83
- - build.Dockerfile Builds the model, OpenAPI spec and TypeScript Server SDK
82
+ - ssdk.rolldown.config.mjs Bundles the generated TypeScript Server SDK
84
83
  - project.json Project configuration and build targets
85
84
 
86
85
  </FileTree>
@@ -110,39 +109,32 @@ Building a service project generates an OpenAPI specification and a TypeScript S
110
109
 
111
110
  ## Building
112
111
 
113
- Smithy projects build using [Docker](https://www.docker.com/), which runs the [Smithy CLI](https://smithy.io/2.0/guides/smithy-cli/index.html) to validate your model:
112
+ Smithy projects build with the [Smithy CLI](https://smithy.io/2.0/guides/smithy-cli/index.html), which validates your model:
114
113
 
115
114
  <NxCommands commands={['build my-shapes']} />
116
115
 
116
+ On macOS and Linux the CLI is resolved by [mise](https://mise.jdx.dev/), which the build fetches on demand, so there is nothing to install — it downloads and caches the pinned version the first time you build. On Windows it is a prerequisite you install yourself — see <Link path="guides/ts-smithy-api#building-on-windows">Building on Windows</Link>.
117
+
117
118
  ## Depending on a Shape Library
118
119
 
119
- Building a shape library writes an assembled model to `dist/<my-shapes>/build/model/model.json`. This single file contains every shape the library defines, along with any it depends on, so a consumer only ever declares the libraries it references directly.
120
+ Building a shape library writes an assembled model to `dist/<my-shapes>/build/model.json`. This single file contains every shape the library defines, along with any it depends on, so a consumer only ever declares the libraries it references directly.
120
121
 
121
- To depend on a shape library from another Smithy project, make three changes to the consuming project:
122
+ To depend on a shape library from another Smithy project, make two changes to the consuming project:
122
123
 
123
124
  <Steps>
124
125
 
125
- 1. Smithy projects build inside a container, and the build is given the workspace root as a named build context. Add a `COPY` to the consuming project's `build.Dockerfile`, alongside where its own sources are copied in:
126
-
127
- ```dockerfile ins={4}
128
- # Copy project files
129
- COPY smithy-build.json .
130
- COPY src src
131
- COPY --from=workspace dist/packages/my-shapes/build/model/model.json deps/my-shapes.json
132
- ```
133
-
134
- 2. Add the copied file to `imports` in the consuming project's `smithy-build.json`:
126
+ 1. Add the library's built model to `imports` in the consuming project's `smithy-build.json`. Paths are relative to that file, so the number of `../` segments matches how deeply the consuming project is nested three for `packages/my-api/model` below:
135
127
 
136
128
  ```json ins={4}
137
129
  {
138
130
  "version": "1.0",
139
131
  "sources": ["src/"],
140
- "imports": ["deps/my-shapes.json"],
132
+ "imports": ["../../../dist/packages/my-shapes/build/model.json"],
141
133
  ...
142
134
  }
143
135
  ```
144
136
 
145
- 3. Add the library's `build` target as a dependency of the consuming project's `compile` target in its `project.json`, so the model exists before the consumer builds:
137
+ 2. Add the library's `build` target as a dependency of the consuming project's `compile` target in its `project.json`, so the model exists before the consumer builds:
146
138
 
147
139
  ```json ins={4}
148
140
  {
@@ -49,7 +49,7 @@ The generator creates two related projects in the `<directory>/<api-name>` direc
49
49
  - package.json Project manifest defining the project's package name and dependencies
50
50
  - project.json Project configuration and build targets
51
51
  - smithy-build.json Smithy build configuration
52
- - build.Dockerfile Docker configuration for building Smithy artifacts
52
+ - ssdk.rolldown.config.mjs Bundles the generated TypeScript Server SDK
53
53
  - src/
54
54
  - main.smithy Main service definition
55
55
  - operations/
@@ -576,10 +576,12 @@ export const Echo: EchoOperation<ServiceContext> = async (input, ctx) => {
576
576
 
577
577
  ## Building and Code Generation
578
578
 
579
- The Smithy model project uses [Docker](https://www.docker.com/) to build the Smithy artifacts and generate the TypeScript Server SDK:
579
+ The Smithy model project uses the [Smithy CLI](https://smithy.io/2.0/guides/smithy-cli/index.html) to build the Smithy artifacts and generate the TypeScript Server SDK:
580
580
 
581
581
  <NxCommands commands={['build <model-project>']} />
582
582
 
583
+ On macOS and Linux the CLI is resolved by [mise](https://mise.jdx.dev/), which the build fetches on demand, so there is nothing to install — it downloads and caches the pinned version the first time you build.
584
+
583
585
  This process:
584
586
 
585
587
  1. **Compiles the Smithy model** and validates it
@@ -591,6 +593,39 @@ The backend project automatically copies the generated SDK during compilation:
591
593
 
592
594
  <NxCommands commands={['copy-ssdk <backend-project>']} />
593
595
 
596
+ ### Building on Windows
597
+
598
+ `mise` publishes no Windows package to npm, so on Windows the Smithy CLI is a prerequisite you install yourself. Install it once following the [Smithy CLI installation guide](https://smithy.io/2.0/guides/smithy-cli/cli_installation.html) (for example `winget install smithy` or `scoop install smithy`), and make sure `smithy` is on your `PATH`. A Smithy project generated on Windows runs `smithy` directly rather than through `mise`.
599
+
600
+ :::caution[Upgrading the CLI]
601
+ Because the CLI is installed globally rather than pinned in your workspace, upgrading the workspace with `nx migrate` does **not** upgrade it. When a migration moves the Smithy dependencies forward, upgrade your global Smithy CLI to a matching version yourself.
602
+ :::
603
+
604
+ Alternatively, develop inside [WSL](https://learn.microsoft.com/en-us/windows/wsl/install), where the build runs the Linux path and `mise` resolves the CLI for you — nothing to install.
605
+
606
+ A project generated on Windows commits a `compile` target that invokes `smithy` directly, so anyone else working on it — including on macOS or Linux — needs the Smithy CLI on their `PATH` too. To have those machines resolve the CLI through `mise` instead, switch the target to the `mise` command as [described below](#choosing-how-the-cli-is-resolved).
607
+
608
+ ### Choosing how the CLI is resolved
609
+
610
+ macOS and Linux resolve the CLI through `mise` and Windows uses a globally installed CLI, but you can pick either on any platform by editing the `compile` target's command in the model project's `project.json`.
611
+
612
+ To use a globally installed Smithy CLI instead of `mise`, replace the `mise` prefix with a bare `smithy`:
613
+
614
+ ```json title="project.json" del={5} ins={6}
615
+ {
616
+ "targets": {
617
+ "compile": {
618
+ "options": {
619
+ "commands": ["... npx -y mise@<version> exec smithy@<version> -- smithy build ..."]
620
+ "commands": ["... smithy build ..."]
621
+ }
622
+ }
623
+ }
624
+ }
625
+ ```
626
+
627
+ To go back to `mise` resolving the CLI, restore the `npx -y mise@<version> exec smithy@<version> --` prefix.
628
+
594
629
  ### Bundle Target
595
630
 
596
631
  <Snippet name="ts-bundle" />
@@ -96,10 +96,14 @@ new ApplicationStage(app, 'my-app-sandbox', {
96
96
  region: process.env.CDK_DEFAULT_REGION,
97
97
  },
98
98
  });
99
+
100
+ // Define other instances of stages, such as beta and prod, below
99
101
  ```
100
102
 
101
103
  The `env` property tells CDK which AWS account and region to deploy to. `CDK_DEFAULT_ACCOUNT` and `CDK_DEFAULT_REGION` are resolved automatically by the CDK CLI from your active AWS credentials. See the [CDK environments documentation](https://docs.aws.amazon.com/cdk/v2/guide/environments.html) for more details.
102
104
 
105
+ The sandbox stage is the one the <Link path="guides/typescript-infrastructure#deploying-your-sandbox-stage">`deploy-sandbox` target</Link> deploys.
106
+
103
107
  If you generated with `stageConfig`, the `main.ts` reads account and region from a centralized config file instead, falling back to environment variables when no config is set:
104
108
 
105
109
  ```ts title="src/main.ts (with stageConfig)"
@@ -371,33 +375,41 @@ For more details, please refer to the [CDK bootstrapping documentation](https://
371
375
 
372
376
  ## Deploying to AWS
373
377
 
374
- After a build, you can deploy your infrastructure to AWS using the `deploy` target.
378
+ Your project has three deploy targets, each suited to a different situation:
375
379
 
376
- :::caution[CI Deployment]
377
- Use the `deploy-ci` target if deploying in a CI/CD pipeline. See below for more details.
378
- :::
380
+ | Target | Use it for |
381
+ | ---------------- | -------------------------------------------------------------------------------- |
382
+ | `deploy-sandbox` | Deploying your own sandbox stage during development. No stage argument needed. |
383
+ | `deploy` | Deploying any stage, by naming the stage or stacks you want. |
384
+ | `deploy-ci` | Deploying from a CI/CD pipeline, using a pre-synthesized cloud assembly. |
379
385
 
380
386
  First, make sure you have AWS credentials configured. If you generated with `stageConfig` and have configured stage credentials in `packages/common/infra-config/src/stages.config.ts`, the deploy command will automatically resolve and apply the correct credentials for the target stage. Otherwise, ensure your AWS credentials are set in your environment (e.g., via `AWS_PROFILE` or environment variables). See the [AWS credentials documentation](https://docs.aws.amazon.com/sdkref/latest/guide/access.html) for the available options.
381
387
 
382
- Then run the deploy target:
388
+ ### Deploying your Sandbox Stage
383
389
 
384
- <NxCommands commands={['deploy <my-infra> <my-infra>-sandbox/*']} />
390
+ The `deploy-sandbox` target deploys the sandbox stage that `main.ts` declares, so you don't need to remember its stage name:
391
+
392
+ <NxCommands commands={['deploy-sandbox <my-infra>']} />
393
+
394
+ This is the quickest way to get your own copy of the application running in AWS while you develop.
385
395
 
386
396
  :::tip[Express Mode for Faster Deployments]
387
- The `deploy` target waits for full resource stabilization by default, favouring consistency over speed. To speed up iteration during development, opt into [CloudFormation express mode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-express-mode.html) by passing CDK's `--express` flag:
397
+ The deploy targets wait for full resource stabilization by default, favouring consistency over speed. To speed up iteration during development, opt into [CloudFormation express mode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-express-mode.html) by passing CDK's `--express` flag:
388
398
 
389
- <NxCommands commands={['deploy <my-infra> <my-infra>-sandbox/* --express']} />
399
+ <NxCommands commands={['deploy-sandbox <my-infra> --express']} />
390
400
 
391
401
  Express mode finishes once resource configuration is confirmed applied rather than waiting for full stabilization, with propagation continuing in the background, for significantly faster iteration cycles. It is intended for development and iteration.
392
402
  :::
393
403
 
394
- :::tip[Selective Stack Deployment]
395
- The above command deploys _all_ stacks for the `<my-infra>-sandbox` stage. You can specify other stages so long as they are defined in `main.ts`.
404
+ ### Deploying a Specific Stage
405
+
406
+ The `deploy` target deploys whichever stage or stacks you name. Use it for stages other than your sandbox, or to deploy a single stack:
396
407
 
397
- You can also deploy individual stacks by specifying the full stack name, for example:
408
+ <NxCommands commands={['deploy <my-infra> <my-infra>-sandbox/*']} />
409
+
410
+ You can specify any stage so long as it is defined in `main.ts`. To deploy an individual stack, give the full stack name:
398
411
 
399
412
  <NxCommands commands={['deploy <my-infra> <my-infra>-sandbox/Application']} />
400
- :::
401
413
 
402
414
  ## Deploying to AWS in a CI/CD Pipeline
403
415
 
@@ -10,13 +10,7 @@ import Snippet from '@components/snippet.astro';
10
10
 
11
11
  ### Recommended
12
12
 
13
- - [PNPM >= 11](https://pnpm.io/installation#using-npm) (you can also use [Yarn >= 4](https://yarnpkg.com/getting-started/install), [Bun >= 1](https://bun.sh/docs/installation), or [NPM >= 10](https://nodejs.org/en/learn/getting-started/an-introduction-to-the-npm-package-manager) if you prefer)
14
- - verify by running `pnpm --version`, `yarn --version`, `bun --version` or `npm --version`
15
- - [AWS Credentials](https://docs.aws.amazon.com/sdkref/latest/guide/access.html) configured to your target AWS account are required to deploy your application (as well as for some local development workflows).
16
- - [Docker](https://www.docker.com/) or [Finch >= 1.6.0](https://runfinch.com/) is required for some generators. For Docker, [multi-platform builds](https://docs.docker.com/build/building/multi-platform/) must be set up; Finch supports [multi-platform builds](https://runfinch.com/docs/getting-started/building-images/#building-a-multi-architecture-container-image) out of the box.
17
- - [Terraform >= 1.12](https://developer.hashicorp.com/terraform/install) is required if you choose to use this for infrastructure as code instead of CDK
18
- - verify by running `terraform --version`
19
- - If you are using [VSCode](https://code.visualstudio.com/), we recommend installing the [Nx Console VSCode Plugin](https://marketplace.visualstudio.com/items?itemName=nrwl.angular-console).
13
+ <Snippet name="recommended-prerequisites" parentHeading="Recommended" />
20
14
 
21
15
  :::tip[AI Assistant Setup]
22
16
  If you use an AI Assistant such as Kiro, Kiro CLI, Cursor, Claude Code or Cline, you may also wish to <Link path="/get_started/building-with-ai">install the Nx Plugin for AWS MCP server.</Link>
@@ -0,0 +1,10 @@
1
+ ---
2
+ title: Recommended Prerequisites
3
+ ---
4
+ - [PNPM >= 11](https://pnpm.io/installation#using-npm) (you can also use [Yarn >= 4](https://yarnpkg.com/getting-started/install), [Bun >= 1](https://bun.sh/docs/installation), or [NPM >= 10](https://nodejs.org/en/learn/getting-started/an-introduction-to-the-npm-package-manager) if you prefer)
5
+ - verify by running `pnpm --version`, `yarn --version`, `bun --version` or `npm --version`
6
+ - [AWS Credentials](https://docs.aws.amazon.com/sdkref/latest/guide/access.html) configured to your target AWS account are required to deploy your application (as well as for some local development workflows).
7
+ - [Docker](https://www.docker.com/) or [Finch >= 1.6.0](https://runfinch.com/) is required for some generators. For Docker, [multi-platform builds](https://docs.docker.com/build/building/multi-platform/) must be set up; Finch supports [multi-platform builds](https://runfinch.com/docs/getting-started/building-images/#building-a-multi-architecture-container-image) out of the box.
8
+ - [Terraform >= 1.12](https://developer.hashicorp.com/terraform/install) is required if you choose to use this for infrastructure as code instead of CDK
9
+ - verify by running `terraform --version`
10
+ - If you are using [VSCode](https://code.visualstudio.com/), we recommend installing the [Nx Console VSCode Plugin](https://marketplace.visualstudio.com/items?itemName=nrwl.angular-console).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws/nx-plugin-mcp",
3
- "version": "1.0.0-rc.62",
3
+ "version": "1.0.0-rc.64",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/awslabs/nx-plugin-for-aws.git",