Create a ModelPackageGroup with boto3 sagemaker_client.create_model_package_group(ModelPackageGroupName=...) or via the SageMaker SDK
Register a trained model as a versioned package using model.register() with approval_status='PendingManualApproval'
Describe the package with client.describe_model_package() to retrieve ModelPackageArn and current ApprovalStatus
Approve the version via client.update_model_package(ModelPackageArn=arn, ModelApprovalStatus='Approved') after evaluation
Trigger a downstream CI/CD pipeline using an EventBridge rule that fires on SageMaker Model Package State Change events
Known gotchas
Model Package Groups are regional — you cannot promote a package across regions without re-registering it; use SageMaker cross-account sharing via RAM or copy the artifact manually
Only one ModelPackageGroup can exist per name per account per region; attempting to recreate an existing group raises a ConflictException
If approval is automated, ensure the Lambda or CodePipeline IAM role has sagemaker:UpdateModelPackage permission, which is separate from sagemaker:CreateModel
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp