@lzimul/minecraft-mcp 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -11
- package/build/config/server-info.js +1 -1
- package/build/index.js +3 -1
- package/package.json +16 -16
package/README.md
CHANGED
|
@@ -14,7 +14,17 @@ Minecraft Model Context Protocol (MCP) server. It exposes the complete Minecraft
|
|
|
14
14
|
|
|
15
15
|
## Protocol
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
This server implements **MCP 2026-07-28 only**. The legacy 2025-era `initialize` handshake is rejected, so clients must use the modern protocol:
|
|
18
|
+
|
|
19
|
+
- Start a session with `server/discover`, or send any request carrying the per-request envelope.
|
|
20
|
+
- Every request must include the envelope in `params._meta`:
|
|
21
|
+
- `io.modelcontextprotocol/protocolVersion`: `"2026-07-28"`
|
|
22
|
+
- `io.modelcontextprotocol/clientCapabilities`
|
|
23
|
+
- `io.modelcontextprotocol/clientInfo` (optional)
|
|
24
|
+
- Responses use the modern result shape (`resultType`, server identity under `_meta['io.modelcontextprotocol/serverInfo']`).
|
|
25
|
+
- A legacy `initialize` is answered with `UnsupportedProtocolVersionError` naming the supported modern revision.
|
|
26
|
+
|
|
27
|
+
When testing with MCP Inspector 2.12 or newer, set **Protocol Era** to `modern` (or `auto`) for this server. The Inspector's default `legacy` mode sends `initialize`, which this server intentionally rejects.
|
|
18
28
|
|
|
19
29
|
## Tools
|
|
20
30
|
|
|
@@ -134,6 +144,7 @@ src/
|
|
|
134
144
|
scripts/
|
|
135
145
|
generate-data.mjs Regenerates src/data from minecraft-data
|
|
136
146
|
smoke-test.mjs End-to-end smoke test (including states)
|
|
147
|
+
protocol-test.mjs Modern-only protocol era and envelope enforcement
|
|
137
148
|
persistence-test.mjs Restart test for the world snapshots
|
|
138
149
|
error-test.mjs Error fallbacks, sanitizing and storage limit tests
|
|
139
150
|
stress-test.mjs Parallel write, coalescing and restart stress test
|
|
@@ -142,16 +153,16 @@ scripts/
|
|
|
142
153
|
|
|
143
154
|
## Scripts
|
|
144
155
|
|
|
145
|
-
| Command | Description
|
|
146
|
-
| ----------------------- |
|
|
147
|
-
| `npm run build` | Lint, compile and generate docs
|
|
148
|
-
| `npm run dev` | Build then start the server
|
|
149
|
-
| `npm start` | Start the server (stdio)
|
|
150
|
-
| `npm test` | Run the smoke, persistence, security and stress tests |
|
|
151
|
-
| `npm run test:stress` | Run only the parallel write stress test
|
|
152
|
-
| `npm run generate-data` | Regenerate registry data (see below)
|
|
153
|
-
| `npm run clean` | Remove build output
|
|
154
|
-
| `npm run lint` | Lint and auto-fix
|
|
156
|
+
| Command | Description |
|
|
157
|
+
| ----------------------- | --------------------------------------------------------------- |
|
|
158
|
+
| `npm run build` | Lint, compile and generate docs |
|
|
159
|
+
| `npm run dev` | Build then start the server |
|
|
160
|
+
| `npm start` | Start the server (stdio) |
|
|
161
|
+
| `npm test` | Run the smoke, protocol, persistence, security and stress tests |
|
|
162
|
+
| `npm run test:stress` | Run only the parallel write stress test |
|
|
163
|
+
| `npm run generate-data` | Regenerate registry data (see below) |
|
|
164
|
+
| `npm run clean` | Remove build output |
|
|
165
|
+
| `npm run lint` | Lint and auto-fix |
|
|
155
166
|
|
|
156
167
|
## Data
|
|
157
168
|
|
|
@@ -6,7 +6,7 @@ export const SERVER_INFO = {
|
|
|
6
6
|
name: 'lzimul',
|
|
7
7
|
title: 'lZiMUl Minecraft MCP',
|
|
8
8
|
description: `Minecraft Model Context Protocol server (Java Edition ${MINECRAFT_DATA_VERSION}): exposes all ${MINECRAFT_BLOCK_COUNT} blocks and ${MINECRAFT_ITEM_COUNT} items with their properties (name, hardness, blast resistance, durability, enchantment categories, etc.) as resources, plus tools to get and place blocks and look up items.`,
|
|
9
|
-
version: '1.0.
|
|
9
|
+
version: '1.0.3',
|
|
10
10
|
websiteUrl: 'https://mcp.lzimul.com/lZiMUl',
|
|
11
11
|
icons: [
|
|
12
12
|
{
|
package/build/index.js
CHANGED
|
@@ -7,7 +7,9 @@ import { createWorldStore } from './world/stores/index.js';
|
|
|
7
7
|
import { World } from './world/world.js';
|
|
8
8
|
async function main() {
|
|
9
9
|
const world = await World.load(createWorldStore(), WORLD_STORAGE.writeDelayMs);
|
|
10
|
-
const handle = serveStdio(() => createServer(world)
|
|
10
|
+
const handle = serveStdio(() => createServer(world), {
|
|
11
|
+
legacy: 'reject'
|
|
12
|
+
});
|
|
11
13
|
let shuttingDown = false;
|
|
12
14
|
const shutdown = async (exitCode) => {
|
|
13
15
|
if (shuttingDown) {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lzimul/minecraft-mcp",
|
|
3
3
|
"description": "Minecraft Model Context Protocol (MCP) Server",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.3",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "lZiMUl",
|
|
7
7
|
"email": "lZiMUl@lzimul.com",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"dev": "npm run build && npm run start",
|
|
44
44
|
"generate-data": "node ./scripts/generate-data.mjs",
|
|
45
45
|
"clean": "node ./scripts/clean.mjs",
|
|
46
|
-
"test": "node ./scripts/smoke-test.mjs && node ./scripts/persistence-test.mjs && node ./scripts/error-test.mjs && node ./scripts/stress-test.mjs",
|
|
46
|
+
"test": "node ./scripts/smoke-test.mjs && node ./scripts/protocol-test.mjs && node ./scripts/persistence-test.mjs && node ./scripts/error-test.mjs && node ./scripts/stress-test.mjs",
|
|
47
47
|
"test:stress": "node ./scripts/stress-test.mjs"
|
|
48
48
|
},
|
|
49
49
|
"files": [
|
|
@@ -61,34 +61,34 @@
|
|
|
61
61
|
"minecraft-mcp"
|
|
62
62
|
],
|
|
63
63
|
"engines": {
|
|
64
|
-
"node": ">=
|
|
64
|
+
"node": ">=20"
|
|
65
65
|
},
|
|
66
66
|
"overrides": {
|
|
67
67
|
"katex": "^0.19.1"
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@modelcontextprotocol/server": "^2.
|
|
71
|
-
"zod": "^4.6.
|
|
70
|
+
"@modelcontextprotocol/server": "^2.4.0",
|
|
71
|
+
"zod": "^4.6.7"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
|
-
"@eslint/css": "^2.0.
|
|
74
|
+
"@eslint/css": "^2.0.1",
|
|
75
75
|
"@eslint/eslintrc": "^3.3.7",
|
|
76
76
|
"@eslint/js": "^10.0.1",
|
|
77
|
-
"@eslint/json": "^2.1.
|
|
77
|
+
"@eslint/json": "^2.1.1",
|
|
78
78
|
"@eslint/markdown": "^8.0.3",
|
|
79
|
-
"@types/node": "^26.6.
|
|
80
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
81
|
-
"@typescript-eslint/parser": "^8.
|
|
82
|
-
"eslint": "^10.
|
|
79
|
+
"@types/node": "^26.6.5",
|
|
80
|
+
"@typescript-eslint/eslint-plugin": "^8.72.0",
|
|
81
|
+
"@typescript-eslint/parser": "^8.72.0",
|
|
82
|
+
"eslint": "^10.13.0",
|
|
83
83
|
"eslint-config-prettier": "^10.1.8",
|
|
84
|
-
"eslint-plugin-prettier": "^5.5.
|
|
85
|
-
"globals": "^17.
|
|
84
|
+
"eslint-plugin-prettier": "^5.5.7",
|
|
85
|
+
"globals": "^17.13.0",
|
|
86
86
|
"jiti": "^2.7.0",
|
|
87
|
-
"prettier": "^3.9.
|
|
87
|
+
"prettier": "^3.9.10",
|
|
88
88
|
"tslib": "^2.8.1",
|
|
89
89
|
"typedoc": "^0.28.20",
|
|
90
90
|
"typescript": "^6.0.3",
|
|
91
|
-
"typescript-eslint": "^8.
|
|
91
|
+
"typescript-eslint": "^8.72.0"
|
|
92
92
|
},
|
|
93
93
|
"repository": {
|
|
94
94
|
"type": "git",
|
|
@@ -106,4 +106,4 @@
|
|
|
106
106
|
},
|
|
107
107
|
"sideEffects": false,
|
|
108
108
|
"private": false
|
|
109
|
-
}
|
|
109
|
+
}
|