@adhisang/minecraft-modding-mcp 3.0.0 → 3.1.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/CHANGELOG.md +52 -29
- package/README.md +209 -849
- package/dist/config.js +19 -11
- package/dist/entry-tools/analyze-mod-service.d.ts +16 -16
- package/dist/entry-tools/analyze-mod-service.js +69 -13
- package/dist/entry-tools/analyze-symbol-service.d.ts +14 -12
- package/dist/entry-tools/analyze-symbol-service.js +64 -6
- package/dist/entry-tools/compare-minecraft-service.d.ts +6 -6
- package/dist/entry-tools/compare-minecraft-service.js +58 -26
- package/dist/entry-tools/inspect-minecraft-service.d.ts +37 -19
- package/dist/entry-tools/inspect-minecraft-service.js +468 -51
- package/dist/entry-tools/manage-cache-service.d.ts +6 -6
- package/dist/entry-tools/manage-cache-service.js +40 -5
- package/dist/entry-tools/response-contract.d.ts +1 -0
- package/dist/entry-tools/response-contract.js +3 -0
- package/dist/entry-tools/validate-project-service.d.ts +24 -24
- package/dist/entry-tools/validate-project-service.js +40 -7
- package/dist/index.js +290 -51
- package/dist/mapping-service.d.ts +1 -0
- package/dist/mapping-service.js +55 -34
- package/dist/observability.d.ts +18 -2
- package/dist/observability.js +47 -10
- package/dist/source-service.d.ts +2 -1
- package/dist/source-service.js +206 -112
- package/dist/storage/files-repo.d.ts +1 -0
- package/dist/storage/files-repo.js +29 -5
- package/dist/tool-contract-manifest.d.ts +4 -0
- package/dist/tool-contract-manifest.js +137 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,7 +5,47 @@ All notable changes to this project are documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project aims to follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [
|
|
8
|
+
## [3.1.1] - 2026-03-21
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- `analyze-symbol task="api-overview"` now inherits `sourceMapping` as the default `classNameMapping`, avoiding unintended fallback to `obfuscated` when callers omit `classNameMapping`.
|
|
12
|
+
- `get-class-api-matrix` now builds rows from the explicitly requested `classNameMapping` instead of silently pivoting to `obfuscated` when both identities are available.
|
|
13
|
+
- `find-mapping` now accepts short obfuscated class ids such as `dhl` when `sourceMapping="obfuscated"` instead of rejecting them at input validation.
|
|
14
|
+
- `find-mapping` now restores `mojang -> intermediary`, `mojang -> yarn`, and `intermediary -> mojang` conversions on mappings builds where those paths previously failed.
|
|
15
|
+
- `trace-symbol-lifecycle` now strips an accidental inline signature suffix from `symbol` before splitting `Class.method`, preventing misparsed lifecycle lookups while keeping the separate `descriptor` field as the exact-match path.
|
|
16
|
+
- `trace-symbol-lifecycle` now rejects class-like `symbol` inputs such as `net.minecraft.world.item.Item` with `ERR_INVALID_INPUT` instead of scanning versions until lookup work fails elsewhere.
|
|
17
|
+
- `analyze-symbol task="lifecycle"` now applies its required `version` as the lifecycle scan upper bound instead of ignoring that input and always scanning the default full range, and the high-level helper now keeps that scan to a recent 5-version window for predictable runtime.
|
|
18
|
+
- `trace-symbol-lifecycle` now completes broad lifecycle scans more reliably without long stalls.
|
|
19
|
+
- `analyze-mod` and `validate-project` now return retryable `suggestedCall` guidance when older string-subject or domain-include payloads fail with `ERR_INVALID_INPUT`.
|
|
20
|
+
- `validate-mixin` and `validate-project task="project-summary"` now treat empty mixin configs as warning-only discovery results with zero validated classes instead of `ERR_INVALID_INPUT`.
|
|
21
|
+
- `inspect-minecraft` now keeps workspace `class-overview`, class-like `search`, and `list-files` usable when source coverage is partial, with partial-status guidance where needed.
|
|
22
|
+
- `inspect-minecraft` invalid task/subject combinations now return retryable `suggestedCall` guidance instead of dead-end `ERR_INVALID_INPUT` messages, preserving the requested task when artifact context is the only missing input and otherwise pointing to the subject-compatible retry path.
|
|
23
|
+
- Path-based environment overrides now treat blank values and the literal strings `undefined` and `null` as unset, preventing accidental `./undefined` and `./null` cache roots and invalid JAR override paths when clients serialize missing values incorrectly.
|
|
24
|
+
|
|
25
|
+
### Performance
|
|
26
|
+
- `trace-symbol-lifecycle`, `check-symbol-exists`, and `find-mapping` now respond faster on Mojang/obfuscated-only workflows, especially on cold lookups.
|
|
27
|
+
|
|
28
|
+
### Documentation
|
|
29
|
+
- Shortened the English and Japanese READMEs so onboarding guidance, workflow notes, and detailed reference material no longer repeat the same content across multiple sections.
|
|
30
|
+
- Simplified the generated tool-surface tables in both READMEs to compact purpose-only summaries and pointed exact input/output details to `docs/tool-reference.md`.
|
|
31
|
+
- Rewrote the Japanese workflow guidance in more natural Japanese and clarified that the detailed examples and full reference remain English-first for now.
|
|
32
|
+
|
|
33
|
+
## [3.1.0] - 2026-03-15
|
|
34
|
+
|
|
35
|
+
### Changed
|
|
36
|
+
- `search-class-source` `queryMode="auto" | "token"` now keeps separator queries such as `foo.bar`, `foo_bar`, and `foo$bar` on the indexed path instead of silently retrying a full substring scan; `queryMode="literal"` remains the explicit opt-in scan mode.
|
|
37
|
+
- The top-level workflow tools now include `result.summary.subject` consistently, and high-confidence follow-up flows such as migration overviews, remap previews, cache previews, and search misses from those tools now surface `summary.nextActions`.
|
|
38
|
+
- `tools/list` now exposes JSON Schema `default` values for fixed MCP tool parameters such as `list-versions.includeSnapshots=false`, `search-class-source.queryMode="auto"`, `inspect-minecraft.includeSnapshots=false`, `analyze-mod.searchType="all"` / `includeFiles=true` / `limit=50`, `validate-mixin.reportMode="full"`, and selected controls on the top-level workflow tools like `manage-cache.executionMode="preview"` / `limit=50`, so clients can rely on schema metadata instead of parsing prose descriptions.
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
- Error recovery payloads (`suggestedCall`) now omit parameters when the supplied value matches the tool's default behavior, keeping retryable calls smaller without changing their semantics.
|
|
42
|
+
|
|
43
|
+
### Performance
|
|
44
|
+
- Explicit text and path scan fallbacks in `search-class-source` now use less memory and stay more predictable on large artifacts.
|
|
45
|
+
|
|
46
|
+
### Documentation
|
|
47
|
+
- Corrected the published `compare-minecraft` class-only `subject.kind="class".sourcePriority` input and aligned the documented `inspect-minecraft` / `validate-project` outputs with current behavior.
|
|
48
|
+
- Documented that safe fixed defaults now appear in `tools/list` schema output and that `suggestedCall` omits default-valued parameters.
|
|
9
49
|
|
|
10
50
|
## [3.0.0] - 2026-03-09
|
|
11
51
|
|
|
@@ -14,9 +54,6 @@ and this project aims to follow [Semantic Versioning](https://semver.org/spec/v2
|
|
|
14
54
|
- The new v3 entry tools share `detail` / `include` response shaping and always return `result.summary` inside the standard `{ result?, error?, meta }` envelope, reducing default payload size and making next actions explicit.
|
|
15
55
|
- `analyze-mod` now exposes `executionMode="preview" | "apply"` for safe remap planning and execution, and `manage-cache` now exposes the same preview/apply model for cache deletion, pruning, and rebuild workflows.
|
|
16
56
|
|
|
17
|
-
### Documentation
|
|
18
|
-
- Added v3 entry-tool usage guidance, shared response-shaping notes, and entry-tool-first migration guidance to both READMEs.
|
|
19
|
-
|
|
20
57
|
### Fixed
|
|
21
58
|
- `inspect-minecraft` now routes `subject.kind="workspace"` requests with `focus.kind="class" | "file" | "search"` through the matching task for `task=auto`, while preserving workspace-aware artifact resolution for focused file and search follow-up flows.
|
|
22
59
|
- `inspect-minecraft task=class-overview | class-source | class-members` now accepts `subject.kind="workspace"` with `focus.kind="class"` even when the focus omits an explicit artifact reference, reusing workspace version detection to resolve artifact context first.
|
|
@@ -37,8 +74,8 @@ and this project aims to follow [Semantic Versioning](https://semver.org/spec/v2
|
|
|
37
74
|
|
|
38
75
|
### Fixed
|
|
39
76
|
- `compare-versions` now applies `packageFilter` consistently to `classes.addedCount`, `removedCount`, and `unchanged`, so class summary counts reflect the same filtered package scope as the returned class lists.
|
|
40
|
-
- Heavy analysis tools
|
|
41
|
-
- The stdio CLI
|
|
77
|
+
- Heavy analysis tools now fail fast with `ERR_LIMIT_EXCEEDED` when too many expensive requests arrive at once, instead of letting the whole MCP session degrade under load.
|
|
78
|
+
- The stdio CLI now recovers more cleanly from unexpected internal exits, reducing full-session disconnects during live use.
|
|
42
79
|
- `trace-symbol-lifecycle` now uses strict method remapping when a descriptor is provided, falls back to name-only lookup when it is omitted, and surfaces real mapping input failures in warnings instead of collapsing them into generic lookup errors.
|
|
43
80
|
- `get-class-source` / `get-class-members` now infer a missing artifact version from `projectPath` when `preferProjectVersion=true`, making project-aware lookups more consistent for previously resolved artifacts.
|
|
44
81
|
- Error recovery payloads (`suggestedCall`) now use the current `target` object schema instead of deprecated `targetKind` / `targetValue` fields.
|
|
@@ -51,7 +88,7 @@ and this project aims to follow [Semantic Versioning](https://semver.org/spec/v2
|
|
|
51
88
|
- `resolve-workspace-symbol` now recognizes NeoForge ModDevGradle workspaces as `mojang` compile mappings instead of returning `mapping_unavailable`.
|
|
52
89
|
- `resolve-artifact`, `get-class-source`, and `get-class-members` now preserve `ERR_JAR_NOT_FOUND` for missing `target.kind=jar` paths instead of leaking raw filesystem `ENOENT` failures through the public contract.
|
|
53
90
|
- `get-registry-data` now invalidates corrupt cached `registries.json` snapshots, regenerates them on demand, and reports `ERR_REGISTRY_GENERATION_FAILED` when the regenerated snapshot is still unreadable.
|
|
54
|
-
- `validate-mixin` now retries with
|
|
91
|
+
- `validate-mixin` now retries with Maven mapping data after Loom-only partial results when that can complete validation, reducing false warnings.
|
|
55
92
|
- `validate-mixin` no longer emits schema-invalid `check-symbol-exists` recovery payloads in `suggestedCall`; unsupported parameters such as `scope` and `projectPath` are omitted from those calls.
|
|
56
93
|
- `validate-mixin` now lowers confidence for skipped member validation and exposes requested-vs-applied scope/source-priority details instead of making partial results look fully verified.
|
|
57
94
|
- `validate-mixin` now follows the resolved artifact namespace during bytecode lookup for non-vanilla scopes, so `scope="merged"` on Mojang-mapped Loom workspaces validates against merged class names instead of falling back to false partial results and retry-driven timeouts.
|
|
@@ -61,13 +98,11 @@ and this project aims to follow [Semantic Versioning](https://semver.org/spec/v2
|
|
|
61
98
|
- `check-symbol-exists` no longer repeats raw Loom tiny-cache miss warnings when Maven tiny mappings successfully satisfy the lookup; successful fallback now emits concise fallback context instead.
|
|
62
99
|
|
|
63
100
|
### Documentation
|
|
64
|
-
- Corrected the `compare-versions`
|
|
65
|
-
- Documented the new compact-response options, `summary-first` validate-mixin mode, bare-string `target` recovery guidance, and updated token-efficient examples in both READMEs.
|
|
101
|
+
- Corrected the published `compare-versions` response docs to show registry results under `result.registry`.
|
|
66
102
|
|
|
67
103
|
### Performance
|
|
68
|
-
-
|
|
69
|
-
- `find-mapping`, `get-class-api-matrix`, `resolve-workspace-symbol`, `check-symbol-exists`, and `validate-mixin` now
|
|
70
|
-
- Warm-cache source and mod workflows now avoid extra regex recompilation, statement-cache churn, and FIFO cache evictions across search, signature lookup, source resolution, and decompile paths.
|
|
104
|
+
- Cache-heavy artifact loading and runtime metric reads now stay faster after repeated operations instead of rescanning cache state each time.
|
|
105
|
+
- `find-mapping`, `get-class-api-matrix`, `resolve-workspace-symbol`, `check-symbol-exists`, and `validate-mixin` now respond faster on repeated mapping-heavy workflows.
|
|
71
106
|
|
|
72
107
|
## [2.0.0] - 2026-03-07
|
|
73
108
|
|
|
@@ -83,7 +118,7 @@ and this project aims to follow [Semantic Versioning](https://semver.org/spec/v2
|
|
|
83
118
|
|
|
84
119
|
### Fixed
|
|
85
120
|
- `resolve-artifact`: `targetKind=coordinate` now reuses the local Gradle `modules-2` cache in addition to the local Maven repository and configured source repos, so cached third-party libraries such as Architectury can resolve without manual cache spelunking.
|
|
86
|
-
- `resolve-artifact`: `mapping=mojang` + Loom merged source discovery now
|
|
121
|
+
- `resolve-artifact`: `mapping=mojang` + Loom merged source discovery now warns when the selected source jar only provides partial Minecraft source coverage.
|
|
87
122
|
- `get-class-source` / `get-class-members`: when an artifact is resolved from a `*-sources.jar`, the server now keeps the sibling binary jar and automatically falls back to it when source coverage is incomplete instead of treating the source jar as bytecode.
|
|
88
123
|
- `get-class-source`: partial-source binary fallback now bypasses the same sibling `*-sources.jar` that triggered the miss, and fallback failures for vanilla classes point to `get-class-api-matrix` instead of misleading `find-class` recovery.
|
|
89
124
|
- `get-class-members`: bytecode lookup now follows the resolved artifact namespace (`mappingApplied`) before remapping members back to the requested namespace, fixing merged Mojang artifacts that were incorrectly forced through obfuscated class names.
|
|
@@ -93,18 +128,14 @@ and this project aims to follow [Semantic Versioning](https://semver.org/spec/v2
|
|
|
93
128
|
- Tool input parsing now leaves nested `typedJson` and JSON Patch `value` payload fields untouched, even when their keys happen to match top-level numeric option names such as `limit` or `maxLines`.
|
|
94
129
|
|
|
95
130
|
### Performance
|
|
96
|
-
- `search-class-source
|
|
97
|
-
- Tool input preprocessing now stays shallow, avoiding recursive scans through large nested payloads such as NBT typed JSON and patch bodies.
|
|
131
|
+
- `search-class-source` now returns compact hits more efficiently, reducing latency and memory use on larger artifacts.
|
|
98
132
|
|
|
99
133
|
## [1.2.1] - 2026-03-05
|
|
100
134
|
|
|
101
135
|
### Fixed
|
|
102
|
-
- MCP startup regression:
|
|
136
|
+
- MCP startup regression: `tools/list` handshakes no longer stall on SQLite initialization in slower environments.
|
|
103
137
|
- Decompiler: skip Java/Vineflower availability checks when decompiled source is already cached, avoiding unnecessary startup errors on systems without Java.
|
|
104
138
|
|
|
105
|
-
### Documentation
|
|
106
|
-
- Clarified startup behavior in README (`SourceService` remains lazy and is not pre-initialized before tool discovery).
|
|
107
|
-
|
|
108
139
|
## [1.2.0] - 2026-03-05
|
|
109
140
|
|
|
110
141
|
### Added
|
|
@@ -146,12 +177,7 @@ and this project aims to follow [Semantic Versioning](https://semver.org/spec/v2
|
|
|
146
177
|
- Mojang proguard mapping: JVM descriptor parsing fixes.
|
|
147
178
|
|
|
148
179
|
### Changed
|
|
149
|
-
-
|
|
150
|
-
- Eagerly init `SourceService` during MCP handshake idle time for faster first-request response.
|
|
151
|
-
|
|
152
|
-
### Performance
|
|
153
|
-
- Avoid duplicate UTF-8 decode during truncation.
|
|
154
|
-
- Eager `SourceService` init during handshake idle time.
|
|
180
|
+
- `SourceService` startup work now avoids slowing the MCP handshake while still using idle time to reduce the wait before the first source-heavy request.
|
|
155
181
|
|
|
156
182
|
## [1.1.1] - 2026-03-02
|
|
157
183
|
|
|
@@ -161,11 +187,8 @@ and this project aims to follow [Semantic Versioning](https://semver.org/spec/v2
|
|
|
161
187
|
|
|
162
188
|
## [1.1.0] - 2026-03-01
|
|
163
189
|
|
|
164
|
-
### Changed
|
|
165
|
-
- Migrate stdio transport from mcp-use to @modelcontextprotocol/sdk.
|
|
166
|
-
|
|
167
190
|
### Fixed
|
|
168
|
-
- Restore Codex startup handshake compatibility by accepting both newline-delimited and `Content-Length` stdio framing.
|
|
191
|
+
- Restore Codex startup handshake compatibility by accepting both newline-delimited and `Content-Length` stdio framing on stdio connections.
|
|
169
192
|
|
|
170
193
|
### Documentation
|
|
171
194
|
- Add Quick Start setup for Claude Code, OpenAI Codex CLI, and Gemini CLI.
|