mc-modpack-mcp
This server is an MCP-based Minecraft modpack diagnostic tool that inspects modded Minecraft instances, detects problems, and provides AI-assisted analysis.
List Java runtimes from PCL launcher config (
get_java_versions)Read instance metadata like Minecraft version, loader, Java requirements, JVM args, and mod count (
get_version_info)Scan mods folder and filter mods by name/regex (
list_mods)Detect known mod conflicts (e.g., sodium+embeddium+iris, duplicate JEI/Fabric API) with replacement suggestions (
detect_conflicts)Check mods folder cleanliness for non-JAR files, scripts, source/dev jars (
scan_cleanliness)Read and filter logs by level (INFO/WARN/ERROR/FATAL), keyword, and tail lines (
read_log)Find crash reports in crash-reports directory (
find_crash_reports)Analyze a crash report to extract exception type, messages, stack info, and summary (
analyze_crash)Query Modrinth API for mod dependencies, compatible versions, and loader info (
check_mod_dependencies)AI-powered full diagnostics via DashScope/通义千问 (requires API key) (
ai_diagnose)Works cross-platform on Windows/macOS/Linux for all tools except
get_java_versionswhich is Windows-only (PCL-based)
Provides tools for querying the Modrinth API to check mod dependencies and compatibility for Minecraft mods.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mc-modpack-mcpanalyze my latest crash report and list possible mod conflicts"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mc-modpack-mcp
MCP (Model Context Protocol) server for Minecraft modpack diagnostics. Supports Fabric/Forge mod conflict detection, log analysis, crash reports, and AI-powered intelligent diagnosis. Core diagnostic engine is fully offline; optional AI analysis uses China-based DashScope (通义千问) API. get_java_versions requires PCL launcher on Windows; all other tools work cross-platform.
Features
Java version detection — reads PCL config to list all available Java runtimes with version recommendations
Version info — parses instance JSON to extract Minecraft version, loader, Java requirements, JVM args
Conflict detection — finds known problematic mod combinations from an external
rules.json(easily extensible)Cleanliness scan — detects non-JAR files, source jars, scripts in mods/ directory
Log analysis — reads latest.log with level filtering (INFO/WARN/ERROR) and keyword search
Crash report analysis — finds crash reports, classifies errors, and suggests fixes automatically
Dependency lookup — queries Modrinth API for mod version and dependency info
Human-readable output — all tools return friendly text with emojis and 💡 tips, plus JSON below
--- JSON ---CLI mode — run
npm run diagnosefor an interactive terminal-based diagnosis (no MCP needed)External rules engine — edit
src/rules.jsonto add new conflicts, crash patterns, or Java version ranges without touching code
Related MCP server: mcdev-mcp
Tools
Tool | Description |
| List all Java runtimes from PCL config |
| Read instance metadata (version, loader, Java, JVM args, mod count) |
| Scan mods/ directory, optionally filter by regex |
| Detect known mod conflicts with auto-replacement recommendations |
| Find non-JAR files, source jars, scripts in mods/ |
| Read latest.log with level/keyword/tail filtering |
| List all crash reports in crash-reports/ |
| Parse a crash report, extract exception type and summary |
| Query Modrinth API for mod deps and compatibility |
| Get replacement mod suggestions for known conflicts |
| 🤖 AI-powered full diagnostics report using 通义千问 (requires DASHSCOPE_API_KEY) |
Installation
Prerequisites
Node.js 18+
npm
A Minecraft instance (any launcher — macOS/Linux users must pass
mc_direxplicitly for all tools)
Note:
get_java_versionsreads PCL launcher config and works on Windows only. All other tools are cross-platform.
Build
cd mc-modpack-mcp
npm install
npm run buildRun as standalone MCP server
node dist/index.jsThe 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 (e.g., .mcp.json or equivalent):
{
"mcpServers": {
"mc-modpack": {
"command": "node",
"args": ["/absolute/path/to/mc-modpack-mcp/dist/index.js"]
}
}
}Usage Examples
Get Java versions from PCL
{
"name": "get_java_versions",
"arguments": {
"mc_dir": "{your_minecraft_directory}"
}
}Detect conflicts in an instance
{
"name": "detect_conflicts",
"arguments": {
"mc_dir": "{your_minecraft_directory}",
"instance_id": "rpg"
}
}Read WARN logs (last 50 lines)
{
"name": "read_log",
"arguments": {
"mc_dir": "{your_minecraft_directory}",
"instance_id": "rpg",
"level": "WARN",
"tail": 50
}
}Check mod dependencies via Modrinth
{
"name": "check_mod_dependencies",
"arguments": {
"project_id": "sodium",
"mc_version": "1.20.1",
"loader": "fabric"
}
}Architecture
mc-modpack-mcp/
├── src/
│ └── index.ts # All tool implementations + MCP server setup
├── dist/ # Compiled JavaScript (output of tsc)
├── skills/
│ └── mc-modpack-helper/
│ └── SKILL.md # Trae Work skill for modpack diagnostics
├── package.json # Node.js dependencies (@modelcontextprotocol/sdk, zod)
├── tsconfig.json # TypeScript config (CommonJS output)
├── .gitignore
├── test.js # Integration test runner
├── test_logs/ # Test output logs (gitignored)
└── backups/ # Backup snapshots from tests (gitignored)The MCP uses the official @modelcontextprotocol/sdk v1.x with McpServer and StdioServerTransport. All tools use server.tool() registration pattern compatible with the MCP SDK specification.
AI Module (src/ai.ts)
ai_diagnose 工具使用独立模块封装通义千问 API,提供:
callQwen(prompt)— 调用 Qwen 模型生成报告buildDiagnosePrompt(data)— 构建诊断 prompt,整合所有结构化数据
Skills
This repository also includes a Trae Work skill for modpack diagnostics. After cloning, copy the skill to your Trae Work skills directory:
Windows (PowerShell):
copy skills\mc-modpack-helper\SKILL.md "$env:USERPROFILE\.trae\skills\mc-modpack-helper\SKILL.md"macOS / Linux:
mkdir -p ~/.trae/skills/mc-modpack-helper
cp skills/mc-modpack-helper/SKILL.md ~/.trae/skills/mc-modpack-helper/SKILL.mdSee SKILL.md for the full skill documentation with 8-phase diagnostic workflow.
Testing
npm run build
MC_DIR=/path/to/your/.minecraft node test.jsOr on Windows (PowerShell):
$env:MC_DIR="C:\path\to\your\.minecraft"; node test.jsTests create backups before running and log results to test_logs/. See individual test log files for detailed output.
Platform Compatibility
Tool | Windows | macOS | Linux |
| ✅ Full | ⚠️ PCL-only | ⚠️ PCL-only |
| ✅ | ✅ | ✅ |
| ✅ | ✅ | ✅ |
| ✅ | ✅ | ✅ |
| ✅ | ✅ | ✅ |
| ✅ | ✅ | ✅ |
| ✅ | ✅ | ✅ |
| ✅ | ✅ | ✅ |
| ✅ | ✅ | ✅ |
All tools accept mc_dir as an explicit path. get_java_versions auto-detects PCL on Windows; on other platforms it returns a clear message when PCL config is absent.
Using the Rules Engine
All conflict rules, Java version mappings, and crash analysis patterns live in src/rules.json. You can customize them without modifying source code:
{
"conflicts": [
{
"id": "my-custom-conflict",
"name": "My Custom Conflict",
"patterns": ["mod-a", "mod-b"],
"severity": "error",
"solution": "Install only one of these mods.",
"emoji": "🔴"
}
],
"javaVersionMap": [
{ "mcFrom": "1.20.5", "mcTo": "1.20.6", "minJava": 17, "recommendedJava": 21, "notes": "..." }
],
"crashAnalysisPatterns": [
{ "keywords": ["my-error-pattern"], "category": "custom", "solution": "Do something about it." }
]
}Section | Purpose |
| Mod conflict detection rules |
| Minecraft → Java version compatibility |
| Crash report classification and fix suggestions |
CLI Usage
Run a quick interactive diagnosis without setting up MCP:
npm run diagnose
# or
MC_DIR=/path/to/.minecraft npm run diagnoseThe CLI will:
Auto-detect your Minecraft instance
Check Java runtimes (PCL on Windows)
Scan for mod conflicts
Check directory cleanliness
Review crash reports
License
MIT
Available Tools
9 toolsanalyze_crashA
解析单个崩溃报告,提取 Minecraft 版本、异常类型、错误消息、堆栈顶部信息和综合摘要。
| Name | Required | Description | Default |
|---|---|---|---|
| mc_dir | Yes | ||
| crash_file | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the full burden. It clearly indicates the tool extracts specific information and likely provides a structured summary, which is a transparent account of its observable behavior. However, it does not explicitly mention that it is read-only or whether it requires special permissions, but the analyze verb implies non-mutating behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and lists the output components without unnecessary filler. Every word contributes to understanding the tool's core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple, but the description lacks parameter guidance, usage alternatives, and any note about return format or limitations. The extraction list provides a clear idea of the output, but given no output schema and no annotations, the description is only partially complete for a robust agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not elaborate on the parameters (mc_dir, crash_file). The names imply their roles (Minecraft directory and crash file path), but the description fails to compensate for the complete lack of schema documentation, leaving the AI to infer parameter format and how they should be provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb '解析' (analyze) with a clear resource '崩溃报告' (crash report), and lists the extracted components (Minecraft version, exception type, error message, top stack info, summary). This distinguishes it from siblings like find_crash_reports or read_log, which find or read files without performing structured analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a single crash report needs analysis, but it does not explicitly state when to use this tool versus alternatives like read_log or find_crash_reports, nor does it provide exclusions. The scope is clear but without explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_mod_dependenciesA
通过 Modrinth API 查询模组的依赖信息:最新兼容版本、required/optional 依赖、MC 版本兼容列表。
| Name | Required | Description | Default |
|---|---|---|---|
| loader | No | ||
| mc_version | Yes | ||
| project_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior itself. It mentions the API source and the type of data returned, but it does not state whether the operation is read-only, any network assumptions, rate limits, or what happens if dependencies are not found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that uses a colon to list key outputs. Every phrase contributes meaningful information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple and the description covers its main purpose and outputs. However, with no annotations, no output schema, and no parameter-level explanations, it leaves gaps about loader semantics and expected result format that could affect correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description only implicitly references mc_version through the 'MC version compatibility list' phrase. It does not explain project_id's role or the optional loader parameter's format/effect, leaving the agent to infer from field names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: querying mod dependency information via the Modrinth API. It names specific outputs (latest compatible version, required/optional dependencies, MC version compatibility list) and distinguishes it from siblings like get_version_info and detect_conflicts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by the purpose (when you need dependency info), but there is no explicit guidance about when to use this tool versus siblings or any exclusions. No alternative tools are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_conflictsA
扫描 mods/ 目录中的已知冲突组合:渲染器冲突(sodium+embeddium+iris)、UI Lib 重复、JEI 重复、Fabric API 重复等。
| Name | Required | Description | Default |
|---|---|---|---|
| mc_dir | Yes | ||
| instance_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that the scan targets known conflict combinations, but doesn't specify whether it modifies anything, read-only nature, or what actions it takes. It's fairly clear it's a read operation, but lacks details on output or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the core purpose, and provides concrete examples of conflict types. It's concise and structured well, though it could benefit from a brief mention of parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (checking known conflicts) and absence of output schema or annotations, the description gives a reasonable overview but omits parameter semantics and output details. It is adequate but not fully complete for an agent to invoke without further inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description does not explain the parameters (mc_dir and instance_id). With no parameter descriptions in the schema and none in the text, the agent must infer their meaning, which is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool scans the mods/ directory for known conflict combinations, listing specific examples (renderer conflicts, UI lib duplicates, JEI duplicates, Fabric API duplicates). This distinguishes it from siblings like check_mod_dependencies (which likely checks individual dependencies) and scan_cleanliness (which may check something else).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when checking for known mod conflicts, but provides no explicit guidance on when to use this over alternatives like check_mod_dependencies. There are no explicit exclusions or alternative suggestions, falling short of full usage guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_crash_reportsA
列出 crash-reports/ 目录中的所有崩溃报告,返回文件名和修改时间。
| Name | Required | Description | Default |
|---|---|---|---|
| mc_dir | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the read-only nature (listing) and the return values, but lacks details on error handling, directory existence, or permission requirements. This is adequate for a simple list operation but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence. It front-loads the core action and return values without any filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool, the description covers the main action and return values. However, the unexplained required parameter mc_dir leaves a significant gap, and the absence of an output schema means the return format is only partially specified. This is minimally viable but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter mc_dir has no schema description (0% coverage) and the description never mentions it. The agent is left guessing what mc_dir means (likely Minecraft directory, but not stated). The description fails to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all crash reports in the crash-reports/ directory and returns file names and modification times. This specific verb-resource pairing distinguishes it from siblings like analyze_crash and read_log.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool (when you need to enumerate crash reports) but does not explicitly mention exclusions or alternatives. The context is clear but doesn't state 'don't use for analyzing specific crashes' or similar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_java_versionsA
读取 PCL launcher 配置文件,列出所有可用的 Java 运行时版本及其路径。不传 mc_dir 时自动探测常见位置。
| Name | Required | Description | Default |
|---|---|---|---|
| mc_dir | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that it reads a configuration file and auto-probes common locations when no directory is given. This indicates a read-only, non-destructive operation, but does not explicitly state side effects or permissions. Since no annotations are present, the description carries full transparency burden; it is mostly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two clear sentences. It efficiently conveys the tool's purpose and the parameter's optional behavior without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides sufficient context for the tool's core functionality and the parameter's role. It does not detail output format or error handling, but given the simple nature of the tool and lack of output schema, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains the behavior when 'mc_dir' is omitted (auto-probing), which adds meaning beyond the bare schema. However, it does not clarify what 'mc_dir' represents (e.g., Minecraft directory vs. PCL config directory) or its expected format, leaving some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: reads the PCL configuration file and lists all available Java runtime versions and their paths. It also mentions automatic probing when 'mc_dir' is not provided, which further clarifies its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when Java version info is needed), but does not explicitly contrast it with sibling tools or provide specific scenarios. No alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_version_infoB
读取指定 Minecraft 版本的 version.json,返回游戏版本、Loader 版本、Java 要求、JVM 参数、模组数量等元数据。
| Name | Required | Description | Default |
|---|---|---|---|
| mc_dir | Yes | ||
| instance_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden. It clearly indicates a read operation (reading a file and returning metadata), but it does not explicitly mention side effects, permissions, or potential pitfalls (e.g., what happens if the file is missing). It is transparent about its primary behavior but lacks depth on edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that conveys the essential purpose and output without unnecessary elaboration or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides a good overview of the output (metadata list) and the input file (version.json), but it lacks details on error handling, return structure, or any prerequisites. For a read-only tool, this might be adequate, but the absence of output schema or example usage leaves the context incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema defines two parameters (mc_dir and instance_id) with only type information. The description does not explain what these parameters represent or how they should be used. There is no mention of their purpose, format, or expected values, leaving the user to infer their meaning from the names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: reading version.json of a specified Minecraft version and returning specific metadata such as game version, Loader version, Java requirements, JVM parameters, and mod count. This is distinct from the sibling tools, which focus on other aspects like mod listing, conflict detection, and log reading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus the alternatives. It is implied that it is for retrieving version information, but no direct comparison or contextual cues are given, such as 'use this when you need version metadata' or 'for mod-related issues, use list_mods instead.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_modsB
扫描指定实例的 mods/ 目录,列出所有 JAR 文件及其基本信息。支持按名称过滤(filter 参数,支持正则)。
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| mc_dir | Yes | ||
| instance_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It only mentions scanning and listing, but does not state whether the operation is read-only, what happens if the directory is missing, or any side effects. There is no mention of permissions, errors, or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using two short sentences to convey the primary purpose and a key parameter detail. There is no wasted text, and it is front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is the only source of context. It does not mention the output format, what 'basic information' includes, or behavior in edge cases (e.g., empty directory). This leaves significant gaps for an agent trying to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It does explain that 'filter' supports regex and is for name filtering, but it does not explicitly define 'mc_dir' and 'instance_id' beyond the schema's type declarations. The description implies they specify the instance and directory, but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: scanning the mods/ directory of a given instance and listing JAR files with basic information. It also mentions the regex-based filtering capability, distinguishing it from sibling tools like get_java_versions or detect_conflicts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives, nor any conditions or exclusions. It simply describes the function without contextualizing its use case relative to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_logC
读取 Minecraft 实例的 latest.log,支持按日志级别(INFO/WARN/ERROR)和关键词过滤。
| Name | Required | Description | Default |
|---|---|---|---|
| tail | No | ||
| level | No | ||
| mc_dir | Yes | ||
| keyword | No | ||
| instance_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
没有注解,描述需承担全部行为披露责任。描述仅提及读取和过滤,未说明是否只读取尾部、返回格式、错误处理、是否会因大文件阻塞等行为。tail参数存在但未在描述中解释,透明度不足。
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
描述仅一句话,非常简洁,但牺牲了必要信息。虽然没有冗余内容,但信息量不足以支持正确使用,简洁性尚可但内容不足。
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
5个参数(2个必需),无输出模式,无注解。描述未涵盖tail参数、返回行为、异常处理等,对于读取日志的工具来说信息严重不完整,仅提及过滤功能,整体不足。
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
模式覆盖率为0%,描述需要补偿。描述提到日志级别和关键词过滤,对应level和keyword参数,但未解释mc_dir、instance_id和tail参数的含义。虽然提供了部分参数语义,但远不充分。
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
描述明确说明工具读取Minecraft实例的latest.log,并支持按日志级别和关键词过滤,动词和资源明确。虽然没有明确提及尾部读取,但与兄弟工具(如find_crash_reports、analyze_crash)有区分,目的清晰。
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
描述没有说明何时使用此工具而非其他工具,也没有提及替代品或使用场景。只有基本的读取和过滤说明,没有提供使用指导。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_cleanlinessB
扫描 mods/ 目录中的非 JAR 文件:.ps1/.bat 脚本、.txt 文本、source-jar、dev jar 等。
| Name | Required | Description | Default |
|---|---|---|---|
| mc_dir | Yes | ||
| instance_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
没有 annotations,描述的核心“扫描”暗示只读操作,并列出检查内容,但没有说明是否只读、是否有副作用、输出形式或对文件的具体处理方式。比完全没说明好,但仍有明显信息缺口。
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
单句描述,信息高度集中,先说明动作和对象,再补充具体文件类型,没有冗余内容。
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
工具无输出 schema、无注释、无参数说明,描述仅覆盖扫描范围和部分关注点,未说明返回值、操作影响或参数含义。对于两个必填参数的工具而言,信息不足以让代理准确预期结果。
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
输入 schema 中两个参数均无描述,schema description coverage 为 0%,描述文本也没有解释 mc_dir 和 instance_id 的用途或格式,参数语义完全未得到补充。
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
描述使用明确的动词“扫描”并指向特定资源“mods/ 目录中的非 JAR 文件”,且列举了目标文件类型(.ps1/.bat、.txt、source-jar、dev jar),与 list_mods 等兄弟工具形成区分。
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
描述语义上暗示了“扫描非 JAR 文件”,与 list_mods 之类的工具形成对比,但没有显式说明何时使用该工具以及何时使用其他替代工具,没有清晰的 when/when-not 指导。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
9 tool updates
v1.0.0- First observed
analyze_crash - First observed
check_mod_dependencies - First observed
detect_conflicts - First observed
find_crash_reports - First observed
get_java_versions - First observed
get_version_info - First observed
list_mods - First observed
read_log - First observed
scan_cleanliness
TDQS
Most tools target distinct resources and actions, such as listing mods versus scanning for conflicts. The only potential confusion is between get_java_versions and get_version_info, but the descriptions clearly differentiate Java runtimes from Minecraft version metadata. Crash-related tools are also distinct in purpose: read_log, find_crash_reports, and analyze_crash each handle a different stage.
All tool names follow a consistent verb_noun snake_case pattern, using verbs like get, list, detect, scan, read, find, analyze, and check. There are no mixed conventions or vague names, making the API predictable and readable.
With 9 tools, the server is well-scoped, covering environment information, mod scanning, dependency checks, and crash analysis without unnecessary bloat. This falls comfortably within the ideal 3-15 tool range and each tool contributes to the modpack management domain.
The tool set provides solid coverage for diagnostics and information gathering: Java runtimes, Minecraft version metadata, mod listing, conflict detection, cleanliness scanning, log reading, and crash report analysis. Minor gaps include lacking instance-level management (e.g., adding/removing mods) and no direct local mod metadata lookup, but the server's apparent focus on analysis is well served.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Publish and discover MCP servers via the official MCP Registry. Powered by HAPI MCP server.
Scan any MCP server for tool-poisoning, security, auth & license. Trust score before install.
An MCP server that automatically collects feedback on your MCP server.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn external MCP server for diagnosing Minecraft servers via backup analysis, local runtime, or Docker runtime, offering tools for plugin inspection, log analysis, configuration linting, and performance diagnostics.1MIT
- AlicenseAqualityAmaintenanceAn MCP server that empowers AI coding agents to work effectively with Minecraft mod development, providing static analysis of decompiled source code and runtime interaction with a running Minecraft instance.314413MIT
- FlicenseNot gradedqualityCmaintenanceMCP server that helps AI agents inspect Minecraft project evidence (crash logs, mod files, datapacks) before writing development code.2-
- FlicenseBqualityBmaintenanceMCP server for searching, browsing, and analyzing decompiled Minecraft source code locally. Supports symbol lookup, text search, reference lookup, and lightweight RAG.11-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dcd887/mc-modpack-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server