Skip to content

fix(mcp): stabilize five AWS server launch environments - #290

Draft
jesterG1979 wants to merge 2 commits into
awslabs:mainfrom
jesterG1979:fix/stable-mcp-environments
Draft

jesterG1979 wants to merge 2 commits into
awslabs:mainfrom
jesterG1979:fix/stable-mcp-environments

Conversation

@jesterG1979

Copy link
Copy Markdown

Repeated uvx ...@latest launches refresh package resolution and can accumulate environments. Pin the five IaC, Pricing, Serverless and Transform launch requests to exact server versions and a fixed --exclude-newer cutoff covering transitive releases.

Related

Related to #255. Complements #274; its three proxy manifests are unchanged.

Changes

  • Pin IaC to 1.0.26 (both plugins), Pricing to 1.1.1, Serverless to 0.2.0 and Transform to 0.2.3, with cutoff 2026-10-18T00:00:00Z.
  • Preserve server IDs, endpoints, environment variables, timeouts, disabled states and Serverless's --allow-write argument.
  • Add a local-index regression that publishes a newer ranged dependency: an exact server pin alone drifts on refresh; the cutoff preserves the resolved versions and environment identity.
  • Add mise run test:mcp-launches to check real MCP initialization, tool catalogs and environment reuse, plus dependency-update guidance.

The cutoff needs deliberate updates, including for security fixes. It is not a cross-platform lockfile: Python/platform/index differences and yanked or removed distributions can still affect fresh resolution. Existing accumulated caches are not removed.

Validation

  • Linux x86_64, Python 3.12.14, uv 0.10.12.
  • mise run test:python (24 October 2026): 138 passed; 5 opt-in integration cases skipped in this default run.
  • mise run test:mcp-launches (18 October 2026): all 5 passed. Three launches per request, including a forced resolver refresh, preserved environment identity/count, all installed package versions, MCP server identity and complete tool catalog. Tool counts: IaC 8, Pricing 9, Serverless 25, Transform 19. No AWS tool operations were invoked.
  • mise run lint and mise run validate (24 October 2026): passed with existing repository warnings.
  • Targeted syntax, JSON/TOML, private-key, whitespace, Ruff and formatting hooks passed; standalone Bandit reported no issues in the new test module.
  • Full mise run build is blocked downloading the configured dprint Markdown plugin (HTTP 403/proxy denial). The full pre-commit run is blocked by the environment's Go executable while installing Gitleaks; the Bandit hook separately references a missing .bandit-baseline.json. Full build/security validation remains outstanding.

The published tree is byte-for-byte identical to the validated source tree (e31d3f70dd0554d8428cecf540b04030479462ce) and is based directly on current upstream main fbefb3764e67558fe10ac834dd85db49734aa9b6.

Acknowledgment

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the project license.

Copilot AI balanced review requested due to automatic review settings October 26, 2026 08:28

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The integration-test home-directory safeguard needs correction, and full build and security validation remain outstanding.

1 open issue
What changed in this PR

This PR stabilizes five AWS MCP launch environments to reduce cache growth from dependency re-resolution, complementing the separate proxy changes in #274.

Changes:

  • Pins server versions and adds a fixed dependency-release cutoff across four plugin manifests.
  • Adds local-index regression tests and opt-in real MCP startup and cache-reuse checks.
  • Documents dependency updates, security considerations, and cutoff limitations.
File Description
tools/​test_mcp_environments.py Adds resolver, cache-reuse, and MCP startup checks.
plugins/​deploy-on-aws/​.mcp.json Pins IaC and Pricing launches with a cutoff.
plugins/​codebase-documentor-for-aws/​.mcp.json Applies the matching IaC pin and cutoff.
plugins/​aws-transform/​.mcp.json Pins Transform with a cutoff.
plugins/​aws-serverless/​.mcp.json Pins Serverless while preserving write access.
mise.toml Adds the opt-in MCP integration-test task.
docs/​MCP_DEPENDENCIES.md Documents update procedures and resolution limitations.

Review effort: Balanced

Comment thread tools/test_mcp_environments.py Resolved
Copilot AI balanced review requested due to automatic review settings October 26, 2026 09:01

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Full build and security validation remain outstanding, so the frozen dependency sets need maintainer verification before approval.

No open issues 🎉

1 resolved since last review

Review effort: Balanced

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants