Mc Pack Builder

io.github.dcd887由 GitHub 账号 dcd887 发布v1.1.0更新于 Oct 24, 2026

构建 Minecraft 整合包:依赖解析、冲突检测、导出清单

概览

AI 生成的概览

本地 MCP 服务器,用于构建 Minecraft 整合包:创建包结构、在 Modrinth 搜索模组、解析依赖、检查兼容性并导出可分发整合包。

可以做什么
创建和读取整合包目录,包括 MC 版本、加载器、模组数量等元数据以及常见问题(create_pack、get_pack_info)。在 Modrinth 搜索模组,查看版本历史、依赖和支持的 MC 版本(search_mods、get_mod_info)。解析模组的完整直接与间接依赖链,并为现有整合包中的所有模组生成依赖清单(resolve_dependencies、generate_dependency_list)。按目标 MC 版本检查已安装模组的已知不兼容(check_pack_compatibility)。导出可分发整合包:清理多余文件、解开嵌套压缩包、生成模组清单,并可选分卷(export_standard_pack)。
适用场景
适合在制作或维护 Minecraft 整合包时使用,让助手在 Modrinth 上查找模组、追踪依赖、提示已知冲突(例如 OptiFine 与 Fabric),并生成干净的发布用导出。本地整合包工具可离线使用,只有 Modrinth 查询需要联网。
运行要求
作为本地 Node.js 进程运行(需 Node.js 18+ 和 npm),在 MCP 客户端中配置构建后入口文件的绝对路径。无需账号或 API 密钥;可通过环境变量或 .env 文件覆盖 Modrinth API 地址、User-Agent、分卷大小和跳过目录。搜索、模组信息和依赖解析需要网络访问。
安装前请注意
导出和整合包工具会写入磁盘:export_standard_pack 会创建输出目录、清理文件,并可能读取 .minecraft 目录,请确认路径正确并查看返回报告。Modrinth 查询会把搜索词和项目 ID 发送到 Modrinth API,或发送到 PACK_BUILDER_MODRINTH_API_BASE 指定的地址。兼容性规则来自可编辑的规则文件,可能未覆盖所有冲突。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Mc Pack Builder,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

mc-pack-builder-mcp

[M8ven Verified]

MCP server for Minecraft modpack building. Creates pack structures, searches mods on Modrinth, resolves dependencies, checks compatibility, and exports standardized modpacks ready for distribution.

Tools

ToolDescription
create_packCreate a new modpack directory structure (pack.mcmeta, version.txt, loader.txt, mods/)
get_pack_infoRead existing modpack metadata: MC version, loader, mod count, and common issues
search_modsSearch Modrinth for mods by keyword, returns ID, name, description, download count
get_mod_infoGet detailed info about a Modrinth mod: version history, dependencies, supported MC versions
resolve_dependenciesRecursively resolve a mod's full dependency chain (direct + indirect)
check_pack_compatibilityCheck installed mods against a target MC version for known incompatibilities
generate_dependency_listGenerate a complete dependency list for all mods in an existing pack
export_standard_packExport a clean, distribution-ready modpack: cleanup extras, unwrap nested zips, generate modlist, optional volume splitting

Features

  • Pack structure creation — generates standard modpack directory with all required files
  • Modrinth integration — search and query mod metadata directly from the Modrinth API
  • Dependency resolution — follows the full dependency tree to ensure all requirements are met
  • Compatibility checking — detects known conflicts (e.g. OptiFine with Fabric, Sodium vs Embeddium)
  • Export standard pack — automatically cleans .minecraft extras, unwraps nested zip bundles, generates a styled modlist.html or plain modlist.txt, and optionally splits large packs into ≤256 MB volumes for easy distribution
  • Offline operation — all local pack tools work without network; only search/info tools need Modrinth

Installation

Prerequisites

  • Node.js 18+
  • npm

Build

bash
cd mc-pack-builder-mcpnpm installnpm run build

Run as standalone MCP server

bash
node dist/index.js

The server communicates via stdio (JSON-RPC 2.0). It can be consumed by any MCP-compatible client.

Configuration for MCP clients

Add to your MCP client config:

json
{  "mcpServers": {    "mc-pack-builder": {      "command": "node",      "args": ["${MC_PACK_BUILDER_ROOT}/dist/index.js"]    }  }}

Path note: Replace ${MC_PACK_BUILDER_ROOT} with the absolute path to this project's root directory. On Windows, use forward slashes: ["C:/Users/xxx/Desktop/mc-pack-builder-mcp/dist/index.js"]. Alternatively, set an environment variable MC_PACK_BUILDER_ROOT pointing to the project root and use the variable in the config.

Configuration

本工具零配置即可用(内置默认值,任何环境开箱即用)。以下项目可通过环境变量或项目根目录 .env 文件覆盖(复制 .env.example 为 .env):

变量默认值说明
PACK_BUILDER_MODRINTH_API_BASEhttps://api.modrinth.com/v2Modrinth API 根地址,支持自建网关/代理
PACK_BUILDER_USER_AGENTmc-pack-builder-mcp/1.1请求 User-Agent(Modrinth 要求标明来源)
PACK_BUILDER_VOLUME_MAX_MB256分卷导出时每卷的最大体积(MB)
PACK_BUILDER_SKIP_DIRSmods,config,resourcepacks,shaderpacks,saves,datapacks,worlds解压嵌套压缩包时跳过的顶层目录(逗号分隔)

优先级:环境变量 > .env 文件 > 内置默认值。改动后重启 MCP server 生效。

扩展兼容性规则:编辑 src/pack-rules.json(构建后为 dist/pack-rules.json),新增/覆盖规则即可,无需改代码。

  • rules.incompatible_pairs:互斥模组对,如 { "mods": ["sodium", "embeddium"], "reason": "..." },当同一整合包同时出现 ≥2 个名单内模组时告警。
  • rules.loader_incompatible:加载器专属不兼容,如 { "loader": "fabric", "mods": ["optifine"], "reason": "..." }。
  • rules.pack_format:MC 版本 → pack.mcmeta 的 pack_format 数字映射(create_pack 默认取值)。

Usage Examples

Create a new modpack

json
{  "name": "create_pack",  "arguments": {    "pack_dir": "/path/to/MyModpack",    "name": "My Modpack",    "mc_version": "1.20.1",    "loader": "fabric"  }}

Read pack info

json
{  "name": "get_pack_info",  "arguments": {    "pack_dir": "/path/to/MyModpack"  }}

Search for a mod on Modrinth

json
{  "name": "search_mods",  "arguments": {    "query": "sodium",    "limit": 5  }}

Resolve dependencies

json
{  "name": "resolve_dependencies",  "arguments": {    "project_id": "geckolib"  }}

Check pack compatibility

json
{  "name": "check_pack_compatibility",  "arguments": {    "pack_dir": "/path/to/MyModpack",    "mc_version": "1.20.1"  }}

Generate dependency list

json
{  "name": "generate_dependency_list",  "arguments": {    "pack_dir": "/path/to/MyModpack"  }}

Export standard pack (release-ready)

json
{  "name": "export_standard_pack",  "arguments": {    "source_pack_dir": "C:/Users/xxx/Desktop/MyModpack",    "output_dir": null,    "clean_minecraft_extra": true,    "minecraft_dir": "C:/Users/xxx/.minecraft",    "unwrap_nested": true,    "generate_modlist": true,    "modlist_format": "html",    "split_volumes": false,    "volume_max_mb": 256  }}

Output: Creates a _ready sibling directory (or custom output_dir) with the cleaned package. Returns a JSON report listing all actions taken, warnings, mod count, and — if volume splitting is enabled — per-volume paths and sizes.

Architecture

mc-pack-builder-mcp/├── src/│   ├── index.ts        # MCP server + all tool implementations│   └── pack-rules.json # 兼容性规则 & pack_format 映射(可外部扩展)├── dist/               # Compiled JavaScript (output of tsc)├── __tests__/│   └── unit.test.ts    # Unit tests (offline)├── package.json        # Node.js dependencies (@modelcontextprotocol/sdk, zod, adm-zip)├── tsconfig.json       # TypeScript config (CommonJS output)├── test.js             # Integration test runner├── test_logs/          # Test output logs (gitignored)├── .env.example        # 环境变量配置示例└── .gitignore

The MCP uses the official @modelcontextprotocol/sdk v1.x with McpServer and StdioServerTransport.

Testing

bash
npm run buildnode test.js

Tests create temporary directories under os.tmpdir() and clean up after themselves. No Minecraft installation is required.

Platform Compatibility

ToolWindowsmacOSLinux
create_pack✅✅✅
get_pack_info✅✅✅
search_mods✅✅✅
get_mod_info✅✅✅
resolve_dependencies✅✅✅
check_pack_compatibility✅✅✅
generate_dependency_list✅✅✅
export_standard_pack✅✅✅

All tools use cross-platform Node.js fs and path APIs. Network-dependent tools (search_mods, get_mod_info, resolve_dependencies) require internet access regardless of platform.

License

MIT

来源:README.md,提交 2c279ae

工具

0
SourceWeft 曾在隔离沙箱中以无凭据方式启动该软件包一次,以列出其工具,但未能完成:服务器未能启动。

版本历史

1
  1. v1.1.0最新Oct 23, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分