Prerequisites
- Install Docker: Required to run the Chkk-Upgrade-Context-MCP Server.
- Install Cursor: Required to begin generating environment-aware pull requests.
Initialization of Chkk Upgrade Agent
Clone the Sample Chkk IaC repo
Retrieve your Chkk Access Token
- In the Chkk Dashboard, expand Configure on the left menu and click Settings.
- Select the Tokens tab. Here you’ll see a list of all your active tokens (if any), along with options to create new ones or revoke existing ones.
-
Click on the clipboard icon next to a token to copy it.

Install in Cursor via deeplink
Add Chkk to Cursor
Configure your Chkk Access Token
CHKK_ACCESS_TOKEN environment variable
in the MCP Tool Settings opened via the deeplink in the previous step.
Verify Chkk Upgrade Context MCP Server is installed

Retrieve the Upgrade ID
- In the left-hand column of the Chkk Dashboard, expand Upgrade Copilot.
-
Under Upgrade Plans select Add-on & App Services.

- On the Middle Right corner of the page, enable the Show Example Data toggle, as shown in the image below.
-
This will switch the view to only show example data and displays a confirmation banner.

- In the table below, you will see a list of Add-on and Application Service Example Upgrade Plans.
- Select any Upgrade Plan from the table that has the AI Context Generated badge, as shown in the image below.

- At the top of the page, under the name of the Upgrade Plan, you will see the Upgrade ID.
-
Click the clipboard icon to copy the Upgrade ID to your clipboard.

Open a new chat in Cursor
- In Cursor (top-left), click View → Command Palette.
- Make sure the chat is opened from your IaC repo root.
Load the Chkk Upgrade Agent

Provide the upgrade ID of the Example Upgrade Plan

Upgrade Agent Workflow
Connect your environment to Chkk and generate an Upgrade Plan. From the Cursor IDE, ask the Chkk Upgrade MCP to fetch Upgrade Context from that plan for the Cloud Native Project you’re about to change—say cert-manager or External Secrets Operator. The agent retrieves the recommended target version and rationale, detects your IaC pattern, identifies which files need to be updated, creates an environment-specific diff, and attaches the notes reviewers want (deprecations, critical fixes, notable features). Your IDE applies the diff and opens the PR, with optional preflight and postflight checks to keep code and running state aligned. The entire flow happens in your Cursor editor chat, end-to-end. Below is exactly what you’ll see, phase by phase, using a live example that upgrades cert-manager from v1.14.4 → v1.17.2 with a forked Helm chart.Kickoff & ID Handshake
Environment Snapshot & State Setup
- Confirms the package (e.g.,
cert-manager) and version span (1.14.4 → 1.17.2). - Creates a project-local scratchpad (e.g.,
.chkk/scratchpad/) which enables workflow tracing and checkpointing.
Context Retrieval (MCP Tool Call)
- The authoritative Upgrade Plan for
cert-manager. - Exact file artifacts to add and unified diff files to apply.
Plan Load & Sanity Summary
- Upgrade Details:
cert-manager v1.14.4 → v1.17.2 - Reasons: e.g., “1.14.4 is EOL/Unsupported” and “1.14.4 incompatible with Kubernetes 1.32.”
- Inventory: Added: 2 files, Modified: 23 files, Deleted: 0 (your counts will vary by package).
Target Locator (Chart Finder)
.../helm/cert-manager/) by scanning for Chart.yaml where
name == cert-manager and version == 1.14.4 (exact, case-sensitive).Edge cases you might see:- Multiple matches: You’ll get a list of absolute paths and a prompt to choose one—no guessing.
- No match: The agent asks for an explicit absolute path (it won’t “best-effort” a wrong chart).
Preflight Checks
- Chart Name & Version Match — confirms Chart.yaml matches the current package & version.
- Upgrade Plan Metadata Match — confirms the plan’s from/to are consistent with resolved metadata.
Reviewer Context, Upfront
- Critical drivers (e.g., EOL, K8s version compatibility).
- Breaking changes (e.g., structured logging, stricter Helm schema validation, API removals).
- Security & bug fixes (e.g., DoS mitigations, renewal logic).
- Notable features (e.g., Gateway API support, metrics exposure).
Deterministic Apply Pass
- Full inventory printout: “Processing 25 total files: 2 added, 23 modified, 0 deleted”
-
Adds: Each source file from the context is copied to the correct relative target (e.g.,
templates/cainjector-service.yaml,templates/extras-objects.yaml) with immediate ✅ Added confirmations. -
Mods: Every single
*.diffis applied one-by-one with a visible sequence:
“Processing diff 1 of 23: Chart.yaml … ✅ Modified"
"Processing diff 2 of 23: README.md … ✅ Modified”
…through to the last template/value file. -
Deletions: If any exist, they’re backed up to
.bak, then removed with ✅ Deleted confirmations.
CRD Copy
Update Custom Resources
Postflight Checks
- Chart version updated —
Chart.yaml version == to_version(e.g.,v1.17.2) → ✅❌ - All planned changes applied — match exactly and all items carry ✅ → ✅❌
Human-Readable Summary (PR-Ready)
- Completion: 🎉
cert-managerIaC Successfully Updated —v1.14.4 → v1.17.2. - Reasons (EOL, K8s compatibility) and most-critical notes (breaking changes, security fixes).
- Applied changes (counts + important files).
- CRD location (exact path).
- Next step: “Create a Pull Request to review and apply these IaC changes.”
Review and commit
Review workspace changes
- Open the Source Control panel (left sidebar) to inspect the diff.
- Verify
Chart.yaml,values.yaml, and any template updates.
Commit and open a pull request
Chkk’s MCP server is read-only; your IDE/agent holds the pen and performs edits locally.