Skip to main content
Glama
mnooseman

MC Source MCP Server

by mnooseman

MC Source MCP Server

An MCP server that allows you to explore and decompile Minecraft source code, specifically targeting versions released with unobfuscated mappings (e.g., experimental snapshots like 1.21.11_unobfuscated or 25w45a_unobfuscated).

Features

  • List Versions: See available Minecraft versions, including special "unobfuscated" releases.

  • Search Classes: Find class files within a specific version's JAR.

  • Decompile: Decompile .class files on-the-fly using Vineflower (WASM) to view readable Java source code.

  • Caching: Efficiently caches downloaded JARs and open ZIP file handles for performance.

Related MCP server: Minecraft Dev MCP

Tools

list_versions

Lists available Minecraft versions.

  • type: Filter by release, snapshot, or unobfuscated (recommended).

  • limit: Number of versions to return.

search_classes

Searches for a class in a specific version.

  • version: The version ID (e.g., 1.21.11_unobfuscated).

  • query: The class name to search for (e.g., SharedConstants).

decompile_class

Decompiles a specific class.

  • version: The version ID.

  • className: The full path to the class (e.g., net/minecraft/SharedConstants).

Setup

npm install
npm run build

Usage

Configure your MCP client to run:

{
  "mcpServers": {
    "mcsrc": {
      "command": "node",
      "args": ["/path/to/mcsrc-mcp/dist/index.js"]
    }
  }
}

IDE Access from Windows (via HTTP/SSE)

If your IDE is running on Windows and cannot directly spawn the WSL process, you can run the server in HTTP mode.

  1. Start the server in WSL:

    npm run start:http

    This will start an HTTP server on port 3000 (accessible as localhost:3000 from Windows).

  2. Configure your MCP Client: Point your client to the Streamable HTTP endpoint:

    • URL: http://localhost:3000/mcp

    (No arguments needed for the client configuration, just the URL).

Available Tools

3 tools
decompile_classDecompile ClassB

Decompile a specific Minecraft class

ParametersJSON Schema
NameRequiredDescriptionDefault
versionYesThe Minecraft version ID (e.g. "1.20.4")
classNameYesThe full class path to decompile (e.g. "net/minecraft/ChatFormatting.class" or "net/minecraft/ChatFormatting")

TDQS

B3/5.0
Behavior1/5

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

No annotations are provided, so the description alone must disclose behavior. It only states the action without explaining what the decompiled output looks like, potential errors, side effects, or permissions required. This is a significant gap.

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 a single, front-loaded sentence with no unnecessary words. It is appropriately sized for the tool's simplicity, even though it lacks depth in other dimensions.

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?

With no output schema and no annotations, the description should provide more context about the decompilation result and usage. It does not mention how the output is returned or when this tool is appropriate, leaving the agent under-informed.

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 coverage is 100%, with clear descriptions for both 'version' and 'className', including examples. The description adds no extra meaning beyond the schema, but the schema already does the heavy lifting, so a baseline of 3 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 uses the specific verb 'Decompile' and identifies the resource as 'a specific Minecraft class'. This clearly distinguishes it from sibling tools like list_versions and search_classes, which serve different purposes.

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 alternatives. There is no mention of prerequisites, such as needing to find the class name with search_classes, or any context like supported Minecraft versions.

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

list_versionsList VersionsA

List available Minecraft versions

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by version type (release, snapshot, or unobfuscated)
limitNoLimit the number of versions returned

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 carries the full burden of behavioral disclosure. It only says 'List available Minecraft versions', which essentially restates the tool's name. It does not mention any filtering behavior, ordering, default limits, or what data is returned, leaving the agent without key operational details.

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 a single, concise sentence that directly communicates the tool's purpose. Every word earns its place, and there is no redundancy or unnecessary detail.

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 list tool, the description is adequate. The schema covers all parameters, and the absence of an output schema is compensated by the obvious nature of 'List versions' (returns a list of versions). However, there's no mention of return format or ordering, so it falls short of a perfect score.

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 100% for both parameters (type and limit) and includes a default value for limit. The description itself adds no parameter-specific information, so it does not enhance the schema. Baseline 3 is appropriate because the schema fully documents the 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 'List available Minecraft versions' clearly states the verb (List) and resource (Minecraft versions). It is unambiguous and distinct from sibling tools like search_classes and decompile_class, which deal with classes rather than versions.

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

Usage Guidelines4/5

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

The intended use is clear from the description alone: it lists versions. While it doesn't explicitly mention when to use this over alternatives, the sibling tools are evidently unrelated, so the context is sufficient. No exclusions or alternate recommendations are given, but none seem necessary.

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

search_classesSearch ClassesB

Search for classes in a specific Minecraft version

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe search query for the class name (e.g. "ChatFormatting")
versionYesThe Minecraft version ID (e.g. "1.20.4")

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure, yet it only states the action without mentioning return format, whether it's read-only, or any side effects. This leaves significant gaps for the agent.

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?

A single clear sentence that immediately states the tool's purpose. It is concise and well-structured, with no extraneous information.

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?

Without an output schema or annotations, the description should clarify what the search returns and any behavioral constraints. It only says 'search for classes,' leaving the result format and broader context unspecified.

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 coverage is 100% (both 'query' and 'version' have descriptions with examples), so the baseline is 3. The description adds no parameter-level detail, so it neither helps nor harms beyond the schema.

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 uses a specific verb ('Search') and resource ('classes') with a clear scope ('in a specific Minecraft version'), distinguishing it from sibling tools like list_versions and decompile_class.

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 on when to use this tool versus alternatives. The description simply states its function without mentioning use cases, prerequisites, or exclusions, leaving the agent to infer from context.

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.

  1. 3 tool updatesv0.1.0
    • First observeddecompile_class
    • First observedlist_versions
    • First observedsearch_classes

TDQS

A3.7/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a distinct role in the workflow: listing versions, searching classes within a version, and decompiling a specific class. No overlapping purposes.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (list_versions, search_classes, decompile_class), making the API predictable and easy to navigate.

Tool Count5/5

Three tools perfectly cover the core needs of a Minecraft source decompilation server: version discovery, class lookup, and decompilation. No unnecessary extras.

Completeness5/5

The tool set forms a complete pipeline with no dead ends: pick a version, search for a class, then decompile it. There are no obvious missing operations for the stated purpose.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server for intelligently reading Java source code, supporting extraction from Maven dependencies and local projects with dual decompilers.
    155
    Apache 2.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    A Model Context Protocol server that gives AI assistants native access to Minecraft mod development tools — decompile, remap, search, and analyze Minecraft source code directly from your AI workflow.
    44 npm
    37
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    An MCP server that decompiles and inspects .NET assemblies to C# source, wrapping ILSpy. Enables querying .NET DLLs via natural language to decompile types, list members, and search symbols.
    7
    -