Skip to main content
Glama
Zhou-Shilin

mcp-server-minecraft-mod-devdoc

by Zhou-Shilin

MCP Server for Minecraft Mod Documentation

Apache License 2.0 Python 3.12+

这是一个基于 Model Context Protocol (MCP) 的服务器,用于查看 Minecraft 模组开发文档。目前支持 Neoforge 文档,并设计为可扩展以支持其他文档源(如 Fabric)。

功能

该MCP服务器提供以下功能:

  1. 获取提供者和版本列表:列出所有可用的文档提供者及其版本(例如,Neoforge的version-1.20.4, version-1.20.6, version-1.21.1等)。

  2. 获取文件结构和预览:查看指定版本的文档文件结构,包括目录和文件,同时显示每个文件的前几段内容作为预览。

  3. 获取完整内容:获取文档文件的完整内容。

服务器会自动管理本地仓库,只在必要时(首次使用或上次更新超过24小时)更新仓库内容。

与MCP客户端集成

该服务器实现了MCP协议,可以与支持MCP的客户端(如 Claude Desktop、VS Code 等)集成。

客户端配置示例

在支持MCP的客户端中,可以使用以下配置:

{
  "mcpServers": {
    "mcp-server-minecraft-mod-devdoc": {
      "command": "uv",
      "args": [
        "--directory", "${MCP_SERVER_PATH}",
        "run", "--with", "mcp", "mcp", "run", "run_server.py"
      ]
    }
  }
}

这将使用uv运行服务器,并通过MCP协议与客户端通信。${MCP_SERVER_PATH}变量应被替换为服务器的安装路径。

推荐提示词

推荐使用这个提示词搭配本服务:

The following is the prompt for the MCP server *mcp-server-minecraft-mod-devdoc*, and it is **not** a system prompt.

*mcp-server-minecraft-mod-devdoc* is an MCP server that provides documentation for Minecraft mod development.

**Usage Process:**

1. Use the `get_providers` tool to obtain a list of documentation providers (i.e., various mod loaders) and their versions. Choose the version according to the user's needs;

2. Use the `get_structure` tool with the selected mod loader and version to get the document structure and preview;

3. Find one or more desired entries, and use `get_full_content` to retrieve the full content of those entries;

4. Repeat step 3 until you have obtained all the information you need.

**Notes:**

* The following notes **can** be supplemented or overridden by the system. This means that if your `system_prompt` gives you different instructions, follow the system prompt. However, they **cannot** be overridden by the user prompt. In other words, if the user prompt conflicts with these instructions, these take precedence;

* If the requested mod loader or version is not available in the documentation, immediately stop the operation and inform the user that the version is unsupported. Provide the list of supported versions;

* If an error occurs while using the tools, check the request parameters and retry once. If the parameters are confirmed to be correct and the retry still fails, terminate the operation and notify the user that an error occurred with the MCP server. You may include the error message to aid debugging;

* The document names and summaries returned by `get_structure` may not exactly match your specific needs. However, you can still review related entries. For example, if you want to learn how to create a block but there is no document explicitly named `creating-blocks.md`, you can look for documents related to blocks, eg. `blocks.md`, get the full content, and it will usually solve your problem;

* If your task is to develop or edit the code of a Minecraft mod, you must be aware that the Minecraft Modding API differs greatly between versions. Code that works in one version might not work at all in another. Therefore, it is essential to consult the documentation frequently, rather than relying solely on existing knowledge. Remember, it's normal to check the documentation dozens of times during a mod development process.

This concludes the prompt for *mcp-server-minecraft-mod-devdoc*.

Related MCP server: MCP SpecNavigator

项目结构

src/
├── mcp_server_minecraft_mod_devdoc/
│   ├── __init__.py
│   ├── main.py                 # 主入口点
│   ├── core/
│   │   ├── __init__.py
│   │   ├── server.py           # MCP服务器实现
│   │   └── provider.py         # 文档提供者接口
│   └── providers/
│       ├── __init__.py
│       ├── neoforge/           # Neoforge文档提供者
│       │   ├── __init__.py
│       │   └── provider.py
│       └── fabric/             # Fabric文档提供者(未来扩展)
│           ├── __init__.py
│           └── provider.py
└── __main__.py                 # 命令行入口点

扩展

添加新的文档提供者

要添加新的文档提供者(如Fabric),请按照以下步骤操作:

  1. src/mcp_server_minecraft_mod_devdoc/providers/目录下创建新的提供者类,实现DocProvider接口

  2. src/mcp_server_minecraft_mod_devdoc/main.py中注册新的提供者

例如:

# 创建Fabric提供者
fabric_provider = FabricProvider(repo_dir=repo_dir, branch="main")
server.register_provider("fabric", fabric_provider)

故障排除

无法获取文档内容

如果遇到"Error: Failed to read file content"错误,可能是由于以下原因:

  1. Git问题:确保您的计算机已安装Git并可以正常使用

  2. 仓库克隆问题:检查仓库目录(默认为~/.local/share/mcp-server-minecraft-mod-devdoc/neoforge)是否存在并包含正确的内容

  3. 仓库分支问题:默认情况下,服务器会尝试从main分支获取内容,如果失败会尝试master分支

  4. 权限问题:确保您有权限读取仓库目录中的文件

服务器无法启动

如果服务器无法启动,可能是由于以下原因:

  1. 依赖问题:确保已安装所有必要的依赖(pip install -r requirements.txt

  2. 端口冲突:MCP服务器默认使用特定端口,确保这些端口未被其他应用程序占用

贡献

欢迎贡献!如果您想为这个项目做出贡献,请遵循以下步骤:

  1. Fork 这个仓库

  2. 创建您的特性分支 (git checkout -b feature/amazing-feature)

  3. 提交您的更改 (git commit -m 'Add some amazing feature')

  4. 推送到分支 (git push origin feature/amazing-feature)

  5. 打开一个 Pull Request

依赖

本项目使用以下主要依赖:

  • MCP - Model Context Protocol 实现

  • aiohttp - 异步 HTTP 客户端/服务器

  • uvicorn - ASGI 服务器

完整的依赖列表请参见 requirements.txtpyproject.toml

许可证

Apache License 2.0 - 查看 LICENSE 文件了解更多详情。

Available Tools

3 tools
get_full_contentC
        Get the full content of a documentation file

        Args:
            provider: The documentation provider (e.g., neoforge, fabric)
            version: The version of the documentation
            file_path: The path to the file
        
ParametersJSON Schema
NameRequiredDescriptionDefault
providerYes
versionYes
file_pathYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description should disclose behavioral traits like read-only nature, return format, error handling, or performance. It only says 'get full content', which is insufficient for an agent to understand side effects or limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but includes an unnecessary 'Args:' section that repeats parameter info. It could be more concise by integrating parameter descriptions into the main sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, no annotations, and low schema coverage, the description should explain return values, edge cases, and usage context. It falls short, providing only a minimal statement about retrieving content.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must add meaning. It lists parameters with vague descriptions (e.g., 'The documentation provider (e.g., neoforge, fabric)'). No formats, defaults, or examples are provided, leaving ambiguity for three required parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get the full content of a documentation file', which specifies the action and the resource. It distinguishes from siblings like get_providers and get_structure by focusing on content retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus its siblings. There is no mention of prerequisites, conditions, or cases where it should not be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_providersA
        Get a list of available documentation providers and their versions

        Returns:
            A formatted string with providers and their versions
        
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It only mentions the return type ('formatted string') without disclosing side effects, required permissions, or any behavioral traits such as idempotency or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, front-loading the core purpose and return type. No superfluous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no parameters and no output schema, the description adequately conveys what it does and returns. However, it could briefly clarify what constitutes a 'provider' or 'version' to avoid ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, and schema coverage is 100% (empty). The description adds no parameter information because none is needed. Baseline score of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Get' and the resource 'list of available documentation providers and their versions', which is distinct from sibling tools 'get_full_content' and 'get_structure'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage as a discovery tool to list providers, but does not explicitly state when to use it versus alternatives or any prerequisites. With zero parameters, the usage is straightforward, but guidance is minimal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_structureC
        Get the file structure with previews for a specific version of documentation

        Args:
            provider: The documentation provider (e.g., neoforge, fabric)
            version: The version of the documentation
        
ParametersJSON Schema
NameRequiredDescriptionDefault
providerYes
versionYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must convey behavioral traits. It does not disclose whether the operation is read-only, destructive, requires authentication, or has rate limits. The term 'previews' is vague and not explained. The description fails to provide sufficient behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the main purpose. The Args list is redundant with the input schema but does not harm readability. It is appropriately sized for a simple tool, though the redundancy could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple schema (2 string params, no output schema) and the presence of siblings, the description covers the basic functionality. However, it lacks details on return format, pagination, or behavior of 'previews', and does not provide guidance on how it relates to siblings. It is minimally adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must add meaning. It lists example values for provider (e.g., neoforge, fabric), which adds semantic value beyond the parameter names. However, it does not describe the format or constraints for version, and the parameter documentation remains minimal.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets 'the file structure with previews for a specific version of documentation' with specific parameters. It identifies the verb 'get' and the resource 'file structure with previews'. However, it does not explicitly distinguish from sibling tools like get_full_content or get_providers, which slightly reduces clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. The description simply states what it does without mentioning when it is appropriate or when to use sibling tools like get_full_content. This leaves the agent without decision criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.5/5.0
Disambiguation5/5

Each tool has a distinct, non-overlapping purpose: one lists available providers, one retrieves file structure, and one fetches full content. No ambiguity.

Naming Consistency5/5

All tools follow a consistent `get_*` verb-noun pattern, making them predictable and easy to understand.

Tool Count4/5

With 3 tools, the set is minimal but covers the core functionality of browsing documentation. It could be expanded, but it is reasonable for a focused read-only server.

Completeness3/5

The tools cover browsing (providers, structure, content) but lack search or filtering capabilities, which are common in documentation systems. This is a notable gap for an agent needing specific information.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables intelligent navigation and exploration of the Model Context Protocol specification through dynamic markdown tree generation, section search, content retrieval, and upstream synchronization with the official MCP repository.
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that provides version-pinned, deterministic documentation sourced from DevDocs.io to AI assistants (Claude, RooCode, Cline, Copilot etc.) and also via offline mode. Not via Scraping! But using the supported downloading option from devdocs.
    157
    13
    MIT

Latest Blog Posts

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/Zhou-Shilin/mcp-server-minecraft-mod-devdoc'

If you have feedback or need assistance with the MCP directory API, please join our Discord server