Install the Greengrass nucleus on the edge device by running the installer JAR with --provision true, which creates an IAM role, IoT Thing, and certificate automatically; the device appears in the Greengrass core devices console
Write a component recipe in YAML or JSON specifying ComponentName, ComponentVersion, a Lifecycle section with an Install and Run script, and an Artifacts section pointing to the component binary in S3
Upload the artifact to S3 and publish the component recipe: aws greengrassv2 create-component-version --inline-recipe fileb://recipe.yaml
Create a deployment targeting the Thing or a Thing Group: aws greengrassv2 create-deployment --target-arn <arn> --components '{"com.example.MyComponent":{"componentVersion":"1.0.0"}}'
Monitor deployment status via aws greengrassv2 get-deployment or in the console; Greengrass downloads artifacts, installs dependencies, and starts the component according to the recipe lifecycle
Use the Greengrass IPC SDK in the component code to publish/subscribe to local MQTT topics or interact with other components on the device without leaving the edge
Known gotchas
The IAM role attached to the Greengrass core device must have s3:GetObject permission for the artifact bucket; missing S3 permissions cause silent deployment stalls with no useful on-device log message by default
Component versions are immutable once published; incrementing the version number is the only way to push a code change — attempting to overwrite an existing version returns an error
The nucleus version on the device must meet the minimum version declared in the recipe's PlatformOverrides; mismatches cause the deployment to fail at the compatibility check stage
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