内容
# modlens-mcp
MCP 服务器和命令行工具,用于浏览、反编译和分析 Minecraft 模组 JAR 文件。
存储模组元数据、类索引、mixin 目标、AT/AW 条目和反编译的源代码在本地数据库中 - **默认嵌入式 SQLite** (零配置),或 PostgreSQL/PGlite(如果需要)。通过 AI(MCP)或命令行(CLI)查询所有内容。
## 安装
### 选项 A - npx(推荐,无需克隆)
```bash
npx @creeperhost/modlens-mcp
```
首次运行时,它将自动在 `~/.modlens/data/modlens.db` 处创建一个嵌入式 SQLite 数据库(无需 Docker,无需外部服务)。设置存储在 `~/.modlens/.env` 中,并在更新后保留。
将以下内容添加到您的 MCP 客户端配置中以开始使用:
```json
{
"mcpServers": {
"modlens": { "command": "npx", "args": ["-y", "@creeperhost/modlens-mcp"] }
}
}
```
**可选 - 切换后端或启用语义搜索:**
```bash
npx @creeperhost/modlens-mcp --setup
```
设置向导允许您迁移到 PostgreSQL/PGlite,配置 Ollama 进行语义搜索,并自动编写 MCP 客户端配置。您可以随时重新运行它以重新配置。
**更新到最新版本:**
```bash
npx @creeperhost/modlens-mcp@latest --setup
```
这将新版本固定在您的 MCP 客户端配置中。您的数据库和 `~/.modlens/` 中的设置保持不变。
---
### 选项 B - git 克隆(适用于贡献者/高级用户)
```bash
git clone https://github.com/CreeperHost/modlens-mcp
cd modlens-mcp
npm install
npm run setup # 交互式设置向导
npm run start # 启动服务器
```
---
## 先决条件
| 需求 | 说明 |
|-------------|-------|
| **Node.js 22+** | MCP 服务器运行时 |
| **Docker** | *可选* - 仅适用于 PostgreSQL 后端(`docker compose`)。默认嵌入式 SQLite 不需要。 |
| **JDK 21+** | 反编译(Vineflower)和字节码分析(`javap`)所需。推荐使用 Eclipse Adoptium - 在 `C:/Program Files/Eclipse Adoptium`、`C:/Program Files/Java`、`C:/Program Files/Microsoft` 或通过 `JAVA_HOME` 自动发现 |
| **Vineflower** | 反编译器 JAR - **自动从 Maven Central 下载**,首次使用时 |
| **mcsrc-indexer.jar** | JAR 字节码索引器 - **自动从 modlens-mcp GitHub 发布下载**,首次使用时 |
**可选环境变量:**
| 变量 | 用途 |
|----------|---------|
| `CURSEFORGE_API_KEY` | CurseForge 平台同步(`sync_curseforge` 操作) |
| `MODRINTH_TOKEN` | Modrinth API - 增加批量操作的速率限制 |
| `JAVA_HOME` | 重写 Java 发现(如果未设置,则回退到 PATH) |
---
## Docker - PostgreSQL 设置
> 仅当您选择 **PostgreSQL** 后端时需要。默认嵌入式 SQLite 后端不需要这些。
附带的 `docker-compose.yml` 在端口 **5433** 上启动一个 PostgreSQL 16 容器。
```bash
# 启动(分离)
docker compose up -d
# 检查是否健康
docker compose ps
# 停止(数据保存在命名卷中)
docker compose down
# 停止并清除所有数据
docker compose down -v
```
> **⚠ 开发凭证警告:** `docker-compose.yml` 使用 `modlens:modlens` 作为用户名/密码。对于仅绑定到 `localhost:5433` 的本地开发工具,这没问题。如果您将端口暴露在外部或在共享机器上运行,请更改 `POSTGRES_USER`、`POSTGRES_PASSWORD` 和 `POSTGRES_DB` 在 `docker-compose.yml` 中 **和** 更新您的 `.env` 文件。
---
## 设置
```bash
git clone https://github.com/CreeperHost/modlens-mcp
cd modlens-mcp
npm install
npm run build
# 交互式设置向导 - 处理 Docker、Ollama、模式、MCP 配置:
npm run setup
```
向导将询问有关语义搜索(Ollama)、启动容器、应用模式、选择性地播种文档/引导程序以及编写 MCP 客户端配置。您可以随时重新运行它以重新配置。
**手动设置(如果您更喜欢):**
```bash
# 1. 启动 PostgreSQL
docker compose up -d
# 2. 创建 .env
echo DATABASE_URL=postgresql://modlens:modlens@localhost:5433/modlens > .env
# 可选 - 添加 CurseForge 密钥用于 sync_curseforge:
# echo CURSEFORGE_API_KEY=<your key> >> .env
# 可选 - 添加 Modrinth 令牌以获得更高的速率限制:
# echo MODRINTH_TOKEN=<your token> >> .env
# 3. 将 Prisma 模式应用于数据库
npx prisma db push
# 4. 构建
npm run build
```
> **注意:** Vineflower 和 mcsrc-indexer.jar 都会自动下载到 `~/.modlens-cache/tools/`,无需手动步骤。
---
## 语义搜索(可选)
语义(向量)搜索允许您通过含义而不是关键词查找文档、引导程序和 MC 源 - 例如 *"如何将数据附加到块?"* 而不是确切的类名。
**要求:** [Ollama](https://ollama.com) 已安装并在本地运行。
```bash
# 1. 安装 Ollama 并拉取嵌入模型
ollama pull nomic-embed-text
# 2. 在 Postgres 容器中启用 pgvector 并添加嵌入列
npm run db:vector
# 3. 将 Ollama 配置添加到 .env(可选 - http://localhost:11434 是默认值)
echo OLLAMA_URL=http://localhost:11434 >> .env
# 4. 嵌入所有现有的文档和引导程序
node dist/cli.js backfill-embeddings
# 嵌入特定的 MC 源版本(大型 - 需要一段时间)
node dist/cli.js backfill-embeddings --type source --version 26.1.2
```
在此之后,`docs` 和 `primers` MCP 工具将具有 `semantic_search` 操作,`mc_source` 工具将具有 `search_semantic` 和 `index_semantic`。语义搜索是 **按需** 的 - 如果 `OLLAMA_URL` 无法访问,工具将自动回退到关键词搜索。
> **注意:** `npm run db:vector` 脚本可以安全地重新运行。它使用 `IF NOT EXISTS` 保护创建 `pgvector` 扩展和 `embedding` 列。
---
## MCP 配置
服务器使用 stdio 传输 - 只要 Docker 正在运行并且设置了 `DATABASE_URL`,它就可以与任何 MCP 客户端(VS Code Copilot、Claude Desktop、Claude CLI、Cursor 等)一起使用。
### VS Code Copilot (`mcp.json`)
```json
{
"servers": {
"modlens": {
"type": "stdio",
"command": "node",
"args": ["/path/to/modlens-mcp/dist/server.js"],
"env": {
"DATABASE_URL": "postgresql://modlens:modlens@localhost:5433/modlens"
}
}
}
}
```
### Claude Desktop (`claude_desktop_config.json`)
位置:`%APPDATA%\Claude\claude_desktop_config.json`(Windows)或 `~/Library/Application Support/Claude/claude_desktop_config.json`(macOS)
```json
{
"mcpServers": {
"modlens": {
"command": "node",
"args": ["/path/to/modlens-mcp/dist/server.js"],
"env": {
"DATABASE_URL": "postgresql://modlens:modlens@localhost:5433/modlens"
}
}
}
}
```
### Claude CLI
```bash
claude mcp add modlens node /path/to/modlens-mcp/dist/server.js \
--env DATABASE_URL=postgresql://modlens:modlens@localhost:5433/modlens
```
或手动编辑 `~/.claude/mcp.json`(格式与上面 VS Code 相同)。
> **重要:** 将 `/path/to/modlens-mcp` 替换为克隆存储库的实际绝对路径。在 Windows 上使用正斜杠或转义反斜杠,例如 `C:/Users/you/modlens-mcp/dist/server.js`。
---
## 更新
```bash
npm run update
```
这将运行 `git pull`、重新安装依赖项、重建并应用任何新的数据库迁移 - 所有操作都在一个命令中。完成后,**重启您的 MCP 客户端** (重新加载 VS Code 窗口、重启 Claude Desktop 等)以获取新的服务器构建。
> **首次更新(在 `npm run update` 存在之前)?** 手动运行以下步骤:
> ```bash
> git pull && npm install && npm run build && node scripts/post-update.mjs
> ```
> 之后,您将拥有 `npm run update` 可用于所有未来更新。
---
### 💡 Token 开销 - 禁用您不需要的工具
ModLens 提供了 **22 个工具**。每个工具的名称、描述和参数模式都会在 **每次请求** 时发送给模型,无论您是否使用该工具。这会增加每回合约 3,400 个令牌的固定开销。
**建议:** 禁用您不经常使用的任何工具组。常见配置文件:
| 如果您主要... | 保留 | 禁用 |
|---|---|---|
| 浏览 vanilla MC 源代码 | `mc_source`, `mc_data`, `mc_files`, `mc_registry`, `mappings` | `platform`, `mixin_scan`, `gradle`, `kubejs`, `pack_tools` |
| 分析模组包 | `mod`, `mod_mixins`, `mixin_scan`, `reports`, `pack_tools` | `mc_files`, `mappings`, `docs`, `primers`, `gradle` |
| 模组开发 | `mod`, `mod_bytecode`, `mc_source`, `mappings`, `docs`, `primers` | `pack_tools`, `kubejs`, `platform`, `mixin_scan` |
**VS Code:** 在 `mcp.json` 中,您可以使用服务器条目下的 `disabled` 列表禁用单个工具:
```json
{
"servers": {
"modlens": {
"type": "stdio",
"command": "node",
"args": ["/path/to/modlens-mcp/dist/server.js"],
"env": { "DATABASE_URL": "postgresql://modlens:modlens@localhost:5433/modlens" },
"disabled": ["kubejs", "platform", "gradle", "docs", "primers"]
}
}
}
```
**Claude Desktop / CLI:** 在 MCP 设置 UI 中关闭工具,或为不同的工作流程维护单独的配置文件。
---
## CLI
所有 MCP 工具均可从命令行访问:
```
node dist/cli.js <command> [args] [--flags]
```
运行不带参数(或 `--help`)可打印完整的命令列表。每个 MCP 工具操作都有一个 CLI 等价操作。
### 快速参考
**数据库和目录**
| 命令 | 描述 |
|---------|-------------|
| `stats` | 数据库统计 |
| `list` | 列出所有模组 |
| `get <modId>` | 获取模组元数据 |
| `search <query>` | 搜索模组 |
| `deps <modId>` | 列出依赖项 |
| `dep-graph` | 完整的依赖图 |
| `version-conflicts` | 重复的模组ID + 未满足的依赖项 |
| `source-urls [query]` | 列出GitHub/GitLab源URL |
**导入**
| 命令 | 描述 |
|---------|-------------|
| `ingest <jarPath>` | 导入一个模组JAR(WSL路径自动转换) |
| `ingest-neoforge <version>` | 下载并导入NeoForge |
| `ingest-fabric-api <version>` | 下载并导入Fabric API |
| `batch-ingest <dir>` | 导入目录中的所有JAR |
| `batch-decompile` | 反编译所有未反编译的模组 |
| `batch-sync` | 从Modrinth/CurseForge批量同步 |
| `reindex` | 为未索引的模组索引类名 |
**反编译和源代码**
| 命令 | 描述 |
|---------|-------------|
| `decompile <dbId>` | 反编译整个模组JAR |
| `decompile-status <dbId>` | 查询反编译进度 |
| `decompile-class <dbId> <class>` | 反编译单个类 |
| `source <dbId> [path]` | 浏览反编译的源代码 |
| `search-source <query>` | 搜索反编译的源代码 |
| `get-paths <dbId>` | 获取JAR和反编译路径 |
| `index-fts <dbId>` | 为BM25搜索索引模组源代码(无需Ollama) |
| `search-indexed <dbId> <query>` | 对模组源代码进行快速BM25全文搜索 |
**字节码分析**
| 命令 | 描述 |
|---------|-------------|
| `search-class <dbId> <query>` | 按名称搜索类 |
| `members <dbId> <class>` | 列出方法和字段 |
| `bytecode <dbId> <class>` | 原始javap字节码 |
| `refs <dbId> <target>` | 查找引用 |
| `inheritance <dbId> <class>` | 继承链 |
| `diff <dbIdA> <dbIdB>` | 比较两个模组版本 |
| `diff-detailed <dbIdA> <dbIdB>` | AST级别的差异,带有破坏性变更标志 |
| `cross-refs <target>` | 指向目标的跨模组引用 |
| `find-implementors <target>` | 实现接口的类 |
| `scan-registrations <dbId>` | 注册对象注册 |
| `annotated-by <annotation>` | 具有给定注释的类 |
| `event-listeners <event>` | 事件监听器注册 |
| `optional-integrations <dbId>` | 软依赖集成 |
| `network-payloads <dbId>` | 网络数据包类型 |
| `config-schema <dbId>` | 配置类模式 |
**Mixin分析**
| 命令 | 描述 |
|---------|-------------|
| `mixin-targets <modId>` | MC类注入此模组 |
| `resolve-mixins <dbId>` | 解析`@Mixin`字节码 → 更新数据库 |
| `mixin-conflicts <targetClass>` | 注入相同类的模组 |
| `at-entries <dbId>` | 访问转换器条目 |
| `aw-entries <dbId>` | 访问扩展器条目 |
| `targets-in-package <pkg>` | 目标类在包中的模组 |
| `at-conflicts` | 跨模组冲突的AT/AW条目 |
| `batch-resolve-mixins` | 解析所有模组的`@Mixin`目标 |
**Mixin扫描(跨模组矩阵)**
| 命令 | 描述 |
|---------|-------------|
| `mixin-scan list` | 列出具有Mixin的模组 |
| `mixin-scan conflict-matrix` | 完整的冲突矩阵 |
| `mixin-scan class-detail <class>` | 所有Mixin目标一个MC类 |
| `mixin-scan hotspots` | 最受关注的MC类 |
| `mixin-scan batch-resolve` | 为所有Mixin模组解析目标 |
**平台**
| 命令 | 描述 |
|---------|-------------|
| `sync-modrinth <dbId>` | 在Modrinth上查找 |
| `sync-curseforge <dbId>` | 在CurseForge上查找 |
| `check-updates <dbId>` | 检查新版本 |
| `download-source <dbId>` | 下载GitHub/GitLab源代码 |
**版本**
| 命令 | 描述 |
|---------|-------------|
| `mc-versions` | 列出Minecraft版本 |
| `neoforge-versions` | 列出NeoForge版本 |
| `fabric-api-versions` | 列出Fabric API版本 |
**Vanilla MC源代码**
| 命令 | 描述 |
|---------|-------------|
| `mc-source search-class <ver> <q>` | 按名称查找Vanilla类 |
| `mc-source get-source <ver> <class>` | 读取反编译的源代码 |
| `mc-source bytecode <ver> <class>` | 原始javap字节码 |
| `mc-source class-members <ver> <c>` | 方法和字段 |
| `mc-source find-refs <ver> <target>` | 引用目标 |
| `mc-source inheritance <ver> <c>` | 继承树 |
| `mc-source diff <verA> <verB>` | 高级类差异 |
| `mc-source diff-detailed <A> <B>` | AST级别的方法/字段差异 |
| `mc-source decompile <ver>` | 反编译MC JAR |
| `mc-source decompile-status <ver>` | 查询反编译进度 |
| `mc-source search-code <ver> <q>` | 对Vanilla源代码进行全文搜索 |
| `mc-source index <ver>` | 为BM25索引Vanilla源代码 |
| `mc-source search-indexed <ver> <q>` | 对Vanilla源代码进行BM25全文搜索 |
| `mc-source search-events <ver>` | 浏览事件类 |
| `mc-source validate-aw <ver> <file>` | 验证`.accesswidener`文件 |
| `mc-source analyze-mixin <ver> <file>` | 分析Mixin源代码文件 |
| `mc-source search-semantic <ver> <q>` | 语义搜索(需要Ollama) |
| `mc-source get-paths <ver>` | 获取磁盘上的jar/decomp/index路径 |
**映射**
| 命令 | 描述 |
|---------|-------------|
| `mappings find <sym> <ver> <src> <tgt>` | 在命名空间之间转换 |
| `mappings remap <in> <out> <ver> <mapping>` | 重新映射JAR |
| `mappings parchment <class> <mcVer>` | Parchment参数文档 |
| `mappings list-parchment <mcVer>` | 可用的Parchment版本 |
| `mappings parchment-summary <mcVer>` | Parchment覆盖率统计 |
**文档和Primer**
| 命令 | 描述 |
|---------|-------------|
| `docs seed` | 种子内置文档 |
| `docs get <query>` | 按标题/类查找 |
| `docs search <query>` | 关键字搜索 |
| `docs list` | 列出所有条目 |
| `docs delete <id>` | 按ID删除 |
| `docs semantic-search <query>` | 语义搜索(需要Ollama) |
| `primers seed` | 种子内置Primer |
| `primers get <id>` | 按ID获取 |
| `primers by-version <from> <to>` | 指定版本范围的指南 |
| `primers search <query>` | 关键字搜索 |
| `primers list` | 列出所有Primer |
| `primers delete <id>` | 按ID删除 |
| `primers semantic-search <query>` | 语义搜索(需要Ollama) |
**MC注册表/数据/文件**
| 命令 | 描述 |
|---------|-------------|
| `mc-registry <action>` | 块、命令、注册表、声音、物品组件、注册表条目、mcmeta版本 |
| `mc-data <action>` | 标签、查找标签、配方、获取配方、生物群落、附魔、语言、模型、结构、粒子、实体属性等 |
| `mc-files <action>` | 获取数据、获取资产、列出文件、差异、图谱、原始、比较、变更日志 |
**模组JAR和模组数据**
| 命令 | 描述 |
|---------|-------------|
| `mod-jar <action> <modId>` | 列出文件、获取文件、语言、声音、图谱、注册表条目、清单、列出配置、获取配置 |
| `mod-data <action> <modId>` | 列出、获取、差异、跟踪项目 - 类型:配方、战利品表、进度、模型、生物群落、数据标签、附魔等 |
**模组标签、Gradle、报告、打包工具**
| 命令 | 描述 |
|---------|-------------|
| `mod-tags <action>` | 索引、索引所有、命名空间、贡献者、扩展、模组列表、查找冲突、搜索 |
| `gradle <action>` | 获取文件、搜索、比较依赖 |
| `report <type>` | Mixin冲突、标签冲突、版本冲突、模组概述、Gradle依赖、打包兼容性、依赖图、两侧性、模组复杂度、打包变更日志 |
| `pack-tools <action>` | 资产冲突、Vanilla覆盖、两侧性、打包两侧性、复杂度、打包变更日志、数据冲突 |
**KubeJS和模组包**
| 命令 | 描述 |
|---------|-------------|
| `kubejs index <dir>` | 索引KubeJS/scripts目录 |
| `kubejs search <dir> <query>` | 搜索索引脚本 |
| `modpacks search <query>` | 搜索modpacks.ch包 |
| `modpacks featured` | 精选包 |
| `modpacks info <packId>` | 包元数据 |
| `modpacks manifest <packId> <verId>` | 包清单 |
| `modpacks list-versions` | 包版本列表 |
| `modpacks list-files` | 包文件列表 |
| `modpacks ftb-mod-info <modId>` | FTB模组信息 |
| `modpacks find-mod` | 跨包查找模组 |
**诊断**
| 命令 | 描述 |
|---------|-------------|
| `crash-log <logPath>` | 分析崩溃日志文件 |
| `missing-deps` | 查找未满足的声明依赖 |
| `compat-check <jarPath>` | 预飞行兼容性检查 |
**语义搜索(需要Ollama)
| 命令 | 描述 |
|---------|-------------|
| `backfill-embeddings` | 嵌入文档 + Primer |
| `backfill-embeddings --type=source --version=<ver>` | 嵌入MC源代码 |
| `backfill-embeddings --type=mod --db-id=<n>` | 嵌入模组源代码 |
---
## MCP工具参考
所有工具操作已合并为**24个分组工具**,以保持在MCP客户端工具数量限制内。每个工具都需要一个必需的`action`参数来选择操作,以及特定于该操作的额外参数。
### 工具索引
| # | 工具 | 操作 | 描述 |
|---|------|---------|-------------|
| 1 | `mod` | 22 | 模组数据库、反编译、源代码、全文/语义搜索 |
| 2 | `mod_bytecode` | 16 | 模组JAR类/字节码分析 |
| 3 | `mod_mixins` | 7 | Mixin目标、AT/AW条目、包扫描 |
| 4 | `platform` | 5 | Modrinth/CurseForge同步 |
| 5 | `mc_versions` | 5 | MC + 加载器版本列表/导入 |
| 6 | `mc_source` | 19 | Vanilla MC源代码、反编译、验证 |
| 7 | `mappings` | 5 | 名称映射 + Parchment |
| 8 | `docs` | 8 | 文档CRUD + 语义搜索 |
| 9 | `primers` | 9 | 版本迁移指南 + 语义搜索 |
| 10 | `mc_registry` | 7 | MC注册表、块、命令、声音 |
| 11 | `mc_data` | 23 | Vanilla数据浏览器(标签、配方、生物群落...) |
| 12 | `mc_files` | 8 | 通过misode/mcmeta的MC文件访问 |
| 13 | `mod_jar` | 9 | 模组JAR文件浏览器、语言、声音、配置 |
| 14 | `mod_data` | list+get × 22类型 | 模组结构化数据(配方、战利品表...) |
| 15 | `mod_tags` | 8 | 跨模组标签索引 + 冲突检测 |
| 16 | `mixin_scan` | 5 | 跨模组Mixin冲突分析 |
| 17 | `gradle` | 3 | Gradle构建文件分析 |
| 18 | `reports` | 10 | 报告类型 |
| 19 | `pack_tools` | 7 | 模组包资产/数据冲突分析 |
| 20 | `kubejs` | 2 | KubeJS脚本索引 + 搜索 |
| 21 | `modpacks_ch` | 12 | modpacks.ch / FTB / CurseForge包浏览 |
| 22 | `analyze_crash_log` | - | 对抗模组类索引的崩溃日志分诊 |
| 23 | `find_missing_deps` | - | 查找缺少的声明依赖 |
| 24 | `check_mod_compat` | - | 候选JAR的预飞行兼容性检查 |
### 1. `mod` — 模组数据库、反编译 & 源代码
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| `ingest` | jarPath, skipSource | 添加JAR到数据库。接受Windows路径(`C:\mods\foo.jar`)和WSL路径(`/mnt/c/mods/foo.jar`) |
| `list` | loader, mcVersion, hasMixins, decompiled, limit | 列出模组列表 |
| `get` | modId | 获取模组元数据 |
| `search` | query, loader, mcVersion, limit | 按名称/描述搜索 |
| `stats` | - | 数据库统计 |
| `dependencies` | modId, recursive | 依赖列表 |
| `dep_graph` | mcVersion | 完整的requires/requiredBy图 |
| `version_conflicts` | - | 检测重复的modId + 未满足的依赖 |
| `source_urls` | query | GitHub/GitLab URL |
| `decompile` | dbId, force | 批量反编译JAR(后台) |
| `decompile_status` | dbId | 查询后台反编译任务 |
| `decompile_class` | dbId, className | 按需反编译单个类 |
| `source` | dbId, path | 浏览或读取反编译的源代码树 |
| `search_source` | query, dbId?, isRegex, limit | 在反编译的源代码中进行文本/正则搜索 |
| `reindex` | dbId? | 重新索引类名 |
| `batch_ingest` | directory, skipSource, indexClasses, replace | 导入目录中的所有JAR |
| `batch_decompile` | - | 反编译所有尚未反编译的模组 |
| `index_fts` | dbId | 将反编译的模组源代码索引到BM25/FTS |
| `search_indexed` | dbId, query, limit? | 对索引的模组源代码进行快速BM25排名搜索 |
| `index_semantic` | dbId, batchSize? | 将反编译的源代码嵌入到pgvector(分批,可恢复 - 需要Ollama) |
| `search_semantic` | dbId, query, limit? | 使用Ollama + pgvector进行语义源代码搜索(需要Ollama) |
| `get_paths` | dbId | 返回`jarPath`, `decompPath`(如果尚未反编译,则为null)和`cacheRoot` |
### 2. `mod_bytecode` — 模组JAR类分析
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| `search_class` | dbId, query | 按名称(CamelCase/前缀/子串)查找类 |
| `class_members` | dbId, className | 方法/字段以及Mixin目标字符串 |
| `bytecode` | dbId, className | 原始`javap`输出 |
| `find_refs` | dbId, target | 所有引用某个类/方法/字段的类 |
| `inheritance` | dbId, className | 超类/接口/子类 |
| `diff` | dbIdA, dbIdB | 两个版本之间添加/删除的类 |
| `find_implementors` | target, modId?, limit | 查找数据库中实现目标的模组类 |
### 3. `mod_mixins` — Mixin & 访问转换器分析
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| `targets` | modId | MC类注入此模组 |
| `resolve` | dbId | 解析`@Mixin`字节码 → 更新数据库 |
| `conflicts` | targetClass | 所有注入相同MC类的模组 |
| `at_entries` | dbId | NeoForge/Forge AT条目 |
| `aw_entries` | dbId | Fabric/Quilt AW条目 |
### 4. `platform` — Modrinth/CurseForge 同步
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| `sync_modrinth` | dbId | SHA-512查找 → 存储项目ID + 源代码URL |
| `sync_curseforge` | dbId | Murmur2指纹查找(需要`CURSEFORGE_API_KEY`) |
| `check_updates` | dbId | 在两个平台上检查新版本 |
| `batch_sync` | syncModrinth, syncCurseforge, downloadSources, modIdFilter, limit | 批量同步所有不匹配的模组 |
| `download_source` | dbId | 下载GitHub/GitLab源代码ZIP |
### 5. `mc_versions` — 加载器版本管理
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| `list_mc` | type=release\|snapshot\|all | 来自Mojang Piston Meta的MC版本 |
| `list_neoforge` | mcVersion, limit | 来自Maven的NeoForge版本 |
| `list_fabric` | mcVersion, limit | 来自Modrinth的Fabric API版本 |
| `ingest_neoforge` | version, skipIndex | 下载并导入NeoForge JAR |
| `ingest_fabric` | version, skipIndex | 下载并导入Fabric API JAR |
### 6. `mc_source` — Vanilla MC源代码 & 验证
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| `search_class` | version, query | 按名称查找类 |
| `get_source` | version, className, startLine, endLine, maxLines | 读取反编译的源代码 |
| `bytecode` | version, className | 原始`javap`输出 |
| `class_members` | version, className | 方法/字段以及Mixin目标字符串 |
| `find_refs` | version, target | 引用目标的类 |
| `inheritance` | version, className | 超类/接口/子类 |
| `diff` | versionA, versionB | MC版本之间添加/删除的类 |
| `decompile` | version, force | 批量反编译MC JAR(后台) |
| `decompile_status` | version | 查询批量反编译任务 |
| `search_code` | version, query, searchType, isRegex, limit | 在MC源代码中进行正则/文本搜索 |
| `index` | version, force | 将反编译的MC索引到PostgreSQL FTS |
| `search_indexed` | version, query, limit | 快速FTS搜索 |
| `search_events` | version, query?, modloader? | 在反编译的源代码中找到Event子类 |
| `validate_aw` | content, mcVersion | 验证Access Widener对抗MC JAR |
| `analyze_mixin` | source, mcVersion | 解析和验证Mixin类 |
### 7. `mappings` — 名称映射 & Parchment
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| `find` | symbol, version, sourceNs, targetNs | 在官方/中间/纱线/莫吉地图之间转换 |
| `remap` | inputJar, outputJar, version, toMapping | 使用TinyRemapper重新映射JAR |
| `parchment` | className, mcVersion | 社区参数名称/ JavaDoc用于类 |
| `list_parchment` | mcVersion | 可用的Parchment版本 |
| `parchment_summary` | mcVersion | Parchment覆盖率摘要 |
### 8. `docs` — 文档数据库
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| `ingest` | entries[] | 添加/更新文档条目 |
| `seed` | - | 填充内置默认值 |
| `get` | query | 按类名或关键词查找 |
| `search` | query, category, namespace | 全文搜索 |
| `list` | category, namespace, tag, limit | 列出所有条目 |
| `delete` | id | 按数据库ID删除 |
### 9. `primers` — 版本迁移指南
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| `ingest` | entries[] | 添加迁移指南条目 |
| `seed` | - | 填充内置NeoForge/Forge/Fabric指南 |
| `get` | id | 按数据库ID获取指南 |
| `by_version` | fromVersion, toVersion, modloader | 涵盖版本范围的指南 |
| `search` | query, modloader, fromVersion, toVersion, limit | 全文搜索 |
| `list` | modloader, limit | 列出所有指南 |
| `delete` | id | 按数据库ID删除 |
### 10. `mc_registry` — MC注册表
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| `blocks` | - | 块 |
| `commands` | - | 命令 |
| `registries` | - | 注册表 |
| `sounds` | - | 声音 |
| `item-components` | - | 物品组件 |
| `registry-entries` | - | 注册表条目 |
| `mcmeta-versions` | - | mcmeta版本 |
### 11. `mc_data` — MC数据浏览器
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| `tags` | - | 标签 |
| `find-tags-for` | - | 查找标签 |
| `recipes` | - | 配方 |
| `get-recipe` | - | 获取配方 |
| `biomes` | - | 生物群落 |
| `enchantments` | - | 附魔 |
| `lang` | - | 语言 |
| `model` | - | 模型 |
| `structures` | - | 结构 |
| `particles` | - | 粒子 |
| `entity-attributes` | - | 实体属性 |
| 更多 | - | - |
### 12. `mc_files` — MC文件访问
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| `get-data` | - | 获取数据 |
| `get-asset` | - | 获取资产 |
| `list-files` | - | 列出文件 |
| `diff` | - | 差异 |
| `atlas` | - | 图谱 |
| `raw` | - | 原始 |
| `compare` | - | 比较 |
| `changelog` | - | 变更日志 |
### 13. `mod_jar` — 模组JAR文件浏览器
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| `list-files` | - | 列出文件 |
| `get-file` | - | 获取文件 |
| `lang` | - | 语言 |
| `sounds` | - | 声音 |
| `atlas` | - | 图谱 |
| `registry-entries` | - | 注册表条目 |
| `manifest` | - | 清单 |
| `list-configs` | - | 列出配置 |
| `get-config` | - | 获取配置 |
### 14. `mod_data` — 模组结构化数据
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| `list` | - | 列出 |
| `get` | - | 获取 |
| `diff` | - | 差异 |
| `trace-item` | - | 跟踪物品 |
| 类型:配方, 战利品表, 进步, 模型, 生物群落, 数据标签, 附魔等 |
### 15. `mod_tags` — 跨模组标签索引
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| `index` | - | 索引 |
| `index-all` | - | 索引所有 |
| `namespaces` | - | 命名空间 |
| `contributors` | - | 贡献者 |
| `expand` | - | 展开 |
| `mod-list` | - | 模组列表 |
| `find-conflicts` | - | 查找冲突 |
| `search` | - | 搜索 |
### 16. `mixin_scan` — 跨模组Mixin冲突分析
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| `list` | - | 列出 |
| `conflict-matrix` | - | 冲突矩阵 |
| `class-detail` | - | 类详情 |
| `hotspots` | - | 热点 |
| `batch-resolve` | - | 批量解析 |
### 17. `gradle` — Gradle构建文件分析
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| `get-files` | - | 获取文件 |
| `search` | - | 搜索 |
| `compare-deps` | - | 比较依赖 |
### 18. `reports` — 报告生成
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| `mixin-conflicts` | - | Mixin冲突 |
| `tag-conflicts` | - | 标签冲突 |
| `version-conflicts` | - | 版本冲突 |
| `mod-overview` | - | 模组概述 |
| `gradle-deps` | - | Gradle依赖 |
| `pack-compat` | - | 打包兼容性 |
| `dep-graph` | - | 依赖图 |
| `sidedness` | - | 侧端性 |
| `mod-complexity` | - | 模组复杂度 |
| `pack-changelog` | - | 打包变更日志 |
### 19. `pack_tools` — 打包工具
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| `asset-conflicts` | - | 资产冲突 |
| `vanilla-overrides` | - | Vanilla覆盖 |
| `sidedness` | - | 侧端性 |
| `pack-sidedness` | - | 打包侧端性 |
| `complexity` | - | 复杂度 |
| `pack-changelog` | - | 打包变更日志 |
| `data-conflicts` | - | 数据冲突 |
### 20. `kubejs` — KubeJS
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| `index` | dir | 索引KubeJS/scripts目录 |
| `search` | dir, query | 搜索索引脚本 |
### 21. `modpacks_ch` — modpacks.ch / FTB / CurseForge 包浏览
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| `search` | query | 搜索modpacks.ch包 |
| `featured` | - | 精选包 |
| `info` | packId | 包元数据 |
| `manifest` | packId, verId | 包清单 |
| `list-versions` | - | 包版本列表 |
| `list-files` | - | 包文件列表 |
| `ftb-mod-info` | modId | FTB模组信息 |
| `find-mod` | - | 跨包查找模组 |
### 22. `analyze_crash_log` — 分析崩溃日志
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| 无 | logPath | 分析崩溃日志文件 |
### 23. `find_missing_deps` — 查找缺失的依赖
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| 无 | - | 查找具有缺失声明依赖的模组 |
### 24. `check_mod_compat` — 模组兼容性检查
| action | 关键参数 | 描述 |
|--------|-----------|-------------|
| 无 | jarPath | 预飞行兼容性检查 |
---
### 10. `mc_registry` — MC 注册表与元数据
| 操作 | 关键参数 | 描述 |
|--------|-----------|-------------|
| `blocks` | 版本 | 区块状态属性定义 |
| `commands` | 版本 | 完整的 Brigadier 命令树 |
| `registries` | 版本,注册表? | 所有注册表键,或一个注册表的条目 |
| `sounds` | 版本 | sounds.json — 所有声音事件 |
| `item_components` | 版本 | 数据驱动的物品组件定义 |
| `registry_entries` | 注册表,版本 | 注册表分支的完整条目列表 |
| `mcmeta_versions` | filter=release\|snapshot\|all | misode/mcmeta 跟踪的所有 MC 版本 |
### 11. `mc_data` — 原版数据浏览器
| 操作 | 关键参数 | 描述 |
|--------|-----------|-------------|
| `tags` | 版本,注册表,标签 ID,命名空间 | 浏览原版标签 |
| `find_tags_for` | 条目,注册表,版本,命名空间 | 反向标签查找 |
| `recipes` | 版本,类型,输出物品 | 列出配方 |
| `get_recipe` | 配方 ID,版本 | 配方 JSON |
| `find_recipes_for` | 物品,版本 | 按输出物品的反向配方查找 |
| `loot_tables` | 版本,类别 | 列出战利品表 |
| `get_loot_table` | 路径,版本 | 战利品表 JSON |
| `lang` | 版本,筛选,限制 | 搜索 en_us.json |
| `blockstate` | 区块,版本 | 区块状态变量/模型映射 |
| `model` | 模型路径,版本,解析父级 | 带有父级链的模型 JSON |
| `model_tree` | 模型路径,版本 | 完整的模型继承关系,合并纹理 |
| `biomes` | 版本 | 列出所有生物群系 |
| `get_biome` | 生物群系 ID,版本 | 生物群系世界生成 JSON |
| `damage_types` | 版本 | 所有带有 JSON 的伤害类型 |
| `enchantments` | 版本 | 列出所有附魔 |
| `get_enchantment` | ID,版本 | 附魔 JSON |
| `advancements` | 版本,类别 | 列出进度 |
| `get_advancement` | ID,版本 | 进度 JSON |
| `structures` | 版本 | 列出世界生成结构 |
| `get_structure` | ID,版本 | 结构 JSON |
| `particles` | 版本 | 列出粒子类型 |
| `get_particle` | ID,版本 | 粒子描述 JSON |
| `entity_attributes` | 实体,版本,模组 ID? | 默认属性用于原版或模组实体 |
### 12. `mc_files` — MC 文件访问 (misode/mcmeta)
| 操作 | 关键参数 | 描述 |
|--------|-----------|-------------|
| `get_data` | 文件路径,版本,jsonOnly | 获取数据包文件 |
| `get_asset` | 文件路径,版本,jsonOnly | 获取资源包文件 |
| `list_files` | 目录路径,版本,分支 | 列出目录中的文件 |
| `diff` | 文件路径,版本 A,版本 B,分支 | 比较两个 MC 版本之间的文件 |
| `atlas` | 版本,图集? | 纹理图集定义 |
| `raw` | 引用,文件路径 | 通过 git 引用 + 路径获取任何文件 |
| `compare` | 版本 A,版本 B,分支 | GitHub 比较 API 在两个 MC 版本之间 |
| `changelog` | 版本,分支 | 特定 MC 版本中更改的文件 |
### 13. `mod_jar` — 模组 JAR 文件与注册表访问
| 操作 | 关键参数 | 描述 |
|--------|-----------|-------------|
| `list_files` | 模组 ID,前缀? | 列出 JAR 内容在可选路径前缀下 |
| `get_file` | 模组 ID,路径 | 从 JAR 读取任意文件 |
| `lang` | 模组 ID,筛选,限制 | en_us.json 中的翻译字符串 |
| `sounds` | 模组 ID,命名空间? | sounds.json — 已注册的声音事件 |
| `atlas` | 模组 ID,图集?,命名空间? | 纹理图集 JSON |
| `registry_entries` | 模组 ID,类型,筛选,限制 | 通过语言键检查 — 不需要反编译 — 物品/区块/实体 |
### 14. `mod_data` — 模组结构化数据
`action=list` 或 `action=get` 与 `type` 参数结合:
| 类型 | list 返回 | get 返回 |
|------|-------------|-------------|
| `recipe` | 所有配方 ID | 配方 JSON |
| `loot_table` | 所有战利品表 ID | 战利品表 JSON |
| `advancement` | 所有进度 ID | 进度 JSON |
| `blockstate` | 所有区块状态文件 | 区块状态 JSON |
| `model` | 所有模型文件 | 模型 JSON |
| `biome` | 所有生物群系 ID | 生物群系 JSON |
| `structure` | 所有结构 ID | 结构 JSON |
| `data_tag` | 所有标签文件(+ 注册表参数) | 标签条目 JSON |
| `particle` | 所有粒子 ID | 粒子 JSON |
| `damage_type` | 所有伤害类型 ID | 伤害类型 JSON |
| `enchantment` | 所有附魔 ID | 附魔 JSON |
公共参数:`modId`(必需),`namespace`(可选范围),`filter`(列表),`id`(获取),`modelPath`(获取模型),`registry`(仅数据标签)。
### 15. `mod_tags` — 跨模组标签分析
| 操作 | 关键参数 | 描述 |
|--------|-----------|-------------|
| `index` | 模组 ID | 扫描和索引一个模组的标签文件 |
| `index_all` | — | 扫描和索引所有模组的标签 |
| `namespaces` | — | 所有标签命名空间 + 注册表存在 |
| `contributors` | 标签路径,注册表? | 每个模组对标签路径的贡献 |
| `mod_list` | 模组 ID,注册表? | 特定模组注册的所有标签 |
| `find_conflicts` | 注册表? | replace:true 跨模组冲突 |
| `search` | 查询,注册表,限制 | 标签路径的 substring 搜索 |
### 16. `mixin_scan` — 跨模组 Mixin 冲突分析
| 操作 | 关键参数 | 描述 |
|--------|-----------|-------------|
| `list_mods` | 加载器,MC 版本 | 所有具有目标类列表的 mixin 模组 |
| `conflict_matrix` | 加载器,MC 版本,最小冲突 | 被 2+ 模组针对的类 |
| `class_detail` | 目标类 | 每个模组注入一个类 |
| `hotspots` | 顶部,加载器 | 争用最激烈的 N 个类 |
| `batch_resolve` | 加载器,MC 版本 | 为所有 mixin 模组解析 @Mixin 目标 |
### 17. `gradle` — Gradle 构建文件分析
| 操作 | 关键参数 | 描述 |
|--------|-----------|-------------|
| `get_files` | 模组 ID | 解析的 build.gradle 带有依赖,插件,仓库 |
| `search` | 查询,模组 ID 过滤器,限制 | 跨模组 grep 带有上下文 |
| `compare_deps` | 组过滤器,模组 ID 过滤器 | 依赖比较 — 版本冲突,嵌入 vs compileOnly |
### 18. `reports` — Markdown 报告生成
| 报告 | 关键参数 | 描述 |
|--------|-----------|-------------|
| `mixin_conflicts` | 加载器,MC 版本,最小冲突 | 跨模组 mixin 冲突报告 |
| `tag_conflicts` | 注册表 | replace:true 标签冲突报告 |
| `version_conflicts` | — | 重复模组 ID + 未满足依赖 |
| `mod_overview` | 模组 ID | 一个模组的完整概述 |
| `gradle_deps` | 组过滤器,模组 ID 过滤器 | Gradle 依赖比较 |
| `pack_compat` | MC 版本,加载器 | 一次性包审计:mixin 冲突 + AT/AW 共享目标 + 标签冲突 + 依赖问题 |
| `dep_graph` | MC 版本,模组 ID? | 带有 Mermaid 图的完整依赖图 |
| `sidedness` | MC 版本,加载器 | 将所有模组分类为 client_only / client_optional / common / server_only |
| `mod_complexity` | MC 版本,加载器 | 按类计数 + mixin + AT/AW 足迹对模组进行排名 |
| `pack_changelog` | 旧 ID[],新 ID[] | 两个包快照的差异 — 添加/删除/更新的模组 |
所有报告都接受一个可选的 `savePath` 以将 `.md` 文件写入磁盘。
### 19. `pack_tools` — 模组包资产与数据冲突分析
| 操作 | 关键参数 | 描述 |
|--------|-----------|-------------|
| `asset_conflicts` | MC 版本?,加载器?,限制 | 跨所有模组的资源包路径冲突 |
| `data_conflicts` | 数据类型?,MC 版本?,加载器?,限制 | 数据包路径冲突(配方,战利品表,进度...) |
| `vanilla_overrides` | type=asset\|data\|both,MC 版本?,加载器? | 模组覆盖原版文件的路径 |
| `complexity` | MC 版本?,加载器?,限制 | 按 JAR 条目计数(复杂性代理)对模组进行排名 |
| `pack_sidedness` | MC 版本?,加载器? | 按客户端/服务端入口点存在对模组进行分类 |
| `missing_assets` | MC 版本?,加载器?,限制 | 模组 JAR 条目引用不存在的纹理/模型 |
| `at_conflicts` | MC 版本?,加载器? | 被多个模组针对的 AT/AW 条目 |
### 20. `analyze_crash_log` — 崩溃日志分类
粘贴一个 NeoForge/Forge/Fabric 崩溃日志。跨引用堆栈帧与 `ModClass` 索引,并返回按帧计数排序的可疑模组,加上如果类索引稀疏,则返回覆盖警告。
| 参数 | 描述 |
|-------|-------------|
| `logText` | 崩溃报告或日志片段的完整文本 |
### 21. `find_missing_deps` — 缺失依赖检测
读取所有已摄取模组的已声明依赖,并检查每个依赖 ID 与已摄取的模组 ID 集。跳过已知的平台提供的依赖(minecraft,neoforge,forge,fabric-api,java)。
| 参数 | 描述 |
|-------|-------------|
| `mcVersion` | 过滤到特定 MC 版本 |
| `loader` | 过滤到特定加载器 |
### 22. `check_mod_compat` — 预检 JAR 兼容性检查
在不需要摄取的情况下,将候选 JAR 运行 5 个检查:
1. Mixin 目标与现有模组冲突
2. AT/AW 条目重叠
3. 资产路径冲突
4. 缺失的已声明依赖
5. 侧重性检测
| 参数 | 描述 |
|-------|-------------|
| `jarPath` | 候选模组 JAR 的绝对路径 |
| `mcVersion` | 过滤比较池到此 MC 版本 |
| `loader` | 过滤比较池到此加载器 |
---
## 典型工作流程
### 摄取模组包
```bash
# 1. 摄取所有模组(--replace 在更新后保持 DB 同步)
node dist/cli.js batch-ingest /path/to/mods --index --replace
# 2. 解析 mixin 目标(启用冲突检测)
node dist/cli.js batch-resolve-mixins
# 3. 同步 Modrinth/CurseForge 元数据
# (通过 MCP:platform action=batch_sync)
# 4. 索引模组提供的标签
# (通过 MCP:mod_tags action=index_all)
# 5. 摄取加载器进行交叉引用
node dist/cli.js ingest-neoforge 21.1.228
```
### 运行完整包兼容性审计
```bash
# 通过 MCP — 生成一个 Markdown 报告,限定在您的包中
reports report=pack_compat loader=neoforge mcVersion=1.21.1 savePath=C:/reports/pack-compat.md
```
该记分卡涵盖:重复的模组 ID,未满足的依赖,mixin 冲突的类和标签硬冲突。AT/AW 共享目标单独显示为信息性(它们只能扩大访问,永远不会导致崩溃)。
### 预检一个新的模组
```bash
# 通过 MCP — 检查当前 DB 中所有模组,无需摄取
check_mod_compat jarPath=/path/to/newmod-1.0.jar loader=neoforge mcVersion=1.21.1
```
### 分类崩溃日志
```bash
# 通过 MCP — 粘贴崩溃报告,获取排名的可疑模组
analyze_crash_log logText="<在此粘贴完整的崩溃日志>"
```
### 查找缺失的依赖
```bash
# 通过 MCP
find_missing_deps loader=neoforge mcVersion=1.21.1
```
### 跨模组源代码搜索
```bash
# 通过 MCP — grep 跨所有反编译的模组源代码
mod action=search_source query=LivingEntity isRegex=false
mod action=search_source query="@Mixin.*LivingEntity" isRegex=true
# 结果包括模组 ID + 模组版本,以便您知道每个命中来自哪个模组
```
### 检测 mixin 冲突
```bash
# 通过 CLI(单个类)
node dist/cli.js mixin-conflicts net/minecraft/world/entity/LivingEntity
# 通过 MCP(完整矩阵)
mixin_scan action=conflict_matrix
reports report=mixin_conflicts savePath=C:/reports/mixin_conflicts.md
```
### 探索标签冲突
```bash
# 通过 MCP
mod_tags action=index_all
mod_tags action=find_conflicts
mod_tags action=contributors tagPath=c:ores/iron
```
### 探索一个模组
```bash
node dist/cli.js get apotheosis
node dist/cli.js mixin-targets apotheosis
node dist/cli.js at-entries 2
node dist/cli.js decompile-class 2 com/shadows/apotheosis/mixin/LivingEntityMixin
```
### 检查更新
```bash
node dist/cli.js sync-modrinth 2
node dist/cli.js check-updates 2
```
---
## 致谢
### 服务与 API
- **[CreeperHost](https://www.creeperhost.net)** — 免费的 [modpacks.ch](https://www.modpacks.ch) 公共 API 为模组包搜索,同步和模组下载提供支持。
- **[Modrinth](https://modrinth.com)** — 免费的 [Modrinth API](https://docs.modrinth.com) 为模组搜索,元数据查找和版本同步提供支持。
- **[CurseForge](https://www.curseforge.com)** — [CurseForge API](https://docs.curseforge.com) 为模组和模组包浏览和同步提供支持。
- **[misode](https://github.com/misode)** — [mcmeta](https://github.com/misode/mcmeta),由 misode/mcmeta 提供的版本控制的 Minecraft 数据仓库,为 `mc_data`,`mc_files` 和 `mc_registry` 工具提供支持。
- **[Mojang](https://www.minecraft.net)** — 发布官方 Mojmap 映射和 Piston Meta API 用于版本发现和 JAR 下载。
### 模组加载器团队
- **[NeoForged 团队](https://github.com/neoforged/NeoForge)** — NeoForge,[NeoForge 文档](https://docs.neoforged.net) 接种到文档数据库,以及迁移变更日志接种到 primer 数据库。
- **[FabricMC 团队](https://github.com/FabricMC)** — [Fabric Wiki](https://fabricmc.net/wiki) 和 [Yarn 映射](https://github.com/FabricMC/yarn) 接种到文档数据库,中间映射用于 `mappings` 工具,以及 [mcsrc.dev](https://mcsrc.dev) 其源代码浏览和类分析功能启发了我们的 `mc_source` 工具。
- **[MinecraftForge 团队](https://github.com/MinecraftForge)** — 1.18.2 → 1.20.1 的预分叉 Forge 迁移变更日志(已接种到 primer 数据库)。
### 社区贡献者
- **[MCPHackers](https://mcphackers.org/)** — [RetroMCP](https://github.com/MCPHackers/RetroMCP-Java),提供 Tiny v2 映射,使旧版 Minecraft 版本(Alpha,Beta 和 1.7.10 之前的版本)的反编译成为可能。
- **[ApexModder](https://github.com/ApexModder)** — NeoForge 更新 primer 和迁移指南已包含在默认 primer 数据库中。
- **[TheIllusiveC4](https://github.com/TheIllusiveC4)** — [Curios API](https://github.com/TheIllusiveC4/Curios),其 wiki 已接种到文档数据库作为默认模组 API 参考。
- **[ParchmentMC](https://parchmentmc.org)** — [Parchment](https://github.com/ParchmentMC/Parchment),社区维护的参数名称和 Java 文档层叠在 Mojmap 之上,由 `mappings` 工具使用。
### 工具和库
- **[Vineflower](https://github.com/Vineflower/vineflower)** — 为所有 Java 源代码重建提供支持的反编译器。
- **[SpecialSource](https://github.com/md-5/SpecialSource)** — 提供应用旧版 SRG 映射到 Minecraft 1.7.10 到 1.13.2 的字节码重映射工具。
- **[tiny-remapper](https://github.com/FabricMC/tiny-remapper)** — 高度优化的 JAR 重映射工具,用于应用 RetroMCP 和现代映射。
- **[SpongePowered Mixin](https://github.com/SpongePowered/Mixin)** — Mixin 框架,其注释格式由 mixin-scan 工具解析和跨模组分析。
- **[Model Context Protocol SDK](https://github.com/modelcontextprotocol/typescript-sdk)** — MCP 服务器/客户端框架,本工具基于此构建。
- **[Prisma](https://www.prisma.io)** — 提供多后端数据库支持的 ORM(对象关系映射)。
- **[pgvector](https://github.com/pgvector/pgvector)** — PostgreSQL 矢量扩展,实现语义搜索。
- **[Ollama](https://ollama.com)** — 用于生成语义嵌入的本地 LLM 运行时。
- **[Electric SQL / PGlite](https://github.com/electric-sql/pglite)** — 用于零 Docker 部署的嵌入式 Postgres。
- **[better-sqlite3](https://github.com/WiseLibs/better-sqlite3)** / **[sqlite-vec](https://github.com/asg017/sqlite-vec)** — SQLite 后端和矢量搜索扩展。
- **[Zod](https://zod.dev)** — 所有 MCP 工具参数的运行时模式验证。
- **[clack](https://github.com/bombshell-dev/clack)** — 交互式安装向导 TUI。
- **[adm-zip](https://github.com/cthackers/adm-zip)** — 整个摄取管道中使用的 JAR/ZIP 提取。
### 特别感谢
衷心感谢 **ForgeCraft Discord 和 Minecraft 服务器** 的所有成员,感谢你们的社区氛围、反馈和多年来的支持。没有你们,这个项目不会是今天的样子。
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器