@adhisang/minecraft-modding-mcp 4.0.0 → 4.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 +61 -0
- package/README.md +40 -23
- package/dist/build-suggested-call.d.ts +29 -0
- package/dist/build-suggested-call.js +58 -0
- package/dist/cache-registry.d.ts +3 -1
- package/dist/cache-registry.js +50 -6
- package/dist/entry-tools/analyze-symbol-service.d.ts +16 -16
- package/dist/entry-tools/batch-class-members-service.d.ts +34 -0
- package/dist/entry-tools/batch-class-members-service.js +97 -0
- package/dist/entry-tools/batch-class-source-service.d.ts +37 -0
- package/dist/entry-tools/batch-class-source-service.js +100 -0
- package/dist/entry-tools/batch-mappings-service.d.ts +36 -0
- package/dist/entry-tools/batch-mappings-service.js +66 -0
- package/dist/entry-tools/batch-runner.d.ts +72 -0
- package/dist/entry-tools/batch-runner.js +90 -0
- package/dist/entry-tools/batch-symbol-exists-service.d.ts +46 -0
- package/dist/entry-tools/batch-symbol-exists-service.js +113 -0
- package/dist/entry-tools/compare-minecraft-service.d.ts +6 -6
- package/dist/entry-tools/inspect-minecraft/handlers/artifact.d.ts +5 -0
- package/dist/entry-tools/inspect-minecraft/handlers/artifact.js +83 -0
- package/dist/entry-tools/inspect-minecraft/handlers/class-members.d.ts +6 -0
- package/dist/entry-tools/inspect-minecraft/handlers/class-members.js +80 -0
- package/dist/entry-tools/inspect-minecraft/handlers/class-overview.d.ts +5 -0
- package/dist/entry-tools/inspect-minecraft/handlers/class-overview.js +248 -0
- package/dist/entry-tools/inspect-minecraft/handlers/class-source.d.ts +5 -0
- package/dist/entry-tools/inspect-minecraft/handlers/class-source.js +60 -0
- package/dist/entry-tools/inspect-minecraft/handlers/file.d.ts +5 -0
- package/dist/entry-tools/inspect-minecraft/handlers/file.js +54 -0
- package/dist/entry-tools/inspect-minecraft/handlers/list-files.d.ts +5 -0
- package/dist/entry-tools/inspect-minecraft/handlers/list-files.js +100 -0
- package/dist/entry-tools/inspect-minecraft/handlers/search.d.ts +5 -0
- package/dist/entry-tools/inspect-minecraft/handlers/search.js +155 -0
- package/dist/entry-tools/inspect-minecraft/handlers/versions.d.ts +6 -0
- package/dist/entry-tools/inspect-minecraft/handlers/versions.js +49 -0
- package/dist/entry-tools/inspect-minecraft/internal.d.ts +1042 -0
- package/dist/entry-tools/inspect-minecraft/internal.js +448 -0
- package/dist/entry-tools/inspect-minecraft-service.d.ts +193 -308
- package/dist/entry-tools/inspect-minecraft-service.js +20 -1244
- package/dist/entry-tools/manage-cache-service.d.ts +16 -16
- package/dist/entry-tools/validate-project/cases/access-transformer.d.ts +6 -0
- package/dist/entry-tools/validate-project/cases/access-transformer.js +106 -0
- package/dist/entry-tools/validate-project/cases/access-widener.d.ts +6 -0
- package/dist/entry-tools/validate-project/cases/access-widener.js +86 -0
- package/dist/entry-tools/validate-project/cases/mixin.d.ts +6 -0
- package/dist/entry-tools/validate-project/cases/mixin.js +90 -0
- package/dist/entry-tools/validate-project/cases/project-summary.d.ts +102 -0
- package/dist/entry-tools/validate-project/cases/project-summary.js +415 -0
- package/dist/entry-tools/validate-project/internal.d.ts +142 -0
- package/dist/entry-tools/validate-project/internal.js +303 -0
- package/dist/entry-tools/validate-project-service.d.ts +67 -47
- package/dist/entry-tools/validate-project-service.js +13 -563
- package/dist/entry-tools/verify-mixin-target-service.d.ts +133 -0
- package/dist/entry-tools/verify-mixin-target-service.js +323 -0
- package/dist/error-mapping.d.ts +40 -0
- package/dist/error-mapping.js +139 -0
- package/dist/errors.d.ts +6 -0
- package/dist/errors.js +6 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +147 -1354
- package/dist/mapping/internal-types.d.ts +54 -0
- package/dist/mapping/internal-types.js +14 -0
- package/dist/mapping/loaders/mojang.d.ts +2 -0
- package/dist/mapping/loaders/mojang.js +64 -0
- package/dist/mapping/loaders/tiny-loom.d.ts +2 -0
- package/dist/mapping/loaders/tiny-loom.js +73 -0
- package/dist/mapping/loaders/tiny-maven.d.ts +2 -0
- package/dist/mapping/loaders/tiny-maven.js +104 -0
- package/dist/mapping/loaders/types.d.ts +14 -0
- package/dist/mapping/loaders/types.js +2 -0
- package/dist/mapping/lookup.d.ts +52 -0
- package/dist/mapping/lookup.js +496 -0
- package/dist/mapping/parsers/normalize.d.ts +10 -0
- package/dist/mapping/parsers/normalize.js +52 -0
- package/dist/mapping/parsers/proguard.d.ts +20 -0
- package/dist/mapping/parsers/proguard.js +138 -0
- package/dist/mapping/parsers/symbol-records.d.ts +27 -0
- package/dist/mapping/parsers/symbol-records.js +216 -0
- package/dist/mapping/parsers/tiny.d.ts +9 -0
- package/dist/mapping/parsers/tiny.js +96 -0
- package/dist/mapping/types.d.ts +147 -0
- package/dist/mapping/types.js +2 -0
- package/dist/mapping-pipeline-service.js +3 -2
- package/dist/mapping-service.d.ts +8 -145
- package/dist/mapping-service.js +30 -1207
- package/dist/mixin/access-validators.d.ts +9 -0
- package/dist/mixin/access-validators.js +257 -0
- package/dist/mixin/annotation-validators.d.ts +5 -0
- package/dist/mixin/annotation-validators.js +162 -0
- package/dist/mixin/helpers.d.ts +28 -0
- package/dist/mixin/helpers.js +315 -0
- package/dist/mixin/parsed-validator.d.ts +8 -0
- package/dist/mixin/parsed-validator.js +337 -0
- package/dist/mixin/types.d.ts +208 -0
- package/dist/mixin/types.js +28 -0
- package/dist/mixin-validator.d.ts +9 -201
- package/dist/mixin-validator.js +8 -1020
- package/dist/source/access-validate.d.ts +4 -0
- package/dist/source/access-validate.js +254 -0
- package/dist/source/artifact-resolver.d.ts +111 -0
- package/dist/source/artifact-resolver.js +1271 -0
- package/dist/source/cache-metrics.d.ts +26 -0
- package/dist/source/cache-metrics.js +172 -0
- package/dist/source/class-source/members-builder.d.ts +34 -0
- package/dist/source/class-source/members-builder.js +46 -0
- package/dist/source/class-source/snippet-builder.d.ts +19 -0
- package/dist/source/class-source/snippet-builder.js +46 -0
- package/dist/source/class-source-helpers.d.ts +34 -0
- package/dist/source/class-source-helpers.js +140 -0
- package/dist/source/class-source.d.ts +42 -0
- package/dist/source/class-source.js +883 -0
- package/dist/source/descriptor-utils.d.ts +6 -0
- package/dist/source/descriptor-utils.js +37 -0
- package/dist/source/file-access.d.ts +4 -0
- package/dist/source/file-access.js +102 -0
- package/dist/source/indexer.d.ts +82 -0
- package/dist/source/indexer.js +522 -0
- package/dist/source/lifecycle/diff-utils.d.ts +9 -0
- package/dist/source/lifecycle/diff-utils.js +107 -0
- package/dist/source/lifecycle/diff.d.ts +2 -0
- package/dist/source/lifecycle/diff.js +265 -0
- package/dist/source/lifecycle/mapping-helpers.d.ts +22 -0
- package/dist/source/lifecycle/mapping-helpers.js +327 -0
- package/dist/source/lifecycle/runtime-check.d.ts +2 -0
- package/dist/source/lifecycle/runtime-check.js +142 -0
- package/dist/source/lifecycle/trace.d.ts +2 -0
- package/dist/source/lifecycle/trace.js +231 -0
- package/dist/source/lifecycle.d.ts +4 -0
- package/dist/source/lifecycle.js +5 -0
- package/dist/source/search.d.ts +51 -0
- package/dist/source/search.js +676 -0
- package/dist/source/shared-utils.d.ts +6 -0
- package/dist/source/shared-utils.js +55 -0
- package/dist/source/state.d.ts +26 -0
- package/dist/source/state.js +24 -0
- package/dist/source/symbol-resolver.d.ts +3 -0
- package/dist/source/symbol-resolver.js +212 -0
- package/dist/source/validate-mixin/pipeline/mapping-health.d.ts +3 -0
- package/dist/source/validate-mixin/pipeline/mapping-health.js +41 -0
- package/dist/source/validate-mixin/pipeline/parse.d.ts +2 -0
- package/dist/source/validate-mixin/pipeline/parse.js +10 -0
- package/dist/source/validate-mixin/pipeline/resolve.d.ts +3 -0
- package/dist/source/validate-mixin/pipeline/resolve.js +78 -0
- package/dist/source/validate-mixin/pipeline/target-lookup.d.ts +6 -0
- package/dist/source/validate-mixin/pipeline/target-lookup.js +260 -0
- package/dist/source/validate-mixin/pipeline-context.d.ts +72 -0
- package/dist/source/validate-mixin/pipeline-context.js +93 -0
- package/dist/source/validate-mixin.d.ts +22 -0
- package/dist/source/validate-mixin.js +799 -0
- package/dist/source/workspace-target.d.ts +18 -0
- package/dist/source/workspace-target.js +305 -0
- package/dist/source-resolver.d.ts +1 -0
- package/dist/source-resolver.js +1 -1
- package/dist/source-service.d.ts +164 -170
- package/dist/source-service.js +70 -6116
- package/dist/stage-emitter.d.ts +13 -0
- package/dist/stage-emitter.js +30 -0
- package/dist/stdio-supervisor.d.ts +61 -0
- package/dist/stdio-supervisor.js +326 -9
- package/dist/tool-contract-manifest.d.ts +1 -1
- package/dist/tool-contract-manifest.js +23 -6
- package/dist/tool-guidance.d.ts +82 -0
- package/dist/tool-guidance.js +734 -0
- package/dist/tool-schema-registry.d.ts +16 -0
- package/dist/tool-schema-registry.js +37 -0
- package/dist/tool-schemas.d.ts +3518 -0
- package/dist/tool-schemas.js +813 -0
- package/dist/types.d.ts +36 -0
- package/dist/version-service.js +7 -6
- package/dist/workspace-context-cache.d.ts +32 -0
- package/dist/workspace-context-cache.js +66 -0
- package/dist/workspace-mapping-service.d.ts +16 -0
- package/dist/workspace-mapping-service.js +173 -1
- package/docs/README-ja.md +416 -0
- package/docs/examples.md +483 -0
- package/docs/tool-reference.md +462 -0
- package/package.json +17 -4
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
# @adhisang/minecraft-modding-mcp
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@adhisang/minecraft-modding-mcp)
|
|
4
|
+
[](../LICENSE)
|
|
5
|
+
[](https://nodejs.org/)
|
|
6
|
+
[](https://github.com/adhi-jp/minecraft-modding-mcp/actions/workflows/ci.yml)
|
|
7
|
+
|
|
8
|
+
**[English](../README.md)** | 日本語
|
|
9
|
+
|
|
10
|
+
> **注記**: このプロジェクトはすべてバイブコーディング(AI 支援開発、正式仕様書なし)で作成されています。
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
`@adhisang/minecraft-modding-mcp` は、AI 支援の Minecraft Modding ワークフロー向け MCP サーバーです。エージェントが Minecraft ソースを調査し、マッピングを解決し、バージョン差分を比較し、Mod JAR を解析し、Mixin / Access Widener / Access Transformer ファイルを検証し、NBT やレジストリデータを扱う場面で使えます。
|
|
15
|
+
|
|
16
|
+
stdio で動作し、Claude Desktop、Claude Code、VS Code、Codex CLI、Gemini CLI などの MCP 対応クライアントから利用できます。
|
|
17
|
+
|
|
18
|
+
**37 ツール**(6 エントリー + 31 エキスパート) | **7 リソース** | **4 マッピング名前空間** | **SQLite ベースのキャッシュ**
|
|
19
|
+
|
|
20
|
+
## 特長
|
|
21
|
+
|
|
22
|
+
- **ソース探索**: デコンパイル済み Minecraft ソースを、行単位の文脈付きで閲覧・一覧・検索
|
|
23
|
+
- **マッピング対応のシンボル操作**: クラス、フィールド、メソッド名を `obfuscated`、`mojang`、`intermediary`、`yarn` の間で変換
|
|
24
|
+
- **バージョン比較**: Minecraft バージョン間のクラスシグネチャ、レジストリ項目、移行向け概要を比較
|
|
25
|
+
- **Mod JAR 解析**: Fabric、Forge、NeoForge のメタデータ、エントリポイント、Mixin 設定、依存関係、ソース、リマップのプレビューを確認
|
|
26
|
+
- **プロジェクト検証**: Mixin ソース、`.accesswidener` ファイル、Forge / NeoForge の Access Transformer ファイルを対象バージョンに対して検証
|
|
27
|
+
- **NBT、レジストリ、キャッシュ、診断**: NBT ペイロードのパッチ適用、生成済みレジストリデータの確認、キャッシュや実行時状態の管理
|
|
28
|
+
- **MCP リソース**: バージョン、クラスソース、アーティファクトメタデータ、マッピングを URI ベースのリソースとして公開
|
|
29
|
+
|
|
30
|
+
## クイックスタート
|
|
31
|
+
|
|
32
|
+
### パッケージ利用者向け
|
|
33
|
+
|
|
34
|
+
要件:
|
|
35
|
+
|
|
36
|
+
- Node.js 22+
|
|
37
|
+
- Java は `remap-mod-jar` と、Vineflower または tiny-remapper を必要とするデコンパイル / リマップ処理でのみ必要です
|
|
38
|
+
|
|
39
|
+
ローカルでサーバーを起動:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npx -y @adhisang/minecraft-modding-mcp
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
各 MCP クライアント設定でも同じコマンドを使います。環境によって自動 JAR ダウンロードがブロックされる場合は、その設定内で `MCP_VINEFLOWER_JAR_PATH` と `MCP_TINY_REMAPPER_JAR_PATH` を指定してください。
|
|
46
|
+
|
|
47
|
+
### クライアント設定
|
|
48
|
+
|
|
49
|
+
CLI クライアントでは、パッケージ起動コマンドをそのまま登録できます。
|
|
50
|
+
|
|
51
|
+
Claude Code:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
claude mcp add minecraft-modding -- npx -y @adhisang/minecraft-modding-mcp
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
OpenAI Codex CLI:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
codex mcp add minecraft-modding -- npx -y @adhisang/minecraft-modding-mcp
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
登録後に `claude mcp list` または `codex mcp list` を実行し、サーバーが利用可能になっていることを確認します。
|
|
64
|
+
|
|
65
|
+
stdio トランスポートは、改行区切り形式と `Content-Length` フレーミングの両方を自動判別します。そのため、Codex と標準的な MCP クライアントで同じサーバー起動コマンドを利用できます。
|
|
66
|
+
|
|
67
|
+
#### Claude Desktop
|
|
68
|
+
|
|
69
|
+
`claude_desktop_config.json` に次を追加します:
|
|
70
|
+
|
|
71
|
+
```json
|
|
72
|
+
{
|
|
73
|
+
"mcpServers": {
|
|
74
|
+
"minecraft-modding": {
|
|
75
|
+
"command": "npx",
|
|
76
|
+
"args": ["-y", "@adhisang/minecraft-modding-mcp"]
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
#### VS Code
|
|
83
|
+
|
|
84
|
+
ワークスペースの `.vscode/mcp.json` に次を追加します:
|
|
85
|
+
|
|
86
|
+
```json
|
|
87
|
+
{
|
|
88
|
+
"servers": {
|
|
89
|
+
"minecraft-modding": {
|
|
90
|
+
"command": "npx",
|
|
91
|
+
"args": ["-y", "@adhisang/minecraft-modding-mcp"]
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
#### Gemini CLI
|
|
98
|
+
|
|
99
|
+
`~/.gemini/settings.json` に次を追加します:
|
|
100
|
+
|
|
101
|
+
```json
|
|
102
|
+
{
|
|
103
|
+
"mcpServers": {
|
|
104
|
+
"minecraft-modding": {
|
|
105
|
+
"command": "npx",
|
|
106
|
+
"args": ["-y", "@adhisang/minecraft-modding-mcp"]
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
その後、以下を実行します:
|
|
113
|
+
|
|
114
|
+
```text
|
|
115
|
+
/mcp list
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
#### カスタム環境
|
|
119
|
+
|
|
120
|
+
環境変数を渡してデフォルト値を上書きできます:
|
|
121
|
+
|
|
122
|
+
```json
|
|
123
|
+
{
|
|
124
|
+
"mcpServers": {
|
|
125
|
+
"minecraft-modding": {
|
|
126
|
+
"command": "npx",
|
|
127
|
+
"args": ["-y", "@adhisang/minecraft-modding-mcp"],
|
|
128
|
+
"env": {
|
|
129
|
+
"MCP_CACHE_DIR": "/path/to/custom/cache",
|
|
130
|
+
"MCP_MAPPING_SOURCE_PRIORITY": "maven-first"
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## まずここから
|
|
138
|
+
|
|
139
|
+
以下の 6 つのトップレベルワークフローツールは、よく使う作業をカバーし、要約優先の結果を返します。エージェントや MCP クライアントの既定の入口として使ってください。
|
|
140
|
+
|
|
141
|
+
すべて `result.summary` を先に返し、次の一手が明確な場合は `summary.nextActions` も含めます。表でツールを選び、下の例と英語リファレンスで正確なペイロードを確認してください。
|
|
142
|
+
|
|
143
|
+
| ツール | 主な用途 |
|
|
144
|
+
| --- | --- |
|
|
145
|
+
| `inspect-minecraft` | バージョン、アーティファクト、クラス、ファイル、ソース検索 |
|
|
146
|
+
| `analyze-symbol` | シンボル存在確認、マッピング変換、ライフサイクル追跡、ワークスペースシンボル解決 |
|
|
147
|
+
| `compare-minecraft` | バージョン差分、クラス差分、レジストリ差分、移行向け概要 |
|
|
148
|
+
| `analyze-mod` | Mod メタデータ、デコンパイル / 検索フロー、クラスソース、安全なリマップのプレビュー / 実行 |
|
|
149
|
+
| `validate-project` | ワークスペース要約と、Mixin / Access Widener / Access Transformer の直接検証 |
|
|
150
|
+
| `manage-cache` | キャッシュ一覧、検証、プレビュー / 実行によるクリーンアップワークフロー |
|
|
151
|
+
|
|
152
|
+
### ワークフローノート
|
|
153
|
+
|
|
154
|
+
ここでは、オンボーディング中によく迷う判断だけを扱います。完全な注意点一覧、正確な契約、移行メモ、環境変数は [tool-reference.md](tool-reference.md) を参照してください。
|
|
155
|
+
|
|
156
|
+
- `search-class-source` は既定で `queryMode="auto"` を使い、`foo.bar`、`foo_bar`、`foo$bar` のような区切り文字付きクエリもインデックス経路のまま扱います。明示的な全文部分文字列スキャンが必要な場合は `queryMode="literal"` を使ってください。
|
|
157
|
+
- アーティファクトが不明な場合は、`inspect-minecraft` で `subject.kind="workspace"` を使う方が安全です。アーティファクト文脈だけが不足しているときは、再試行しやすい `suggestedCall` が元の `task` を維持したまま返ります。
|
|
158
|
+
- `trace-symbol-lifecycle` の `symbol` には `Class.method` を指定します。厳密なオーバーロード指定は別フィールドの `descriptor` を使ってください。
|
|
159
|
+
- ワークスペースのソースカバレッジが部分的な場合でも、バニラクラスを確認できます。`inspect-minecraft task="list-files"` は、その場合に部分的な結果とフォローアップガイダンスを返します。
|
|
160
|
+
- `analyze-mod` と `validate-project` は、オブジェクト形式の `subject` と正規の `include` グループを要求します。古い文字列形式の `subject` やドメイン名形式の `include` には `ERR_INVALID_INPUT` と、再試行しやすい `suggestedCall` を返します。
|
|
161
|
+
- `validate-mixin` と `validate-project` は、`obfuscated` / `mojang` 検証では `mapping-health` を軽量に保ちます。`intermediary` / `yarn` 名前空間を要求しない限り、完全な Tiny マッピンググラフは読み込みません。
|
|
162
|
+
- `validate-project task="project-summary"` の `tasks["minecraft.artifact.resolved"]` は軽量なアーティファクト probe です。probe 状態を返すためだけに Minecraft のデコンパイルやソースインデックス再構築は行いません。追加の `tasks` フィールドを省きたい場合は `VALIDATE_PROJECT_TASKS_OFF=1` を使います。
|
|
163
|
+
|
|
164
|
+
### あるバージョンの Minecraft ソースを確認する
|
|
165
|
+
|
|
166
|
+
```json
|
|
167
|
+
{
|
|
168
|
+
"tool": "inspect-minecraft",
|
|
169
|
+
"arguments": {
|
|
170
|
+
"task": "class-source",
|
|
171
|
+
"subject": {
|
|
172
|
+
"kind": "class",
|
|
173
|
+
"className": "net.minecraft.server.Main",
|
|
174
|
+
"artifact": {
|
|
175
|
+
"type": "resolve-target",
|
|
176
|
+
"target": {
|
|
177
|
+
"kind": "version",
|
|
178
|
+
"value": "1.21.10"
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### シンボルのマッピングまたは存在確認を行う
|
|
187
|
+
|
|
188
|
+
```json
|
|
189
|
+
{
|
|
190
|
+
"tool": "analyze-symbol",
|
|
191
|
+
"arguments": {
|
|
192
|
+
"task": "map",
|
|
193
|
+
"subject": {
|
|
194
|
+
"kind": "method",
|
|
195
|
+
"owner": "net.minecraft.server.Main",
|
|
196
|
+
"name": "tickServer"
|
|
197
|
+
},
|
|
198
|
+
"version": "1.21.10",
|
|
199
|
+
"sourceMapping": "mojang",
|
|
200
|
+
"targetMapping": "intermediary",
|
|
201
|
+
"signatureMode": "name-only"
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Mod JAR を要約する
|
|
207
|
+
|
|
208
|
+
```json
|
|
209
|
+
{
|
|
210
|
+
"tool": "analyze-mod",
|
|
211
|
+
"arguments": {
|
|
212
|
+
"task": "summary",
|
|
213
|
+
"subject": {
|
|
214
|
+
"kind": "jar",
|
|
215
|
+
"jarPath": "/path/to/mymod-1.0.0.jar"
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### ワークスペースを検証する
|
|
222
|
+
|
|
223
|
+
```json
|
|
224
|
+
{
|
|
225
|
+
"tool": "validate-project",
|
|
226
|
+
"arguments": {
|
|
227
|
+
"task": "project-summary",
|
|
228
|
+
"subject": {
|
|
229
|
+
"kind": "workspace",
|
|
230
|
+
"projectPath": "/workspace/modid",
|
|
231
|
+
"discover": ["mixins", "access-wideners", "access-transformers"]
|
|
232
|
+
},
|
|
233
|
+
"preferProjectVersion": true,
|
|
234
|
+
"preferProjectMapping": true
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
ワークスペース要約は既定では mixin と access widener を検出します。Access Transformer も含めたい場合は `subject.discover` に `"access-transformers"` を追加してください。
|
|
240
|
+
|
|
241
|
+
## ドキュメント
|
|
242
|
+
|
|
243
|
+
この日本語版はオンボーディング向けの概要です。詳細な例と完全なリファレンスは現時点では英語ドキュメントを参照してください。
|
|
244
|
+
|
|
245
|
+
- [詳細なリクエスト例(英語)](examples.md)
|
|
246
|
+
- [ツール / 設定リファレンス(英語)](tool-reference.md)
|
|
247
|
+
- [英語版 README](../README.md)
|
|
248
|
+
|
|
249
|
+
## ツール一覧
|
|
250
|
+
|
|
251
|
+
明確に狙っている専用操作がない限り、まずは以下のトップレベルワークフローツールから始めてください。より低レベルなツールも、絞り込んだ追加調査や自動化向けに引き続き利用できます。
|
|
252
|
+
|
|
253
|
+
### トップレベルワークフローツール
|
|
254
|
+
|
|
255
|
+
<!-- BEGIN GENERATED TOOL TABLE: v3-entry-tools -->
|
|
256
|
+
| ツール | 役割 |
|
|
257
|
+
| --- | --- |
|
|
258
|
+
| `inspect-minecraft` | バージョン、アーティファクト、クラス、ファイル、ソース本文、ワークスペース文脈の調査フローをまとめて扱う |
|
|
259
|
+
| `analyze-symbol` | シンボル存在確認、名前空間変換、ライフサイクル追跡、ワークスペースシンボル解決、API 概要をまとめて扱う |
|
|
260
|
+
| `compare-minecraft` | バージョン差分、クラス差分、レジストリ差分、移行向け概要を比較する |
|
|
261
|
+
| `analyze-mod` | Mod メタデータの要約、Mod コードのデコンパイル / 検索、クラスソース確認、リマップのプレビュー / 実行を扱う |
|
|
262
|
+
| `validate-project` | ワークスペース要約と、Mixin / Access Widener / Access Transformer の直接検証を行う |
|
|
263
|
+
| `manage-cache` | キャッシュの一覧、検証、クリーンアップ / 再構築のプレビュー / 実行を行う |
|
|
264
|
+
<!-- END GENERATED TOOL TABLE: v3-entry-tools -->
|
|
265
|
+
|
|
266
|
+
### ソース探索
|
|
267
|
+
|
|
268
|
+
Minecraft バージョンの参照、ソースアーティファクトの解決、デコンパイル済みソースコードの読み取り / 検索を行うツール群です。
|
|
269
|
+
|
|
270
|
+
<!-- BEGIN GENERATED TOOL TABLE: source-exploration -->
|
|
271
|
+
| ツール | 役割 |
|
|
272
|
+
| --- | --- |
|
|
273
|
+
| `list-versions` | Mojang メタデータとローカルキャッシュから利用可能な Minecraft バージョンを一覧表示する |
|
|
274
|
+
| `resolve-artifact` | バージョン、JAR パス、Maven 座標からソースアーティファクトを解決する |
|
|
275
|
+
| `find-class` | アーティファクト内で簡易名または完全修飾クラス名を探す |
|
|
276
|
+
| `get-class-source` | アーティファクトからクラスソースを読み取り、必要に応じて背後のアーティファクトを解決する |
|
|
277
|
+
| `get-class-members` | バイトコードからコンストラクタ、フィールド、メソッドを一覧化する |
|
|
278
|
+
| `search-class-source` | インデックス化されたクラスソースをシンボル、テキスト、パスで検索する |
|
|
279
|
+
| `get-artifact-file` | バイト上限付きでソースファイル全体を読み取る |
|
|
280
|
+
| `list-artifact-files` | インデックス化されたソースファイルパスをカーソルページネーション付きで一覧表示する |
|
|
281
|
+
| `index-artifact` | 既存アーティファクトのインデックスメタデータを再構築する |
|
|
282
|
+
<!-- END GENERATED TOOL TABLE: source-exploration -->
|
|
283
|
+
|
|
284
|
+
### バージョン比較とシンボル追跡
|
|
285
|
+
|
|
286
|
+
Minecraft バージョン間でのクラス / レジストリ変更比較と、時系列でのシンボル存在追跡を行うツール群です。
|
|
287
|
+
|
|
288
|
+
<!-- BEGIN GENERATED TOOL TABLE: version-comparison-symbol-tracking -->
|
|
289
|
+
| ツール | 役割 |
|
|
290
|
+
| --- | --- |
|
|
291
|
+
| `trace-symbol-lifecycle` | `Class.method` が Minecraft のどのバージョンで存在するかを追跡する |
|
|
292
|
+
| `diff-class-signatures` | 2 つのバージョン間で 1 つのクラスを比較し、メンバー差分を返す |
|
|
293
|
+
| `compare-versions` | 2 つのバージョン間でクラスとレジストリの変更を比較する |
|
|
294
|
+
<!-- END GENERATED TOOL TABLE: version-comparison-symbol-tracking -->
|
|
295
|
+
|
|
296
|
+
### マッピングとシンボル
|
|
297
|
+
|
|
298
|
+
名前空間間でのシンボル名変換と、シンボル存在確認を行うツール群です。
|
|
299
|
+
|
|
300
|
+
<!-- BEGIN GENERATED TOOL TABLE: mapping-symbols -->
|
|
301
|
+
| ツール | 役割 |
|
|
302
|
+
| --- | --- |
|
|
303
|
+
| `find-mapping` | クラス、フィールド、メソッドのシンボルに対するマッピング候補を調べる |
|
|
304
|
+
| `resolve-method-mapping-exact` | owner、name、descriptor の厳密一致で 1 つのメソッドマッピングを解決する |
|
|
305
|
+
| `get-class-api-matrix` | 1 つのクラス API を `obfuscated`、`mojang`、`intermediary`、`yarn` で見比べる |
|
|
306
|
+
| `resolve-workspace-symbol` | Gradle ワークスペースからコンパイル時に見えるシンボル名を解決する |
|
|
307
|
+
| `check-symbol-exists` | 名前空間内でクラス、フィールド、メソッドが存在するかを確認する |
|
|
308
|
+
<!-- END GENERATED TOOL TABLE: mapping-symbols -->
|
|
309
|
+
|
|
310
|
+
複数の参照系ツールは、短いレスポンスを返すための `compact` 出力に対応しています。既定値とツールごとのフィールド一覧は [tool-reference.md](tool-reference.md) を参照してください。
|
|
311
|
+
|
|
312
|
+
### NBT ユーティリティ
|
|
313
|
+
|
|
314
|
+
型付き JSON 表現を使って、Java Edition の NBT バイナリデータをデコード、パッチ、エンコードするツール群です。
|
|
315
|
+
|
|
316
|
+
<!-- BEGIN GENERATED TOOL TABLE: nbt-utilities -->
|
|
317
|
+
| ツール | 役割 |
|
|
318
|
+
| --- | --- |
|
|
319
|
+
| `nbt-to-json` | Java Edition の NBT バイナリを型付き JSON にデコードする |
|
|
320
|
+
| `nbt-apply-json-patch` | 型付き NBT JSON に RFC 6902 パッチを適用する |
|
|
321
|
+
| `json-to-nbt` | 型付き JSON を Java Edition の NBT バイナリへ再エンコードする |
|
|
322
|
+
<!-- END GENERATED TOOL TABLE: nbt-utilities -->
|
|
323
|
+
|
|
324
|
+
### Mod 解析
|
|
325
|
+
|
|
326
|
+
Mod JAR からのメタデータ抽出、Mod ソースのデコンパイル、Mod コード検索、Mod 名前空間のリマッピングを行うツール群です。
|
|
327
|
+
|
|
328
|
+
<!-- BEGIN GENERATED TOOL TABLE: mod-analysis -->
|
|
329
|
+
| ツール | 役割 |
|
|
330
|
+
| --- | --- |
|
|
331
|
+
| `analyze-mod-jar` | JAR から Mod メタデータ、依存関係、エントリポイント、Mixin 設定情報、同梱 Access Transformer パスを抽出する |
|
|
332
|
+
| `decompile-mod-jar` | Mod JAR をデコンパイルし、必要に応じて 1 つのクラスソースを返す |
|
|
333
|
+
| `get-mod-class-source` | デコンパイル済み Mod キャッシュから 1 つのクラスソースを読み取る |
|
|
334
|
+
| `search-mod-source` | デコンパイル済み Mod ソースを class、method、field、content で検索する |
|
|
335
|
+
| `remap-mod-jar` | Fabric または Quilt の Mod JAR を `yarn` または `mojang` 名へリマップする |
|
|
336
|
+
<!-- END GENERATED TOOL TABLE: mod-analysis -->
|
|
337
|
+
|
|
338
|
+
### バリデーション
|
|
339
|
+
|
|
340
|
+
Mixin ソース、Access Widener ファイル、Forge / NeoForge の Access Transformer ファイルを対象 Minecraft バージョンに対して検証するツール群です。プロジェクトパスがある場合は、ワークスペースやローダーの実行時文脈を使った検証もできます。
|
|
341
|
+
|
|
342
|
+
<!-- BEGIN GENERATED TOOL TABLE: validation -->
|
|
343
|
+
| ツール | 役割 |
|
|
344
|
+
| --- | --- |
|
|
345
|
+
| `validate-mixin` | 対象 Minecraft バージョンに対して Mixin ソースを検証する (段階別予算で一部作業を後回しにした場合は `validationStatus: "partial"` と `targetOutcomes` を含む) |
|
|
346
|
+
| `validate-access-widener` | 対象 Minecraft バージョンに対して Access Widener の内容を検証し、必要に応じて Loom ランタイムアーティファクトも使う |
|
|
347
|
+
| `validate-access-transformer` | 対象 Minecraft バージョンに対して Access Transformer の内容を検証し、必要に応じて Forge / NeoForge ランタイムアーティファクトも使う |
|
|
348
|
+
| `verify-mixin-target` | owner / member の存在確認と `@Shadow` / `@Accessor` / `@Invoker` 助言を 1 回の確認で返す |
|
|
349
|
+
<!-- END GENERATED TOOL TABLE: validation -->
|
|
350
|
+
|
|
351
|
+
### レジストリと診断
|
|
352
|
+
|
|
353
|
+
生成済みレジストリデータの取得と、サーバーのランタイム状態の確認を行うツール群です。
|
|
354
|
+
|
|
355
|
+
<!-- BEGIN GENERATED TOOL TABLE: registry-diagnostics -->
|
|
356
|
+
| ツール | 役割 |
|
|
357
|
+
| --- | --- |
|
|
358
|
+
| `get-registry-data` | 生成済みレジストリスナップショットを読み取り、必要に応じてエントリデータも含める |
|
|
359
|
+
| `get-runtime-metrics` | ランタイムメトリクスとレイテンシスナップショットを確認する |
|
|
360
|
+
<!-- END GENERATED TOOL TABLE: registry-diagnostics -->
|
|
361
|
+
|
|
362
|
+
### バッチ参照
|
|
363
|
+
|
|
364
|
+
固定の短いリストに対して、1 つの解決済みアーティファクトまたは Minecraft バージョンを共有するツール群です。項目ごとの状態と集計用の `summary` を返します。失敗時の扱いとリトライマッピングは [Batch lookup contract](tool-reference.md#batch-lookup-contract) を参照してください。
|
|
365
|
+
|
|
366
|
+
<!-- BEGIN GENERATED TOOL TABLE: batch-lookup -->
|
|
367
|
+
| ツール | 役割 |
|
|
368
|
+
| --- | --- |
|
|
369
|
+
| `batch-class-source` | 共有解決した 1 つのアーティファクトに対して最大 50 件のクラスソースを読み取る |
|
|
370
|
+
| `batch-class-members` | 共有解決した 1 つのアーティファクトに対して最大 50 件のクラスメンバーを列挙する |
|
|
371
|
+
| `batch-symbol-exists` | 共有解決した 1 つの Minecraft バージョンアーティファクトに対して最大 50 件のシンボル存在確認を行う (ワークスペースまたはバージョン対象のみ) |
|
|
372
|
+
| `batch-mappings` | 1 つの Minecraft バージョンで最大 50 件のシンボルを名前空間横断で変換する (共有アーティファクトなし) |
|
|
373
|
+
<!-- END GENERATED TOOL TABLE: batch-lookup -->
|
|
374
|
+
|
|
375
|
+
詳細なパラメータ制約、移行メモ、リソースの挙動、環境変数の完全な一覧は [tool-reference.md](tool-reference.md) を参照してください。
|
|
376
|
+
|
|
377
|
+
## 開発
|
|
378
|
+
|
|
379
|
+
リポジトリ要件:
|
|
380
|
+
|
|
381
|
+
- Node.js 22+
|
|
382
|
+
- `pnpm`
|
|
383
|
+
- ローカルでリマップやデコンパイルを実行する場合は Java
|
|
384
|
+
|
|
385
|
+
リポジトリをセットアップして起動:
|
|
386
|
+
|
|
387
|
+
```bash
|
|
388
|
+
pnpm install
|
|
389
|
+
pnpm dev
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
配布形態をビルド:
|
|
393
|
+
|
|
394
|
+
```bash
|
|
395
|
+
pnpm build
|
|
396
|
+
pnpm start
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
常に実行:
|
|
400
|
+
|
|
401
|
+
```bash
|
|
402
|
+
pnpm check
|
|
403
|
+
pnpm test
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
必要に応じて実行:
|
|
407
|
+
|
|
408
|
+
- `pnpm test:manual:stdio-smoke`: MCP トランスポート、登録、手動ワークフローの変更時
|
|
409
|
+
- `pnpm test:manual:package-smoke`: パッケージインストールや配布形態の検証時
|
|
410
|
+
- `pnpm test:perf`: 検索、インデックス、性能に影響する変更時
|
|
411
|
+
- `pnpm test:coverage` または `pnpm test:coverage:lcov`: カバレッジ確認時(`lines=80`, `branches=70`, `functions=80`)
|
|
412
|
+
- `pnpm validate`: ローカルの完全検証スイートを実行する場合
|
|
413
|
+
|
|
414
|
+
## ライセンス
|
|
415
|
+
|
|
416
|
+
[MIT](../LICENSE)
|