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