renovate-mcp 1.4.11 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -39,7 +39,7 @@ Restart your client and try the prompt: *"List the namespaces available under `r
39
39
 
40
40
  ## Tools & resources
41
41
 
42
- Sixteen tools and three resource templates. Each tool name below links to its full reference in [`docs/tools.md`](docs/tools.md).
42
+ Seventeen tools, six resources, and three workflow prompts. Each tool name below links to its full reference in [`docs/tools.md`](docs/tools.md).
43
43
 
44
44
  | Tool | Purpose |
45
45
  | --- | --- |
@@ -57,18 +57,30 @@ Sixteen tools and three resource templates. Each tool name below links to its fu
57
57
  | [`dry_run`](docs/tools.md#dry_run) | Run Renovate with `--dry-run` and return the structured JSON report. Local-by-default; remote with `platform` + `endpoint` + `token` + `repository`. No PRs, no pushes. |
58
58
  | [`dry_run_diff`](docs/tools.md#dry_run_diff) | Stateless semantic diff between two `dry_run` reports — added / removed / changed updates. |
59
59
  | [`annotate_dry_run`](docs/tools.md#annotate_dry_run) | Attribute each proposed update in a `dry_run` report to the `packageRules` that caused it; flags rules that never matched and report fields the matchers needed but the report lacked. Stateless + offline. |
60
+ | [`explain_dependency`](docs/tools.md#explain_dependency) | Answer "why was/wasn't dependency X updated?" from a `dry_run` report: per-occurrence `skipReason`, proposed `updates`, `warnings`, a one-line verdict and remedy hints; optionally the `packageRules` that matched it. Stateless + offline. |
60
61
  | [`migrate_config`](docs/tools.md#migrate_config) | Apply Renovate's built-in migrations and return the migrated config plus a unified diff. Does not write. |
61
- | [`write_config`](docs/tools.md#write_config) | Validate, then atomically write a config to disk. Preserves comments/key order on existing JSON-with-comments files. |
62
+ | [`write_config`](docs/tools.md#write_config) | Validate, then atomically write a config to disk. Preserves comments/key order on existing JSON-with-comments files; for `package.json` edits only the nested `renovate` key. |
62
63
  | [`renovate://presets`](docs/tools.md#renovatepresets) (resource) | Markdown index of all built-in presets grouped by namespace. |
63
64
  | [`renovate://presets/{namespace}`](docs/tools.md#renovatepresetsnamespace) (resource) | Markdown listing for a single namespace. |
64
65
  | [`renovate://preset/{name}`](docs/tools.md#renovatepresetname) (resource) | Expanded JSON body for one preset. |
66
+ | [`renovate://options`](docs/tools.md#renovateoptions) (resource) | Markdown index of all Renovate config options, split into repository and global/self-hosted-only sections. |
67
+ | [`renovate://option/{name}`](docs/tools.md#renovateoptionname) (resource) | Full definition of one config option as JSON. |
68
+ | [`renovate://managers`](docs/tools.md#renovatemanagers) (resource) | Markdown list of all manager names, including custom managers. |
69
+
70
+ **Prompts.** Three workflow prompts package the tool sequences above into ready-to-run starting points. Claude Code surfaces MCP prompts as slash commands (e.g. `/mcp__renovate__design-renovate-config`); other MCP clients expose them through their own prompt picker.
71
+
72
+ | Prompt | Drives |
73
+ | --- | --- |
74
+ | [`design-renovate-config`](docs/tools.md#design-renovate-config) | `check_setup` → `read_config` → `suggest_presets` → `resolve_config`/`explain_config` → `validate_config`/`lint_config` → `dry_run` → `write_config` on confirmation. |
75
+ | [`debug-package-rule`](docs/tools.md#debug-package-rule) | `check_setup` → `read_config` → `test_package_rules` → `dry_run` (with `reportOutputPath`) → `annotate_dry_run` → `explain_dependency` → a verdict naming rule indices and matchers. |
76
+ | [`author-custom-manager`](docs/tools.md#author-custom-manager) | Draft a `customManagers` entry → `preview_custom_manager` iteratively → `validate_config`/`lint_config` → `dry_run` → `write_config` on confirmation. |
65
77
 
66
78
  ## Requirements
67
79
 
68
80
  - **Linux or macOS.** Windows is not supported — `package.json` declares `"os": ["darwin", "linux"]`, so `npm i` surfaces an `EBADPLATFORM` warning on Windows and the server exits with a clear stderr message at startup. Use WSL2 or a Linux/macOS host instead.
69
81
  - **Node.js ≥ 24** (aligns with Renovate's own engine requirement).
70
82
 
71
- Renovate ships bundled — the `renovate` package is a runtime dependency, so `validate_config`, `dry_run`, and `write_config` work out of the box with no separate install. The offline tools (`read_config`, `suggest_presets`, `resolve_config`, `explain_config`, `resolve_config_diff`, `preview_custom_manager`, `lint_config`) never spawn Renovate at all.
83
+ Renovate ships bundled — the `renovate` package is a runtime dependency, so `validate_config`, `dry_run`, and `write_config` work out of the box with no separate install. The offline tools (`read_config`, `suggest_presets`, `resolve_config`, `explain_config`, `resolve_config_diff`, `preview_custom_manager`, `lint_config`, `explain_dependency`) never spawn Renovate at all.
72
84
 
73
85
  **Optional env vars:**
74
86
 
@@ -152,6 +164,7 @@ Once the server is wired up, try prompts like these. Written for Claude but work
152
164
 
153
165
  - "Validate this proposed config against Renovate's schema without writing it anywhere."
154
166
  - "Do a dry run and show me which PRs Renovate would open — no pushes."
167
+ - "Why didn't Renovate update `lodash`? Run a dry run and explain that dependency."
155
168
  - "Add `:semanticCommits` to my `extends`, validate it, and save back to `renovate.json`."
156
169
 
157
170
  ## Example session
@@ -193,6 +206,7 @@ npm run test:coverage # vitest run --coverage
193
206
  npm run generate:presets # regenerate src/data/presets.generated.ts
194
207
  npm run generate:managers # regenerate src/data/managers.generated.ts
195
208
  npm run generate:migrations # regenerate src/data/migrations.generated.ts
209
+ npm run generate:options # regenerate src/data/options.generated.ts
196
210
  npm run check:snapshot-versions # fail if any src/data/*.generated.ts is stale vs installed renovate
197
211
  ```
198
212
 
@@ -0,0 +1,21 @@
1
+ export interface GeneratedOption {
2
+ description?: string;
3
+ type?: string;
4
+ subType?: string;
5
+ default?: unknown;
6
+ allowedValues?: readonly unknown[];
7
+ globalOnly?: boolean;
8
+ supportedManagers?: readonly string[];
9
+ supportedPlatforms?: readonly string[];
10
+ experimental?: boolean;
11
+ experimentalDescription?: string;
12
+ deprecationMsg?: string;
13
+ parents?: readonly string[];
14
+ stage?: string;
15
+ advancedUse?: boolean;
16
+ cli?: boolean;
17
+ env?: boolean;
18
+ }
19
+ export declare const RENOVATE_VERSION = "44.65.5";
20
+ export declare const OPTIONS: Record<string, GeneratedOption>;
21
+ export declare const OPTION_NAMES: readonly string[];