minecraft开发mcp
用于人工智能辅助Minecraft开发的MCP服务器。
它帮助AI代理在编写Minecraft修改代码之前检查真实的项目证据。它适用于Java mod项目、KubeJS modpack、数据包、资源包、Gradle工作区、崩溃日志、本地mod jar、嵌套的JarJarJar依赖关系、映射和可选的离线文档包。
公共工具表面有意地很小:客户端通常运行 mc-developing-mcp 二进制并调用一个MCP工具, mc_develop.
为什么要使用它?
通用编码代理经常在Minecraft项目上浪费上下文,因为有用的信息分散在Gradle文件、生成的ProbeJS声明、本地jar、崩溃日志、数据包JSON、资源包资产和特定于版本的API中。
minecraft-developing-mcp 为代理人提供了一种专注的提问方式:
| 您正在尝试执行此操作 | MCP可以先检查什么 |
|---|---|
| 修复modpack崩溃 | 日志、缺失的类、混入目标、元数据、所有者jar、嵌套的JarJar内容。 |
| 编写或修复KubeJS | KubeJS文件夹,ProbeJS .d.ts、片段、注册表、项目、事件和诊断。 |
| 处理Java mod | Gradle依赖关系、Maven存储库、源jar、Java诊断、映射和本地源索引。 |
| 编辑数据包 | 包根、资源位置、版本配置文件、迁移警告和香草数据包配置文件。 |
| 编辑资源包/客户端视觉效果 | 资源、模型、项目引用、资源路径、客户端渲染提示和着色器引用挂钩。 |
| 使用离线文档 | 在本地缓存中显式安装MDM资源包和SQLite索引。 |
目标不是取代编码代理。目标是让代理人停止猜测,从项目证据开始。
安装
稳定安装:
npm install -g minecraft-developing-mcp运行服务器:
mc-developing-mcp对于MCP客户,首选 npx 因此,该项目易于更新:
{
"mcpServers": {
"minecraft-developing": {
"command": "npx",
"args": ["-y", "--package", "minecraft-developing-mcp@latest", "mc-developing-mcp"]
}
}
}要求:
- Node.js
>=22.5.0 - 支持stdio服务器的MCP客户端
- 当您需要特定于工作区的证据时,可以使用Minecraft项目或modpack root
- 当您需要Gradle、Java LSP/JDTLS、ForgeGradle/NeoForgeGradle、源代码生成或Minecraft mod项目诊断时,可以使用本地Java JDK。MCP可以在没有Java的情况下检查一些文件,但真正的Java mod证据需要与项目本身所需的JDK类型相同的JDK。
Minecraft开发的推荐JDK基线:
| Minecraft目标 | 典型的JDK |
|---|---|
1.18.2 到 1.20.1 | JDK 17 |
1.20.5 到当前的现代版本 | 除非加载器/项目另有说明,否则JDK 21 |
集 JAVA_HOME 或者使用Gradle工具链选择的JDK。如果Java诊断或Gradle证据看起来不完整,请首先验证:
java -version
./gradlew --version基本使用
请您的MCP客户端使用 mc_develop 在编写代码或诊断Minecraft问题之前。
请求示例:
{
"requestText": "This modpack crashes during startup. Find the likely missing class owner before suggesting a fix.",
"workspaceRoot": "/path/to/minecraft-or-project"
}KubeJS示例:
{
"requestText": "Inspect ProbeJS/KubeJS context, then help fix this recipe script.",
"workspaceRoot": "/path/to/PrismLauncher/instances/Example/minecraft"
}数据包/资源包示例:
{
"requestText": "Check whether this resource location and model path are valid for this pack before editing assets.",
"workspaceRoot": "/path/to/resourcepack-or-modpack"
}响应是代理的紧凑证据:检测到的工作区事实、相关文件、包状态、路由决策、警告和后续操作。
结构化输出
mc_develop 返回人类可读的文本和 structuredContent结构化输出适用于需要可靠字段而不是解析散文的代理和MCP客户端。
顶级摘要目前包括:
| 字段 | 它为代理提供了什么 |
|---|---|
workspacePreparation | 路由准备就绪、检测到的工作区形状、缺少的先决条件和下一个调用模式。 |
crashSignals | 压缩崩溃/日志信号,如异常类、所有者提示、资源路径和与FTB相关的错误。 |
javaDiagnostics | Java诊断路由运行时的Java/LSP诊断计数和代表性诊断。 |
kubeJsQuality | KubeJS脚本质量警告和从KubeJS/ProbeJS路由收集的证据。 |
clientVisualVerifier | 面向资源、模型、渲染、UI和着色器的工作的客户端视觉证明链状态 |
这些总结是故意肤浅的切入点。当代理需要详细信息时,它应该遵循引用的证据块和建议 nextCallPatterns 而不是猜测或发出无关的搜索。
可选离线资源
npm包不会捆绑生成的大型数据集。离线文档和版本配置文件通过MDM资源发布单独分发,仅在明确请求时安装。
当前公共资源清单:
https://github.com/PickAID/mdm-sources/releases/download/mdm-resources-v0.2.0/mdm-release-manifest.json从一个不下载任何内容的发现调用开始:
{
"requestText": "Check whether an offline docs package would help this task."
}之后 structuredContent.resourceActions.actions 建议一个软件包,用户确认下载,用建议的补丁再次调用,然后 downloadPolicy: "allowed":
{
"requestText": "Install the compact offline docs index and use it for this task.",
"mdmReleaseInstall": {
"manifestUrl": "https://github.com/PickAID/mdm-sources/releases/download/mdm-resources-v0.2.0/mdm-release-manifest.json",
"packageId": "core-docs-search-sqlite",
"downloadPolicy": "allowed"
}
}推荐的渐进式流量:
- 问
mc_develop对于没有mdmReleaseInstall. - 检查
structuredContent.resourceActions.actions. - 如果建议的套餐合适,请致电
mc_develop再次与该行动inputPatch.mdmReleaseInstall,改变downloadPolicy从disabled到allowed只有在用户确认后。 - 下一个结果可以重用本地运行时缓存中已安装的文档/源索引工件。
常见资源包类型:
| 类型 | 示例 |
|---|---|
| 文档索引 | core-docs-search-sqlite |
| 数据包配置文件 | minecraft-1.20.1-vanilla-datapack-profile |
| 资源包配置文件 | minecraft-1.20.1-vanilla-resourcepack-profile |
| 普通模式文档 | vanilla-schema-docs |
| 映射配置文件 | minecraft-1.20.1-yarn-mapping-profile |
| 源配置文件/索引 | minecraft-1.20.1-vanilla-source-profile |
npm包不包括MDM包。释放包只是一个运输和验证容器;运行时缓存将请求的包工件和本地私有索引存储在 MC_DEVELOPING_MCP_RUNTIME_ROOT普通数据包/资源包数据是根据需求从Mojang分发元数据生成的。私有modpack缓存、生成的Minecraft源代码、ProbeJS输出、本地jar索引和用户jar派生包不应提交到此存储库。
Vanilla数据包/资源包解释文档生成于 mdm-sources 从 SpyglassMC/vanilla-mcdoc 和 misode/misode.github.ioThe vanilla-schema-docs bundle内部化了紧凑的mcdoc模式预览、上游哈希和misode生成器/解释器引用,然后在发布前通过预定的上游更新工作流进行刷新。
配置
环境变量:
| 变量 | 目的 |
|---|---|
MC_DEVELOPING_MCP_WORKSPACE_ROOT | 如果请求未通过,则默认工作区或modpack根目录 workspaceRoot. |
MC_DEVELOPING_MCP_RUNTIME_ROOT | 运行时/缓存根。默认为 ~/.cache/mc-developing-mcp/runtime. |
MC_DEVELOPING_MCP_PRISM_ROOT | 可选PrismLauncher根提示。MCP不得假定Prism元数据存在。 |
MC_DEVELOPING_MCP_YARN_MAPPING_URL_TEMPLATE | 可选的Tiny v2 Yarn映射URL模板。支持 {version}, {minecraftVersion},以及 {family}. |
MC_DEVELOPING_MCP_YARN_MAVEN_BASE_URL | 用于Yarn映射工件发现的可选Fabric Maven基本URL。 |
MC_DEVELOPING_MCP_MOJANG_VERSION_MANIFEST_URL | 用于获取Mojmap映射的可选Mojang版本清单URL。 |
MC_DEVELOPING_MCP_PARCHMENT_MAVEN_BASE_URL | 用于获取羊皮纸元数据的可选羊皮纸Maven基本URL。 |
MDM_SOURCES_ROOT | 可选本地 mdm-sources 检查资源开发情况。 |
CURSEFORGE_API_KEY | 可选CurseForge API密钥。创建一个 https://console.curseforge.com/?#/api-keys. |
SHADERTOY_APP_KEY | 可选ShaderToy API键。如果没有它,请使用基于浏览器的回退和精简摘要。 |
仅 MC_DEVELOPING_MCP_* 当前设置支持环境名称。
开发人员设置
pnpm install
pnpm build
pnpm test目标服务器测试:
pnpm --filter minecraft-developing-mcp test发布检查:
pnpm publish:check
pnpm publish:dry-run
pnpm publish:install-smoke
pnpm publish:release-check发布模拟运行和安装烟雾很重要。他们验证公共包是否不公开内部工作区依赖关系,以及安装的 mc-developing-mcp 二进制文件可以初始化和公开 mc_develop.
建筑
这是一个TypeScript单仓库。
apps/mcp-server/ Public stdio MCP server package.
apps/agent-runtime/ Private runtime app for local experiments.
packages/* Internal libraries bundled into the public server package.
docs/architecture/ Runtime and routing design notes.
docs/specs/ Package/resource/source acquisition specs.
docs/standards/ KubeJS and client visual standards.
scripts/ Publish guards, pack dry-run, and install smoke scripts.公共MCP API应保持渐进和小型化。通常应在后面添加新功能 mc_develop 路由,而不是像许多无关的MCP工具那样暴露。
命名和包策略
公共包名称应为:
minecraft-developing-mcp二进制仍然是:
mc-developing-mcp旧范围的预发布包不是推荐的公共安装路径。请使用上述未经筛选的稳定软件包。
许可证
该项目根据 PolyForm非商业许可证1.0.0.
本许可证不授予商业用途。如果您需要商业条款,请联系版权持有人。
