About
构建 Minecraft 整合包:依赖解析、冲突检测、导出清单
Security Report
The server is a Minecraft modpack builder that uses the public Modrinth API, which is appropriate for its purpose, and it has no shell execution, eval, hardcoded secrets, or exfiltration patterns. The score is driven mainly by a zip-slip path traversal in nested archive extraction (unwrapNestedZip computes the target directory from the raw entry name, so entries like ../../ can write outside the pack root), plus unescaped HTML output in modlist.html and destructive cleanup of user-specified .minecraft subdirectories. Supply chain analysis found 11 known vulnerabilities in dependencies (0 critical, 7 high severity). Package verification found 1 issue.
5 files analyzed · 18 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Required
This plugin requests these system permissions. Most are normal for its category.
What You'll Need
Set these up before or after installing:
Environment variable: PACK_BUILDER_MODRINTH_API_BASE
Environment variable: PACK_BUILDER_USER_AGENT
Environment variable: PACK_BUILDER_VOLUME_MAX_MB
Environment variable: PACK_BUILDER_SKIP_DIRS
How to Install
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-dcd887-mc-pack-builder": {
"env": {
"PACK_BUILDER_SKIP_DIRS": "your-pack-builder-skip-dirs-here",
"PACK_BUILDER_USER_AGENT": "your-pack-builder-user-agent-here",
"PACK_BUILDER_VOLUME_MAX_MB": "your-pack-builder-volume-max-mb-here",
"PACK_BUILDER_MODRINTH_API_BASE": "your-pack-builder-modrinth-api-base-here"
},
"args": [
"-y",
"mc-pack-builder-mcp"
],
"command": "npx"
}
}
}Documentation
View on GitHubFrom the project's GitHub README.
mc-pack-builder-mcp
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
| Tool | Description |
|---|---|
create_pack | Create a new modpack directory structure (pack.mcmeta, version.txt, loader.txt, mods/) |
get_pack_info | Read existing modpack metadata: MC version, loader, mod count, and common issues |
search_mods | Search Modrinth for mods by keyword, returns ID, name, description, download count |
get_mod_info | Get detailed info about a Modrinth mod: version history, dependencies, supported MC versions |
resolve_dependencies | Recursively resolve a mod's full dependency chain (direct + indirect) |
check_pack_compatibility | Check installed mods against a target MC version for known incompatibilities |
generate_dependency_list | Generate a complete dependency list for all mods in an existing pack |
export_standard_pack | Export 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.htmlor plainmodlist.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
cd mc-pack-builder-mcp
npm install
npm run build
Run as standalone MCP server
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:
{
"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 variableMC_PACK_BUILDER_ROOTpointing to the project root and use the variable in the config.
Configuration
本工具零配置即可用(内置默认值,任何环境开箱即用)。以下项目可通过环境变量或项目根目录 .env 文件覆盖(复制 .env.example 为 .env):
| 变量 | 默认值 | 说明 |
|---|---|---|
PACK_BUILDER_MODRINTH_API_BASE | https://api.modrinth.com/v2 | Modrinth API 根地址,支持自建网关/代理 |
PACK_BUILDER_USER_AGENT | mc-pack-builder-mcp/1.1 | 请求 User-Agent(Modrinth 要求标明来源) |
PACK_BUILDER_VOLUME_MAX_MB | 256 | 分卷导出时每卷的最大体积(MB) |
PACK_BUILDER_SKIP_DIRS | mods,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
{
"name": "create_pack",
"arguments": {
"pack_dir": "/path/to/MyModpack",
"name": "My Modpack",
"mc_version": "1.20.1",
"loader": "fabric"
}
}
Read pack info
{
"name": "get_pack_info",
"arguments": {
"pack_dir": "/path/to/MyModpack"
}
}
Search for a mod on Modrinth
{
"name": "search_mods",
"arguments": {
"query": "sodium",
"limit": 5
}
}
Resolve dependencies
{
"name": "resolve_dependencies",
"arguments": {
"project_id": "geckolib"
}
}
Check pack compatibility
{
"name": "check_pack_compatibility",
"arguments": {
"pack_dir": "/path/to/MyModpack",
"mc_version": "1.20.1"
}
}
Generate dependency list
{
"name": "generate_dependency_list",
"arguments": {
"pack_dir": "/path/to/MyModpack"
}
}
Export standard pack (release-ready)
{
"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
npm run build
node test.js
Tests create temporary directories under os.tmpdir() and clean up after themselves. No Minecraft installation is required.
Platform Compatibility
| Tool | Windows | macOS | Linux |
|---|---|---|---|
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
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Rea
Freeby Morluto · Developer Tools
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Paperclip
Freeby Paperclipai · Developer Tools
Trending hip-hop artist momentum scores across four cultural dimensions.
Git
Freeby Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
mcp-creator-python
Freeby mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
