Mc Pack Builder

io.github.dcd887Published by GitHub account dcd887v1.1.0Updated Oct 24, 2026

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

Overview

AI-generated overview

A local MCP server for building Minecraft modpacks: it creates pack structures, searches Modrinth, resolves dependencies, checks compatibility and exports ready

What you can do
Create and inspect modpack folders, including metadata such as MC version, loader and mod count, and common issues found in a pack directory (create_pack, get_pack_info). Search Modrinth for mods and read their version history, dependencies and supported MC versions (search_mods, get_mod_info). Resolve a mod's full direct and indirect dependency chain, and generate a dependency list for every mod in an existing pack (resolve_dependencies, generate_dependency_list). Check installed mods against a target MC version for known incompatibilities (check_pack_compatibility). Export a distribution-ready pack: clean extras, unwrap nested zips, generate a modlist and optionally split into volumes (ex.
When to use it
Useful when assembling or maintaining a Minecraft modpack and you want an assistant to look up mods on Modrinth, trace dependencies, flag known conflicts such as OptiFine with Fabric, and produce a clean release-ready export. Local pack tools work offline; only the Modrinth lookups need internet.
Requirements
Runs as a local Node.js process (Node.js 18+ and npm), configured in the MCP client with the absolute path to the built entry point. No accounts or API keys; optional environment variables or a .env file override the Modrinth API base, User-Agent, volume size and skipped directories. Internet access is needed for search, mod info and dependency resolution.
Before you install
Export and pack tools write to disk: export_standard_pack creates an output directory, cleans files and may read a .minecraft directory, so point it at the right paths and review the returned report. Modrinth lookups send search queries and project IDs to the Modrinth API, or to whatever endpoint PACK_BUILDER_MODRINTH_API_BASE is set to. Compatibility rules come from an editable rules file and may not cover every conflict.

Installation

In SourceWeft

  1. Open Mc Pack Builder in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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

Source: README.md at commit 2c279ae

Tools

0
SourceWeft started this package once in an isolated sandbox, without credentials, to list its tools. That failed: the server did not start.

Version history

1
  1. v1.1.0LatestOct 23, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts