Skip to content

MLCC v1.5.0 Release Notes

Release date: 2026-07-27


Highlights

Script contract system

Every do/ script now carries a machine-readable @mlcc-script annotation declaring its type, guard, lifecycle, and supported targets. A shared script-contract.sh library auto-enforces the declared guard before any AWS call — deployment-centric scripts fail fast with a clear message and exit code 3 if the required deployment isn't active, rather than failing deep inside the AWS SDK.

do/register gains --with-endpoint and --with-metrics flags for optional deployment-dependent enrichment. The default do/register (no flags) now works from any project state — no deployment needed to register a model artifact to the Model Package Group.

Cross-profile portability

Projects no longer hardcode your AWS account ID or region. S3 bucket names are resolved at runtime from the active bootstrap profile via a new _resolve_bucket <purpose> helper. Secret ARNs (HuggingFace tokens, NGC keys) move from do/config into the bootstrap profile's secrets map, where they travel with the active account when you switch profiles.

mcc bootstrap add-secret hfToken <arn> registers a secret into the active profile. New projects stop storing secret ARNs in do/config entirely.

do/stage now writes the staged S3 path to STAGED_MODEL_PATH instead of overwriting MODEL_NAME. Your HuggingFace model ID is preserved across staging runs.

Reasoning MCP server

servers/reasoning/ provides a new interpret(context, data, objective) tool backed by Amazon Bedrock. When you run do/benchmark --recommend, an AI Interpretation block now appears below the recommendation table, explaining the configuration suggestions and flagging any interaction risks in plain language.

The reasoning provider is configurable — set MCC_PROVIDER=claude-direct and ANTHROPIC_API_KEY=... to route through the Anthropic API directly instead of Bedrock.

HyperPod LoRA hot-loading

do/adapter now supports HyperPod (EKS) deployments. Enable LoRA with HP_LORA_ENABLED=true in do/config, redeploy, then:

do/adapter --load-lora <name> --weights s3://...   # instant hot-load, no pod restart
do/adapter --unload-lora <name>
do/adapter list

Breaking Changes

managed-inferencerealtime-inference

The deployment target identifier managed-inference is renamed to realtime-inference to match SageMaker's own terminology. managed-inference and the short alias n continue to work with a deprecation warning.

Action: Update DEPLOYMENT_TARGET in your do/config files on next mcc regenerate. Or set it manually:

sed -i 's/DEPLOYMENT_TARGET="managed-inference"/DEPLOYMENT_TARGET="realtime-inference"/' do/config

mlcc-models-*mlcc-core-*

The core S3 bucket (model weights, lifecycle scripts, benchmarks) is renamed from mlcc-models-<account>-<region> to mlcc-core-<account>-<region>. Existing buckets are not renamed automatically — backward compat is maintained via the modelsS3Bucket profile key alias.

Action: Re-provision core module to get the renamed bucket. Existing deployments continue working as-is.

do/stageMODEL_NAME vs STAGED_MODEL_PATH

do/stage no longer overwrites MODEL_NAME with the staged S3 URI. The staged path is written to STAGED_MODEL_PATH instead. MODEL_NAME retains the original HuggingFace model ID.

Action: If your custom scripts read MODEL_NAME after staging and expect an S3 URI, update them to read STAGED_MODEL_PATH with a MODEL_NAME fallback.

mcc configure removed

The configure command was a stub that printed CLI examples. It has been removed. Use mcc --help or the documentation at https://awslabs.github.io/ml-container-creator/ instead.


What's New

BL071 — do/ Script Contract System

  • @mlcc-script contract headers on all 23 do/ scripts
  • New do/lib/script-contract.sh — 6 guard functions, auto-enforcement on source, exit code 3 for violations
  • do/register redesigned: default = MPG only (guard: none); --with-endpoint, --with-metrics escalate inline; --ic deprecated
  • agent-knowledge server extended to return type, guard, lifecycle, targets per script

BL076 — Cross-Profile Portability

  • _resolve_bucket <purpose> in do/lib/profile.sh
  • Profile secrets map + mcc bootstrap add-secret <type> <arn>
  • do/lib/secrets.sh falls back to _PROFILE_secrets_hfToken / _PROFILE_secrets_ngcApiKey
  • do/stage writes STAGED_MODEL_PATH instead of overwriting MODEL_NAME

BL061 — Reasoning MCP Server

  • servers/reasoning/interpret(context, data, objective) tool
  • Bedrock provider (configurable; Claude direct API also supported via MCC_PROVIDER=claude-direct)
  • do/benchmark --recommend shows AI Interpretation block
  • Registered in config/agent.json mcpServers and config/mcp.json

BL065 — HyperPod LoRA Hot-Loading

  • do/adapter --load-lora, --unload-lora, list for HyperPod targets
  • New templates/do/lib/python/lora_vllm.py REST client
  • HP_LORA_ENABLED config var; deployment.yaml conditional --enable-lora

BL067 — HF Token Secrets Discovery

  • mcc generate discovers existing Secrets Manager ARNs by name pattern (huggingface*, hf-token*)
  • List-type prompt presents found secrets as choices
  • Inline secret creation flow: enter token → create secret → ARN stored in profile

BL074 — Claude Direct API for mcc hey

  • MCC_PROVIDER=claude-direct + ANTHROPIC_API_KEY routes mcc hey through Anthropic directly
  • Or set "provider": "claude-direct" in config/agent.json

interactive-deploy-ux

  • Deploy-time interactive prompts for all 4 targets (realtime, async, batch, HyperPod)
  • MCP-backed instance sizing, endpoint selection, cluster picking
  • Per-target status tracking in do/config
  • do/deploy --status, do/deploy --dry-run

BL072 — mlcc-core bucket rename

  • All S3 bucket naming updated from mlcc-models-* to mlcc-core-*
  • Backward compat via modelsS3Bucket profile key alias

BL073 — realtime-inference rename

  • managed-inferencerealtime-inference as canonical target identifier
  • deploy.d/realtime-inference, clean.d/realtime-inference
  • Deprecated aliases: managed-inference, n, realtime, managed

Bug Fixes

ID Fix
BL047 do/adapter staging job errors are now visible — stderr routed to temp file instead of being swallowed by 2>/dev/null
BL053 SGLang architecture sync no longer tries to fetch the deleted model_registry.py — skips with ⏭ skipped message
BL068 Build-time model weights prompt removed — was [EXPERIMENTAL], never validated end-to-end
BL070 cw_log_forwarder.py removed — SageMaker IC natively routes container logs to CloudWatch
BL077 Three template-manager.js validators fixed — mcc regenerate no longer fails on pre-v1.4 projects with hyperpod-eks deployment target, benchmark target gate, or shell variable syntax in saved params
BL069 mcc configure stub command removed; registry command description updated

Known Issues

Issue Status
LoRA on MoE models (GPT-OSS-120B) may OOM due to per-expert LoRA pre-allocation in vLLM Upstream vLLM issue — monitor vLLM releases; workaround: disable LoRA on MoE models
HyperPod flexible instance groups can enter zombie scaling state Use fixed instance types; flexible groups are experimental

Upgrade

npm install -g @aws/ml-container-creator@1.5.0

# In your existing projects:
mcc regenerate

See Breaking Changes above for migration details.