About mc-mod-config
mc-mod-config is an MCP server for users who manage Minecraft modpack configuration files. It handles `.cfg`, `.toml`, and `.json` files, with offline validation, comparison, and orphan detection.
Key features
- 01Parse `.cfg`, `.toml`, and `.json` configs
- 02Scan and list configuration files
- 03Check empty values, invalid numbers, and parse errors
- 04Compare configs before and after updates
- 05Find configs without a matching installed mod
- 06Provide defaults for selected popular mods
Use cases
- 01Find common issues in modpack configs
- 02Review config changes after an update
- 03Clean up configs left by removed mods
MCP support
The server exposes tools for reading, scanning, validating, comparing, and finding orphaned configs, as well as retrieving defaults. Processing can run offline.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
6Saved tool list · updated 5d ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| configPath | string | Yes | Path to the config file (.cfg, .toml, or .json) |
Details
From the project READMEmc-mod-config-mcp
MCP server for Minecraft mod configuration file management. Reads, validates, compares, and cleans up .cfg, .toml, and .json config files from modpacks.
Tools
| Tool | Description |
|---|---|
read_mod_config | Parse a single config file (.cfg, .toml, .json) and return structured data with any issues |
list_mod_configs | Recursively scan a config directory and list all configs with mod ID, format, and size |
validate_mod_configs | Validate all configs for common issues: empty values, invalid numbers, parse errors, oversized strings |
compare_mod_configs | Diff two config directories (before/after modpack update) and report added/removed/changed files |
find_orphaned_configs | Find config files whose mod JAR is no longer present in the mods/ directory |
get_mod_default_config | Return known default/baseline config for popular mods (Sodium, OptiFine, Phosphor, Lithium, Fabric API) |
Supported Config Formats
| Format | Extension | Loader |
|---|---|---|
| Forge INI-style | .cfg | Forge |
| Fabric TOML | .toml | Fabric |
| JSON | .json | Any |
Features
- Multi-format parsing — handles Forge
.cfg, Fabric.toml, and.jsonconfigs natively - Validation engine — detects empty values, invalid numbers, parse errors, and oversized strings
- Config comparison — key-level diff for tracking changes across modpack updates
- Orphan detection — matches config files against installed mod JARs plus a built-in known-mods database
- Default configs — bundled known-good defaults for popular performance mods
- Fully offline — no network calls; all data is local or built-in
Installation
Prerequisites
- Node.js 18+
- npm
Build
cd mc-mod-config-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-mod-config": {
"command": "node",
"args": ["${MC_MOD_CONFIG_ROOT}/dist/index.js"]
}
}
}
Path note: Replace
${MC_MOD_CONFIG_ROOT}with the absolute path to this project's root directory. On Windows, use forward slashes:["C:/path/to/mc-mod-config-mcp/dist/index.js"](把C:/path/to/替换成你的实际路径)。 Alternatively, set an environment variableMC_MOD_CONFIG_ROOTpointing to the project root and use the variable in the config.
Configuration
本工具零配置即可用(内置默认值,任何环境开箱即用)。以下项目可通过环境变量或项目根目录 .env 文件覆盖(复制 .env.example 为 .env):
| 变量 | 默认值 | 说明 |
|---|---|---|
MOD_CONFIG_EXTENSIONS | cfg,toml,json | 支持扫描/解析的配置文件扩展名(逗号分隔,可扩展自定义扩展名) |
MOD_CONFIG_MAX_FILE_MB | 50 | 单个配置文件大小上限(MB),超过则跳过 |
MOD_CONFIG_MAX_STRING_LEN | 500 | 校验时字符串值长度告警阈值 |
扩展已知模组默认配置库:编辑 src/mod-defaults.json(构建后为 dist/mod-defaults.json),在 defaults 下新增/覆盖模组即可,无需改代码。例如新增 "iris": { "name": "Iris", "fallbackConfig": { "enableShaders": true } }。
优先级:环境变量 > .env 文件 > 内置默认值。改动后重启 MCP server 生效。
Usage Examples
Read a config file
{
"name": "read_mod_config",
"arguments": {
"configPath": "/path/to/mods/sodium/sodium.toml"
}
}
List all configs in a modpack
{
"name": "list_mod_configs",
"arguments": {
"configDir": "/path/to/modpack/config"
}
}
Validate configs for issues
{
"name": "validate_mod_configs",
"arguments": {
"configDir": "/path/to/modpack/config"
}
}
Compare configs before and after an update
{
"name": "compare_mod_configs",
"arguments": {
"oldConfigDir": "/path/to/old-modpack/config",
"newConfigDir": "/path/to/new-modpack/config"
}
}
Find orphaned configs
{
"name": "find_orphaned_configs",
"arguments": {
"modsDir": "/path/to/modpack/mods",
"configDir": "/path/to/modpack/config"
}
}
Get default config for a mod
{
"name": "get_mod_default_config",
"arguments": {
"modId": "sodium"
}
}
Architecture
mc-mod-config-mcp/
├── src/
│ └── index.ts # MCP server + all tool implementations
├── dist/ # Compiled JavaScript (output of tsc)
├── skills/
│ └── mc-mod-config-helper.md # Trae Work skill for config management
├── __tests__/
│ └── unit.test.ts # Unit tests (fully offline)
├── package.json # Node.js dependencies (@modelcontextprotocol/sdk, zod)
├── tsconfig.json # TypeScript config (CommonJS output)
└── .gitignore
The MCP uses the official @modelcontextprotocol/sdk v1.x with McpServer and StdioServerTransport.
Testing
npm run build
npm test
All unit tests are fully offline and do not require a Minecraft installation.
Platform Compatibility
| Tool | Windows | macOS | Linux |
|---|---|---|---|
read_mod_config | ✅ | ✅ | ✅ |
list_mod_configs | ✅ | ✅ | ✅ |
validate_mod_configs | ✅ | ✅ | ✅ |
compare_mod_configs | ✅ | ✅ | ✅ |
find_orphaned_configs | ✅ | ✅ | ✅ |
get_mod_default_config | ✅ | ✅ | ✅ |
All tools use cross-platform Node.js fs and path APIs. All paths are resolved as absolute paths before processing. The Forge .cfg parser handles sections, type detection, and quoted values; the Fabric .toml parser handles nested tables and arrays.
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.