Skip to main content
Glama
mnooseman

MC Source MCP Server

by mnooseman
README.md
# 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.

## 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

```bash
npm install
npm run build
```

## Usage

Configure your MCP client to run:

```json
{
  "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**:
    ```bash
    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).

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