@keeeeeeeks/cryptoloom-mcp-server 0.1.0 → 0.2.0
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/dist/index.js +260 -12
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,51 +1,297 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { randomUUID } from "node:crypto";
|
|
2
3
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
4
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
5
|
import { z } from "zod";
|
|
5
6
|
const BASE_URL = process.env.CRYPTOLOOM_API_URL ?? "https://web-mu-silk.vercel.app";
|
|
7
|
+
const workIdResolutionCache = new Map();
|
|
8
|
+
const workDbIdResolutionCache = new Map();
|
|
9
|
+
const inkSessionStateCache = new Map();
|
|
10
|
+
function normalizeWorkId(input) {
|
|
11
|
+
const trimmed = input.trim();
|
|
12
|
+
try {
|
|
13
|
+
const parsed = JSON.parse(trimmed);
|
|
14
|
+
if (typeof parsed === "string" && parsed.trim().length > 0) {
|
|
15
|
+
return parsed.trim();
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
catch { }
|
|
19
|
+
if (trimmed.length >= 2 && trimmed.startsWith('"') && trimmed.endsWith('"')) {
|
|
20
|
+
const inner = trimmed.slice(1, -1).trim();
|
|
21
|
+
if (inner.length > 0)
|
|
22
|
+
return inner;
|
|
23
|
+
}
|
|
24
|
+
return trimmed;
|
|
25
|
+
}
|
|
26
|
+
async function fetchListedWorks() {
|
|
27
|
+
const res = await api("/api/works");
|
|
28
|
+
if (!res.ok)
|
|
29
|
+
return [];
|
|
30
|
+
const data = (await res.json());
|
|
31
|
+
return Array.isArray(data.works) ? data.works : [];
|
|
32
|
+
}
|
|
33
|
+
async function resolvePlayableWorkId(input) {
|
|
34
|
+
const normalized = normalizeWorkId(input);
|
|
35
|
+
if (workIdResolutionCache.has(normalized)) {
|
|
36
|
+
return workIdResolutionCache.get(normalized);
|
|
37
|
+
}
|
|
38
|
+
const works = await fetchListedWorks();
|
|
39
|
+
if (works.length === 0) {
|
|
40
|
+
workIdResolutionCache.set(normalized, normalized);
|
|
41
|
+
return normalized;
|
|
42
|
+
}
|
|
43
|
+
const byStoryId = works.find((w) => normalizeWorkId(w.storyId ?? "") === normalized);
|
|
44
|
+
if (byStoryId?.storyId) {
|
|
45
|
+
workIdResolutionCache.set(normalized, byStoryId.storyId);
|
|
46
|
+
return byStoryId.storyId;
|
|
47
|
+
}
|
|
48
|
+
const byDbId = works.find((w) => normalizeWorkId(w.id ?? "") === normalized);
|
|
49
|
+
if (byDbId?.storyId) {
|
|
50
|
+
workIdResolutionCache.set(normalized, byDbId.storyId);
|
|
51
|
+
return byDbId.storyId;
|
|
52
|
+
}
|
|
53
|
+
workIdResolutionCache.set(normalized, normalized);
|
|
54
|
+
return normalized;
|
|
55
|
+
}
|
|
56
|
+
async function resolveWorkDbId(input) {
|
|
57
|
+
const normalized = normalizeWorkId(input);
|
|
58
|
+
if (workDbIdResolutionCache.has(normalized)) {
|
|
59
|
+
return workDbIdResolutionCache.get(normalized);
|
|
60
|
+
}
|
|
61
|
+
const works = await fetchListedWorks();
|
|
62
|
+
if (works.length === 0) {
|
|
63
|
+
workDbIdResolutionCache.set(normalized, normalized);
|
|
64
|
+
return normalized;
|
|
65
|
+
}
|
|
66
|
+
const byDbId = works.find((w) => normalizeWorkId(w.id ?? "") === normalized);
|
|
67
|
+
if (byDbId?.id) {
|
|
68
|
+
workDbIdResolutionCache.set(normalized, byDbId.id);
|
|
69
|
+
return byDbId.id;
|
|
70
|
+
}
|
|
71
|
+
const byStoryId = works.find((w) => normalizeWorkId(w.storyId ?? "") === normalized);
|
|
72
|
+
if (byStoryId?.id) {
|
|
73
|
+
workDbIdResolutionCache.set(normalized, byStoryId.id);
|
|
74
|
+
return byStoryId.id;
|
|
75
|
+
}
|
|
76
|
+
workDbIdResolutionCache.set(normalized, normalized);
|
|
77
|
+
return normalized;
|
|
78
|
+
}
|
|
6
79
|
async function api(path, options = {}) {
|
|
7
80
|
const url = `${BASE_URL}${path}`;
|
|
81
|
+
const authorization = process.env.CRYPTOLOOM_PAYMENT_AUTHORIZATION?.trim();
|
|
8
82
|
return fetch(url, {
|
|
9
83
|
...options,
|
|
10
84
|
headers: {
|
|
11
85
|
"Content-Type": "application/json",
|
|
86
|
+
...(authorization ? { Authorization: authorization } : {}),
|
|
12
87
|
...options.headers,
|
|
13
88
|
},
|
|
14
89
|
});
|
|
15
90
|
}
|
|
16
91
|
const server = new McpServer({
|
|
17
92
|
name: "cryptoloom",
|
|
18
|
-
version: "0.
|
|
93
|
+
version: "0.2.0",
|
|
19
94
|
});
|
|
20
95
|
server.tool("cryptoloom_list_works", "List all playable interactive fiction works on Cryptoloom with their IDs, formats, and prices", {}, async () => {
|
|
21
96
|
const res = await api("/api/works");
|
|
22
97
|
const data = await res.json();
|
|
23
|
-
|
|
98
|
+
const works = Array.isArray(data.works)
|
|
99
|
+
? (data.works).map((work) => ({
|
|
100
|
+
...work,
|
|
101
|
+
playableWorkId: typeof work.storyId === "string" && work.storyId.length > 0
|
|
102
|
+
? work.storyId
|
|
103
|
+
: work.id,
|
|
104
|
+
}))
|
|
105
|
+
: [];
|
|
106
|
+
return {
|
|
107
|
+
content: [
|
|
108
|
+
{
|
|
109
|
+
type: "text",
|
|
110
|
+
text: JSON.stringify({
|
|
111
|
+
works,
|
|
112
|
+
usageHint: "For cryptoloom_start_game and other gameplay tools, use playableWorkId (storyId), not the database id.",
|
|
113
|
+
}, null, 2),
|
|
114
|
+
},
|
|
115
|
+
],
|
|
116
|
+
};
|
|
24
117
|
});
|
|
25
118
|
server.tool("cryptoloom_get_work", "Get details for a specific work including description, format, pricing, and remix info", { workId: z.string().describe("Work ID (e.g., 'minutes', 'the-intake', 'dead-air')") }, async ({ workId }) => {
|
|
26
|
-
const
|
|
119
|
+
const normalizedWorkId = normalizeWorkId(workId);
|
|
120
|
+
const res = await api(`/api/works/${encodeURIComponent(normalizedWorkId)}`);
|
|
27
121
|
if (!res.ok)
|
|
28
122
|
return { content: [{ type: "text", text: `Error: ${res.status} — work not found` }] };
|
|
29
123
|
const data = await res.json();
|
|
30
124
|
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
31
125
|
});
|
|
32
|
-
server.tool("cryptoloom_start_game", "Start a new game session for a work. Returns the opening text and either choices (Ink) or a sessionId (Glulx parser)", {
|
|
33
|
-
|
|
126
|
+
server.tool("cryptoloom_start_game", "Start a new game session for a work. Returns the opening text and either choices plus an MCP session branch handle (Ink) or a sessionId (Glulx parser)", {
|
|
127
|
+
workId: z.string().describe("Work ID to play"),
|
|
128
|
+
playerId: z.string().optional().describe("Optional player ID. If provided, creates a tracked run instead of using the stateless play endpoint."),
|
|
129
|
+
}, async ({ workId, playerId }) => {
|
|
130
|
+
const trimmedPlayerId = typeof playerId === "string" ? playerId.trim() : "";
|
|
131
|
+
if (trimmedPlayerId.length > 0) {
|
|
132
|
+
const resolvedDbWorkId = await resolveWorkDbId(workId);
|
|
133
|
+
const runRes = await api("/api/runs", {
|
|
134
|
+
method: "POST",
|
|
135
|
+
body: JSON.stringify({ workId: resolvedDbWorkId, playerId: trimmedPlayerId, role: "agent" }),
|
|
136
|
+
});
|
|
137
|
+
if (!runRes.ok) {
|
|
138
|
+
const err = await runRes.json();
|
|
139
|
+
return { content: [{ type: "text", text: `Error: ${err.error}` }] };
|
|
140
|
+
}
|
|
141
|
+
const runData = await runRes.json();
|
|
142
|
+
return { content: [{ type: "text", text: JSON.stringify(runData, null, 2) }] };
|
|
143
|
+
}
|
|
144
|
+
const resolvedWorkId = await resolvePlayableWorkId(workId);
|
|
145
|
+
const res = await api(`/api/works/${encodeURIComponent(resolvedWorkId)}/play`, {
|
|
146
|
+
method: "POST",
|
|
147
|
+
body: JSON.stringify({}),
|
|
148
|
+
});
|
|
34
149
|
if (!res.ok) {
|
|
35
150
|
const err = await res.json();
|
|
36
151
|
return { content: [{ type: "text", text: `Error: ${err.error}` }] };
|
|
37
152
|
}
|
|
38
153
|
const data = await res.json();
|
|
154
|
+
if (data.format === "ink" && typeof data.state === "string") {
|
|
155
|
+
const mcpSessionBranchId = randomUUID();
|
|
156
|
+
inkSessionStateCache.set(mcpSessionBranchId, {
|
|
157
|
+
state: data.state,
|
|
158
|
+
workId: resolvedWorkId,
|
|
159
|
+
});
|
|
160
|
+
return {
|
|
161
|
+
content: [
|
|
162
|
+
{
|
|
163
|
+
type: "text",
|
|
164
|
+
text: JSON.stringify({ ...data, mcpSessionBranchId }, null, 2),
|
|
165
|
+
},
|
|
166
|
+
],
|
|
167
|
+
};
|
|
168
|
+
}
|
|
39
169
|
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
40
170
|
});
|
|
41
|
-
server.tool("cryptoloom_make_choice", "Make a choice in an Ink (choice-based) game.
|
|
171
|
+
server.tool("cryptoloom_make_choice", "Make a choice in an Ink (choice-based) game. Prefer `mcpSessionBranchId` from cryptoloom_start_game; use raw `state` only as a stateless fallback.", {
|
|
42
172
|
workId: z.string().describe("Work ID"),
|
|
43
|
-
|
|
173
|
+
runId: z.string().optional().describe("Preferred for tracked runs: run ID returned by cryptoloom_start_game when called with playerId"),
|
|
174
|
+
mcpSessionBranchId: z.string().optional().describe("Preferred: MCP session branch handle returned by cryptoloom_start_game for Ink games"),
|
|
175
|
+
state: z.string().optional().describe("Fallback only: serialized game state from the previous response"),
|
|
44
176
|
choiceIndex: z.number().int().min(0).describe("Index of the choice to make (0-based)"),
|
|
45
|
-
}, async ({ workId, state, choiceIndex }) => {
|
|
46
|
-
const
|
|
177
|
+
}, async ({ workId, runId, state, mcpSessionBranchId, choiceIndex }) => {
|
|
178
|
+
const normalizedRunId = typeof runId === "string" ? runId.trim() : "";
|
|
179
|
+
if (normalizedRunId.length > 0) {
|
|
180
|
+
const res = await api(`/api/runs/${encodeURIComponent(normalizedRunId)}/turn`, {
|
|
181
|
+
method: "POST",
|
|
182
|
+
body: JSON.stringify({ choiceIndex }),
|
|
183
|
+
});
|
|
184
|
+
if (!res.ok) {
|
|
185
|
+
const err = await res.json();
|
|
186
|
+
return { content: [{ type: "text", text: `Error: ${err.error}` }] };
|
|
187
|
+
}
|
|
188
|
+
const data = await res.json();
|
|
189
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
190
|
+
}
|
|
191
|
+
const normalizedWorkId = normalizeWorkId(workId);
|
|
192
|
+
const normalizedBranchId = typeof mcpSessionBranchId === "string" ? mcpSessionBranchId.trim() : "";
|
|
193
|
+
const cachedBranch = normalizedBranchId.length > 0 ? inkSessionStateCache.get(normalizedBranchId) : undefined;
|
|
194
|
+
let normalizedState = typeof state === "string" ? state.trim() : "";
|
|
195
|
+
if (normalizedState.length === 0 ||
|
|
196
|
+
normalizedState === "undefined" ||
|
|
197
|
+
normalizedState === "null") {
|
|
198
|
+
if (cachedBranch) {
|
|
199
|
+
normalizedState = cachedBranch.state;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
if (normalizedState.length === 0 || normalizedState === "undefined" || normalizedState === "null") {
|
|
203
|
+
if (normalizedBranchId.length > 0 && !cachedBranch) {
|
|
204
|
+
return {
|
|
205
|
+
content: [
|
|
206
|
+
{
|
|
207
|
+
type: "text",
|
|
208
|
+
text: "Error: mcpSessionBranchId was not found in this MCP server process. This usually means you started a new MCP process or the in-memory branch expired. Reuse the same persistent MCP connection, or pass raw `state` as a stateless fallback.",
|
|
209
|
+
},
|
|
210
|
+
],
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
return {
|
|
214
|
+
content: [
|
|
215
|
+
{
|
|
216
|
+
type: "text",
|
|
217
|
+
text: "Error: Missing valid state. Prefer passing `mcpSessionBranchId` from cryptoloom_start_game for Ink games. Raw `state` is only a stateless fallback.",
|
|
218
|
+
},
|
|
219
|
+
],
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
const resolvedWorkId = await resolvePlayableWorkId(normalizedWorkId);
|
|
223
|
+
if (normalizedBranchId.length > 0) {
|
|
224
|
+
if (cachedBranch && cachedBranch.workId !== resolvedWorkId) {
|
|
225
|
+
return {
|
|
226
|
+
content: [
|
|
227
|
+
{
|
|
228
|
+
type: "text",
|
|
229
|
+
text: "Error: mcpSessionBranchId was created for a different workId.",
|
|
230
|
+
},
|
|
231
|
+
],
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
const res = await api(`/api/works/${encodeURIComponent(resolvedWorkId)}/play/choice`, {
|
|
236
|
+
method: "POST",
|
|
237
|
+
body: JSON.stringify({ state: normalizedState, choiceIndex }),
|
|
238
|
+
});
|
|
239
|
+
if (!res.ok) {
|
|
240
|
+
const err = await res.json();
|
|
241
|
+
return { content: [{ type: "text", text: `Error: ${err.error}` }] };
|
|
242
|
+
}
|
|
243
|
+
const data = await res.json();
|
|
244
|
+
if (normalizedBranchId.length > 0 && typeof data.state === "string") {
|
|
245
|
+
inkSessionStateCache.set(normalizedBranchId, {
|
|
246
|
+
state: data.state,
|
|
247
|
+
workId: resolvedWorkId,
|
|
248
|
+
});
|
|
249
|
+
return {
|
|
250
|
+
content: [
|
|
251
|
+
{
|
|
252
|
+
type: "text",
|
|
253
|
+
text: JSON.stringify({ ...data, mcpSessionBranchId: normalizedBranchId }, null, 2),
|
|
254
|
+
},
|
|
255
|
+
],
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
259
|
+
});
|
|
260
|
+
server.tool("cryptoloom_save_game", "Save a tracked run into a save slot. Requires a runId from the runs-backed start_game flow.", {
|
|
261
|
+
runId: z.string().describe("Tracked run ID"),
|
|
262
|
+
slotIndex: z.number().int().min(0).describe("Save slot index (0-based)"),
|
|
263
|
+
}, async ({ runId, slotIndex }) => {
|
|
264
|
+
const res = await api(`/api/runs/${encodeURIComponent(runId.trim())}/save`, {
|
|
265
|
+
method: "POST",
|
|
266
|
+
body: JSON.stringify({ slotIndex }),
|
|
267
|
+
});
|
|
268
|
+
if (!res.ok) {
|
|
269
|
+
const err = await res.json();
|
|
270
|
+
return { content: [{ type: "text", text: `Error: ${err.error}` }] };
|
|
271
|
+
}
|
|
272
|
+
const data = await res.json();
|
|
273
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
274
|
+
});
|
|
275
|
+
server.tool("cryptoloom_list_saves", "List save slots for a player and work.", {
|
|
276
|
+
workId: z.string().describe("Work ID"),
|
|
277
|
+
playerId: z.string().describe("Player ID"),
|
|
278
|
+
}, async ({ workId, playerId }) => {
|
|
279
|
+
const resolvedDbWorkId = await resolveWorkDbId(workId);
|
|
280
|
+
const res = await api(`/api/works/${encodeURIComponent(resolvedDbWorkId)}/saves?playerId=${encodeURIComponent(playerId.trim())}`);
|
|
281
|
+
if (!res.ok) {
|
|
282
|
+
const err = await res.json();
|
|
283
|
+
return { content: [{ type: "text", text: `Error: ${err.error}` }] };
|
|
284
|
+
}
|
|
285
|
+
const data = await res.json();
|
|
286
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
287
|
+
});
|
|
288
|
+
server.tool("cryptoloom_load_game", "Load a tracked run from a save slot. Returns the restored run and current turn snapshot.", {
|
|
289
|
+
runId: z.string().describe("Existing run ID for the same player/work context"),
|
|
290
|
+
saveSlotId: z.string().describe("Save slot ID to restore"),
|
|
291
|
+
}, async ({ runId, saveSlotId }) => {
|
|
292
|
+
const res = await api(`/api/runs/${encodeURIComponent(runId.trim())}/load`, {
|
|
47
293
|
method: "POST",
|
|
48
|
-
body: JSON.stringify({
|
|
294
|
+
body: JSON.stringify({ saveSlotId }),
|
|
49
295
|
});
|
|
50
296
|
if (!res.ok) {
|
|
51
297
|
const err = await res.json();
|
|
@@ -59,7 +305,8 @@ server.tool("cryptoloom_send_command", "Send a text command to a Glulx (parser-b
|
|
|
59
305
|
sessionId: z.string().describe("Session ID from the start_game response"),
|
|
60
306
|
command: z.string().max(256).describe("Parser command (e.g., 'look', 'go north', 'take key')"),
|
|
61
307
|
}, async ({ workId, sessionId, command }) => {
|
|
62
|
-
const
|
|
308
|
+
const resolvedWorkId = await resolvePlayableWorkId(workId);
|
|
309
|
+
const res = await api(`/api/works/${encodeURIComponent(resolvedWorkId)}/play/command`, {
|
|
63
310
|
method: "POST",
|
|
64
311
|
body: JSON.stringify({ sessionId, command }),
|
|
65
312
|
});
|
|
@@ -71,7 +318,8 @@ server.tool("cryptoloom_send_command", "Send a text command to a Glulx (parser-b
|
|
|
71
318
|
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
72
319
|
});
|
|
73
320
|
server.tool("cryptoloom_get_remix_contract", "Get the remix contract for a work — required variables, forbidden spoilers, and split configuration", { workId: z.string().describe("Work ID") }, async ({ workId }) => {
|
|
74
|
-
const
|
|
321
|
+
const resolvedWorkId = await resolvePlayableWorkId(workId);
|
|
322
|
+
const res = await api(`/api/works/${encodeURIComponent(resolvedWorkId)}/remix`, { method: "POST" });
|
|
75
323
|
if (!res.ok) {
|
|
76
324
|
const err = await res.json();
|
|
77
325
|
return { content: [{ type: "text", text: `Error: ${err.error}` }] };
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keeeeeeeks/cryptoloom-mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "MCP server for Cryptoloom interactive fiction platform — enables AI agents to discover, play, and verify text-based games",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
],
|
|
22
22
|
"repository": {
|
|
23
23
|
"type": "git",
|
|
24
|
-
"url": "https://github.com/Resoworks/cryptoloom.git",
|
|
24
|
+
"url": "git+https://github.com/Resoworks/cryptoloom.git",
|
|
25
25
|
"directory": "mcp-server"
|
|
26
26
|
},
|
|
27
27
|
"license": "MIT",
|