@secondlayer/mcp 11.5.0 → 11.6.1

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/bin-http.js CHANGED
@@ -6,6 +6,53 @@ import {
6
6
  } from "node:http";
7
7
  import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
8
8
 
9
+ // src/lib/http-sessions.ts
10
+ var SESSION_IDLE_TTL_MS = 30 * 60 * 1000;
11
+ var SESSION_SWEEP_INTERVAL_MS = 60 * 1000;
12
+
13
+ class SessionRegistry {
14
+ ttlMs;
15
+ now;
16
+ entries = new Map;
17
+ constructor(ttlMs = SESSION_IDLE_TTL_MS, now = Date.now) {
18
+ this.ttlMs = ttlMs;
19
+ this.now = now;
20
+ }
21
+ add(id, transport) {
22
+ this.entries.set(id, { transport, lastSeen: this.now() });
23
+ }
24
+ get(id) {
25
+ if (!id)
26
+ return;
27
+ const entry = this.entries.get(id);
28
+ if (!entry)
29
+ return;
30
+ entry.lastSeen = this.now();
31
+ return entry.transport;
32
+ }
33
+ delete(id) {
34
+ this.entries.delete(id);
35
+ }
36
+ get size() {
37
+ return this.entries.size;
38
+ }
39
+ async sweep() {
40
+ const cutoff = this.now() - this.ttlMs;
41
+ const expired = [...this.entries].filter(([, entry]) => entry.lastSeen <= cutoff);
42
+ for (const [id] of expired)
43
+ this.entries.delete(id);
44
+ await Promise.allSettled(expired.map(([, entry]) => entry.transport.close()));
45
+ return expired.map(([id]) => id);
46
+ }
47
+ startSweeping(intervalMs = SESSION_SWEEP_INTERVAL_MS) {
48
+ const timer = setInterval(() => {
49
+ this.sweep();
50
+ }, intervalMs);
51
+ timer.unref?.();
52
+ return () => clearInterval(timer);
53
+ }
54
+ }
55
+
9
56
  // src/server.ts
10
57
  import { readFileSync } from "node:fs";
11
58
  import { dirname, join as join2 } from "node:path";
@@ -107,11 +154,11 @@ import {
107
154
  isHostedApiUrl,
108
155
  resolveAccountKey,
109
156
  resolveApiKey,
110
- resolveBaseUrl
157
+ resolveBaseUrl,
158
+ resolveIdentity
111
159
  } from "@secondlayer/sdk";
112
160
  var instance = null;
113
161
  var HOSTED_KEY_HINT = "set SECONDLAYER_API_KEY (sk-sl_*) for credits; INSTANCE_TOKEN is the instance";
114
- var DEFAULT_ARCHIVE_OPS_URL = "https://api.secondlayer.tools";
115
162
  function readApiKey() {
116
163
  return resolveApiKey(undefined, resolveBaseUrl());
117
164
  }
@@ -129,19 +176,15 @@ function getClient() {
129
176
  }
130
177
  return instance;
131
178
  }
132
- function readArchiveApiKey() {
133
- return resolveAccountKey();
134
- }
135
179
  function getArchiveOpsClient() {
136
- const accountKey = readArchiveApiKey();
137
- if (!accountKey) {
180
+ const { token, url } = resolveIdentity("account");
181
+ if (!token) {
138
182
  throw new Error(HOSTED_KEY_HINT);
139
183
  }
140
- const archiveOpsUrl = process.env.SL_CREDITS_API_URL || process.env.ARCHIVE_OPS_API_URL || DEFAULT_ARCHIVE_OPS_URL;
141
184
  return new SecondLayer({
142
- accountKey,
185
+ accountKey: token,
143
186
  origin: "mcp",
144
- archiveOpsUrl
187
+ archiveOpsUrl: url
145
188
  });
146
189
  }
147
190
  function keyHint(baseUrl = resolveBaseUrl()) {
@@ -1264,10 +1307,23 @@ function isHostedTool(group, tool) {
1264
1307
  // src/server.ts
1265
1308
  var __dirname2 = dirname(fileURLToPath(import.meta.url));
1266
1309
  var pkg = JSON.parse(readFileSync(join2(__dirname2, "../package.json"), "utf-8"));
1310
+ var SERVER_ICONS = [
1311
+ {
1312
+ src: "https://www.secondlayer.tools/icon.svg",
1313
+ mimeType: "image/svg+xml",
1314
+ sizes: ["any"]
1315
+ },
1316
+ {
1317
+ src: "https://www.secondlayer.tools/apple-icon",
1318
+ mimeType: "image/png",
1319
+ sizes: ["180x180"]
1320
+ }
1321
+ ];
1267
1322
  function createServer(options = {}) {
1268
1323
  const server = new McpServer({
1269
1324
  name: "secondlayer",
1270
- version: pkg.version
1325
+ version: pkg.version,
1326
+ icons: SERVER_ICONS
1271
1327
  });
1272
1328
  const deps = {
1273
1329
  clientProvider: options.clientProvider ?? ENV_TOOL_DEPS.clientProvider,
@@ -1301,7 +1357,8 @@ function createServer(options = {}) {
1301
1357
  // src/bin-http.ts
1302
1358
  var port = Number.parseInt(process.env.SECONDLAYER_MCP_PORT || "3100");
1303
1359
  var secret = process.env.SECONDLAYER_MCP_SECRET;
1304
- var sessions = new Map;
1360
+ var sessions = new SessionRegistry;
1361
+ sessions.startSweeping();
1305
1362
  function authenticate(req) {
1306
1363
  if (!secret)
1307
1364
  return true;
@@ -1342,32 +1399,45 @@ var httpServer = createHttpServer(async (req, res) => {
1342
1399
  const transport = new StreamableHTTPServerTransport({
1343
1400
  sessionIdGenerator: () => crypto.randomUUID()
1344
1401
  });
1402
+ transport.onclose = () => {
1403
+ if (transport.sessionId)
1404
+ sessions.delete(transport.sessionId);
1405
+ };
1345
1406
  const server = createServer();
1346
- await server.connect(transport);
1347
- await transport.handleRequest(req, res, body);
1407
+ try {
1408
+ await server.connect(transport);
1409
+ await transport.handleRequest(req, res, body);
1410
+ } catch (err) {
1411
+ await transport.close().catch(() => {});
1412
+ if (!res.headersSent) {
1413
+ res.writeHead(500).end(JSON.stringify({ error: "Session initialization failed" }));
1414
+ }
1415
+ console.error("MCP session init failed:", err);
1416
+ return;
1417
+ }
1348
1418
  if (transport.sessionId) {
1349
- sessions.set(transport.sessionId, transport);
1350
- transport.onclose = () => {
1351
- if (transport.sessionId)
1352
- sessions.delete(transport.sessionId);
1353
- };
1419
+ sessions.add(transport.sessionId, transport);
1420
+ } else {
1421
+ await transport.close().catch(() => {});
1354
1422
  }
1355
1423
  return;
1356
1424
  }
1357
- if (!sessionId || !sessions.has(sessionId)) {
1425
+ const existing = sessions.get(sessionId);
1426
+ if (!existing) {
1358
1427
  res.writeHead(400).end(JSON.stringify({ error: "Invalid or missing session ID" }));
1359
1428
  return;
1360
1429
  }
1361
- await sessions.get(sessionId)?.handleRequest(req, res, body);
1430
+ await existing.handleRequest(req, res, body);
1362
1431
  } else if (req.method === "GET") {
1363
- if (!sessionId || !sessions.has(sessionId)) {
1432
+ const existing = sessions.get(sessionId);
1433
+ if (!existing) {
1364
1434
  res.writeHead(400).end(JSON.stringify({ error: "Invalid or missing session ID" }));
1365
1435
  return;
1366
1436
  }
1367
- await sessions.get(sessionId)?.handleRequest(req, res);
1437
+ await existing.handleRequest(req, res);
1368
1438
  } else if (req.method === "DELETE") {
1369
- if (sessionId && sessions.has(sessionId)) {
1370
- const transport = sessions.get(sessionId);
1439
+ const transport = sessions.get(sessionId);
1440
+ if (sessionId && transport) {
1371
1441
  await transport.handleRequest(req, res);
1372
1442
  await transport.close();
1373
1443
  sessions.delete(sessionId);
@@ -1384,5 +1454,5 @@ httpServer.listen(port, () => {
1384
1454
  console.error("Warning: SECONDLAYER_MCP_SECRET not set, authentication disabled");
1385
1455
  });
1386
1456
 
1387
- //# debugId=2D47CECF2113416564756E2164756E21
1457
+ //# debugId=9E64E6D44D8BC3B364756E2164756E21
1388
1458
  //# sourceMappingURL=bin-http.js.map
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/bin-http.ts", "../src/server.ts", "../src/lib/hosted.ts", "../src/lib/tool.ts", "../src/resources.ts", "../src/lib/client.ts", "../src/lib/format.ts", "../src/tools/account.ts", "../src/tools/archive-cli.ts", "../src/lib/exec-cli.ts", "../src/tools/archive.ts", "../src/tools/codegen.ts", "../src/tools/contracts.ts", "../src/tools/index.ts", "../src/tools/instance.ts", "../src/tools/scaffold.ts", "../src/tools/streams.ts", "../src/tools/subgraphs.ts", "../src/tools/webhooks.ts", "../src/tool-groups.ts"],
3
+ "sources": ["../src/bin-http.ts", "../src/lib/http-sessions.ts", "../src/server.ts", "../src/lib/hosted.ts", "../src/lib/tool.ts", "../src/resources.ts", "../src/lib/client.ts", "../src/lib/format.ts", "../src/tools/account.ts", "../src/tools/archive-cli.ts", "../src/lib/exec-cli.ts", "../src/tools/archive.ts", "../src/tools/codegen.ts", "../src/tools/contracts.ts", "../src/tools/index.ts", "../src/tools/instance.ts", "../src/tools/scaffold.ts", "../src/tools/streams.ts", "../src/tools/subgraphs.ts", "../src/tools/webhooks.ts", "../src/tool-groups.ts"],
4
4
  "sourcesContent": [
5
- "#!/usr/bin/env node\nimport {\n\ttype IncomingMessage,\n\ttype ServerResponse,\n\tcreateServer as createHttpServer,\n} from \"node:http\";\nimport { StreamableHTTPServerTransport } from \"@modelcontextprotocol/sdk/server/streamableHttp.js\";\nimport { createServer } from \"./server.ts\";\n\nconst port = Number.parseInt(process.env.SECONDLAYER_MCP_PORT || \"3100\");\nconst secret = process.env.SECONDLAYER_MCP_SECRET;\nconst sessions = new Map<string, StreamableHTTPServerTransport>();\n\nfunction authenticate(req: IncomingMessage): boolean {\n\tif (!secret) return true;\n\treturn req.headers.authorization === `Bearer ${secret}`;\n}\n\nconst httpServer = createHttpServer(\n\tasync (req: IncomingMessage, res: ServerResponse) => {\n\t\t// Only handle /mcp endpoint\n\t\tconst url = new URL(req.url ?? \"/\", `http://localhost:${port}`);\n\t\tif (url.pathname !== \"/mcp\") {\n\t\t\tres.writeHead(404).end(JSON.stringify({ error: \"Not found\" }));\n\t\t\treturn;\n\t\t}\n\n\t\t// Auth check\n\t\tif (!authenticate(req)) {\n\t\t\tres.writeHead(401).end(JSON.stringify({ error: \"Unauthorized\" }));\n\t\t\treturn;\n\t\t}\n\n\t\tconst sessionId = req.headers[\"mcp-session-id\"] as string | undefined;\n\n\t\tif (req.method === \"POST\") {\n\t\t\t// Read body with 1MB limit\n\t\t\tconst MAX_BODY = 1_048_576;\n\t\t\tconst chunks: Buffer[] = [];\n\t\t\tlet totalSize = 0;\n\t\t\tfor await (const chunk of req) {\n\t\t\t\ttotalSize += (chunk as Buffer).length;\n\t\t\t\tif (totalSize > MAX_BODY) {\n\t\t\t\t\tres\n\t\t\t\t\t\t.writeHead(413)\n\t\t\t\t\t\t.end(JSON.stringify({ error: \"Request body too large\" }));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tchunks.push(chunk as Buffer);\n\t\t\t}\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t\t\tlet body: any;\n\t\t\ttry {\n\t\t\t\tbody = JSON.parse(Buffer.concat(chunks).toString());\n\t\t\t} catch {\n\t\t\t\tres.writeHead(400).end(JSON.stringify({ error: \"Invalid JSON\" }));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Check if this is an initialize request (new session)\n\t\t\tconst isInitialize = Array.isArray(body)\n\t\t\t\t? body.some((m: { method?: string }) => m.method === \"initialize\")\n\t\t\t\t: body.method === \"initialize\";\n\n\t\t\tif (isInitialize) {\n\t\t\t\t// Create new session\n\t\t\t\tconst transport = new StreamableHTTPServerTransport({\n\t\t\t\t\tsessionIdGenerator: () => crypto.randomUUID(),\n\t\t\t\t});\n\t\t\t\tconst server = createServer();\n\t\t\t\tawait server.connect(transport);\n\n\t\t\t\t// Store session after handling (sessionId is set after first request)\n\t\t\t\tawait transport.handleRequest(req, res, body);\n\n\t\t\t\tif (transport.sessionId) {\n\t\t\t\t\tsessions.set(transport.sessionId, transport);\n\t\t\t\t\ttransport.onclose = () => {\n\t\t\t\t\t\tif (transport.sessionId) sessions.delete(transport.sessionId);\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Existing session\n\t\t\tif (!sessionId || !sessions.has(sessionId)) {\n\t\t\t\tres\n\t\t\t\t\t.writeHead(400)\n\t\t\t\t\t.end(JSON.stringify({ error: \"Invalid or missing session ID\" }));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait sessions.get(sessionId)?.handleRequest(req, res, body);\n\t\t} else if (req.method === \"GET\") {\n\t\t\t// SSE stream for existing session\n\t\t\tif (!sessionId || !sessions.has(sessionId)) {\n\t\t\t\tres\n\t\t\t\t\t.writeHead(400)\n\t\t\t\t\t.end(JSON.stringify({ error: \"Invalid or missing session ID\" }));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait sessions.get(sessionId)?.handleRequest(req, res);\n\t\t} else if (req.method === \"DELETE\") {\n\t\t\t// Session teardown\n\t\t\tif (sessionId && sessions.has(sessionId)) {\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: value is non-null after preceding check or by construction; TS narrowing limitation\n\t\t\t\tconst transport = sessions.get(sessionId)!;\n\t\t\t\tawait transport.handleRequest(req, res);\n\t\t\t\tawait transport.close();\n\t\t\t\tsessions.delete(sessionId);\n\t\t\t} else {\n\t\t\t\tres\n\t\t\t\t\t.writeHead(400)\n\t\t\t\t\t.end(JSON.stringify({ error: \"Invalid or missing session ID\" }));\n\t\t\t}\n\t\t} else {\n\t\t\tres.writeHead(405).end(JSON.stringify({ error: \"Method not allowed\" }));\n\t\t}\n\t},\n);\n\nhttpServer.listen(port, () => {\n\tconsole.error(`SecondLayer MCP HTTP server listening on port ${port}`);\n\tif (!secret)\n\t\tconsole.error(\n\t\t\t\"Warning: SECONDLAYER_MCP_SECRET not set, authentication disabled\",\n\t\t);\n});\n",
6
- "import { readFileSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { resolveBaseUrl } from \"@secondlayer/sdk\";\nimport { isHostedArchiveUrl } from \"./lib/hosted.ts\";\nimport { restrictTools } from \"./lib/tool.ts\";\nimport { registerResources } from \"./resources.ts\";\nimport {\n\tENV_TOOL_DEPS,\n\tTOOL_GROUPS,\n\ttype ToolDeps,\n\tisHostedTool,\n} from \"./tool-groups.ts\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst pkg = JSON.parse(\n\treadFileSync(join(__dirname, \"../package.json\"), \"utf-8\"),\n);\n\nexport type { ToolDeps } from \"./tool-groups.ts\";\n\nexport interface CreateServerOptions extends Partial<ToolDeps> {\n\t/**\n\t * The hosted MCP endpoint's server: only the tools each group marks\n\t * `hosted`, with credentials from the options rather than the environment.\n\t * Omitted, the server is the stdio/self-host one, reading env as always.\n\t */\n\thosted?: boolean;\n}\n\nexport function createServer(options: CreateServerOptions = {}): McpServer {\n\tconst server = new McpServer({\n\t\tname: \"secondlayer\",\n\t\tversion: pkg.version,\n\t});\n\tconst deps: ToolDeps = {\n\t\tclientProvider: options.clientProvider ?? ENV_TOOL_DEPS.clientProvider,\n\t\tarchiveOpsClientProvider:\n\t\t\toptions.archiveOpsClientProvider ??\n\t\t\tENV_TOOL_DEPS.archiveOpsClientProvider,\n\t\tapiRequest: options.apiRequest ?? ENV_TOOL_DEPS.apiRequest,\n\t};\n\n\tif (options.hosted) {\n\t\tfor (const group of TOOL_GROUPS) {\n\t\t\tif (group.hosted === false) continue;\n\t\t\trestrictTools(server, (name) => isHostedTool(group, name));\n\t\t\tgroup.register(server, deps);\n\t\t}\n\t\trestrictTools(server, () => false);\n\t\tregisterResources(server, {\n\t\t\tclientProvider: deps.clientProvider,\n\t\t\thosted: true,\n\t\t});\n\t\treturn server;\n\t}\n\n\tconst hostedApi = isHostedArchiveUrl(resolveBaseUrl());\n\tfor (const { register, hostedOnly } of TOOL_GROUPS) {\n\t\tif (hostedOnly && !hostedApi) continue;\n\t\tregister(server, deps);\n\t}\n\tregisterResources(server, { clientProvider: deps.clientProvider });\n\n\treturn server;\n}\n",
5
+ "#!/usr/bin/env node\nimport {\n\ttype IncomingMessage,\n\ttype ServerResponse,\n\tcreateServer as createHttpServer,\n} from \"node:http\";\nimport { StreamableHTTPServerTransport } from \"@modelcontextprotocol/sdk/server/streamableHttp.js\";\nimport { SessionRegistry } from \"./lib/http-sessions.ts\";\nimport { createServer } from \"./server.ts\";\n\nconst port = Number.parseInt(process.env.SECONDLAYER_MCP_PORT || \"3100\");\nconst secret = process.env.SECONDLAYER_MCP_SECRET;\nconst sessions = new SessionRegistry<StreamableHTTPServerTransport>();\nsessions.startSweeping();\n\nfunction authenticate(req: IncomingMessage): boolean {\n\tif (!secret) return true;\n\treturn req.headers.authorization === `Bearer ${secret}`;\n}\n\nconst httpServer = createHttpServer(\n\tasync (req: IncomingMessage, res: ServerResponse) => {\n\t\t// Only handle /mcp endpoint\n\t\tconst url = new URL(req.url ?? \"/\", `http://localhost:${port}`);\n\t\tif (url.pathname !== \"/mcp\") {\n\t\t\tres.writeHead(404).end(JSON.stringify({ error: \"Not found\" }));\n\t\t\treturn;\n\t\t}\n\n\t\t// Auth check\n\t\tif (!authenticate(req)) {\n\t\t\tres.writeHead(401).end(JSON.stringify({ error: \"Unauthorized\" }));\n\t\t\treturn;\n\t\t}\n\n\t\tconst sessionId = req.headers[\"mcp-session-id\"] as string | undefined;\n\n\t\tif (req.method === \"POST\") {\n\t\t\t// Read body with 1MB limit\n\t\t\tconst MAX_BODY = 1_048_576;\n\t\t\tconst chunks: Buffer[] = [];\n\t\t\tlet totalSize = 0;\n\t\t\tfor await (const chunk of req) {\n\t\t\t\ttotalSize += (chunk as Buffer).length;\n\t\t\t\tif (totalSize > MAX_BODY) {\n\t\t\t\t\tres\n\t\t\t\t\t\t.writeHead(413)\n\t\t\t\t\t\t.end(JSON.stringify({ error: \"Request body too large\" }));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tchunks.push(chunk as Buffer);\n\t\t\t}\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t\t\tlet body: any;\n\t\t\ttry {\n\t\t\t\tbody = JSON.parse(Buffer.concat(chunks).toString());\n\t\t\t} catch {\n\t\t\t\tres.writeHead(400).end(JSON.stringify({ error: \"Invalid JSON\" }));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Check if this is an initialize request (new session)\n\t\t\tconst isInitialize = Array.isArray(body)\n\t\t\t\t? body.some((m: { method?: string }) => m.method === \"initialize\")\n\t\t\t\t: body.method === \"initialize\";\n\n\t\t\tif (isInitialize) {\n\t\t\t\t// Create new session\n\t\t\t\tconst transport = new StreamableHTTPServerTransport({\n\t\t\t\t\tsessionIdGenerator: () => crypto.randomUUID(),\n\t\t\t\t});\n\t\t\t\t// Registered before handling so a close that races the first\n\t\t\t\t// request still drops the session.\n\t\t\t\ttransport.onclose = () => {\n\t\t\t\t\tif (transport.sessionId) sessions.delete(transport.sessionId);\n\t\t\t\t};\n\t\t\t\tconst server = createServer();\n\t\t\t\ttry {\n\t\t\t\t\tawait server.connect(transport);\n\t\t\t\t\t// The session id is assigned while the initialize is handled.\n\t\t\t\t\tawait transport.handleRequest(req, res, body);\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// A failed init must not leak its transport.\n\t\t\t\t\tawait transport.close().catch(() => {});\n\t\t\t\t\tif (!res.headersSent) {\n\t\t\t\t\t\tres\n\t\t\t\t\t\t\t.writeHead(500)\n\t\t\t\t\t\t\t.end(JSON.stringify({ error: \"Session initialization failed\" }));\n\t\t\t\t\t}\n\t\t\t\t\tconsole.error(\"MCP session init failed:\", err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (transport.sessionId) {\n\t\t\t\t\tsessions.add(transport.sessionId, transport);\n\t\t\t\t} else {\n\t\t\t\t\tawait transport.close().catch(() => {});\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Existing session\n\t\t\tconst existing = sessions.get(sessionId);\n\t\t\tif (!existing) {\n\t\t\t\tres\n\t\t\t\t\t.writeHead(400)\n\t\t\t\t\t.end(JSON.stringify({ error: \"Invalid or missing session ID\" }));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait existing.handleRequest(req, res, body);\n\t\t} else if (req.method === \"GET\") {\n\t\t\t// SSE stream for existing session\n\t\t\tconst existing = sessions.get(sessionId);\n\t\t\tif (!existing) {\n\t\t\t\tres\n\t\t\t\t\t.writeHead(400)\n\t\t\t\t\t.end(JSON.stringify({ error: \"Invalid or missing session ID\" }));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait existing.handleRequest(req, res);\n\t\t} else if (req.method === \"DELETE\") {\n\t\t\t// Session teardown\n\t\t\tconst transport = sessions.get(sessionId);\n\t\t\tif (sessionId && transport) {\n\t\t\t\tawait transport.handleRequest(req, res);\n\t\t\t\tawait transport.close();\n\t\t\t\tsessions.delete(sessionId);\n\t\t\t} else {\n\t\t\t\tres\n\t\t\t\t\t.writeHead(400)\n\t\t\t\t\t.end(JSON.stringify({ error: \"Invalid or missing session ID\" }));\n\t\t\t}\n\t\t} else {\n\t\t\tres.writeHead(405).end(JSON.stringify({ error: \"Method not allowed\" }));\n\t\t}\n\t},\n);\n\nhttpServer.listen(port, () => {\n\tconsole.error(`SecondLayer MCP HTTP server listening on port ${port}`);\n\tif (!secret)\n\t\tconsole.error(\n\t\t\t\"Warning: SECONDLAYER_MCP_SECRET not set, authentication disabled\",\n\t\t);\n});\n",
6
+ "/** Idle time after which an HTTP MCP session is closed. */\nexport const SESSION_IDLE_TTL_MS = 30 * 60 * 1000;\n\n/** How often the sweep looks for idle sessions. */\nexport const SESSION_SWEEP_INTERVAL_MS = 60 * 1000;\n\ninterface Closable {\n\tclose(): Promise<void>;\n}\n\ninterface Entry<T extends Closable> {\n\ttransport: T;\n\tlastSeen: number;\n}\n\n/**\n * HTTP MCP sessions with an idle TTL. A client that vanishes without a\n * DELETE would otherwise hold its transport (and server) forever. `get`\n * counts as activity; `sweep` closes whatever has been quiet past the TTL.\n */\nexport class SessionRegistry<T extends Closable> {\n\tprivate readonly entries = new Map<string, Entry<T>>();\n\n\tconstructor(\n\t\tprivate readonly ttlMs: number = SESSION_IDLE_TTL_MS,\n\t\tprivate readonly now: () => number = Date.now,\n\t) {}\n\n\tadd(id: string, transport: T): void {\n\t\tthis.entries.set(id, { transport, lastSeen: this.now() });\n\t}\n\n\t/** The live session, marked active; `undefined` when unknown or evicted. */\n\tget(id: string | undefined): T | undefined {\n\t\tif (!id) return undefined;\n\t\tconst entry = this.entries.get(id);\n\t\tif (!entry) return undefined;\n\t\tentry.lastSeen = this.now();\n\t\treturn entry.transport;\n\t}\n\n\tdelete(id: string): void {\n\t\tthis.entries.delete(id);\n\t}\n\n\tget size(): number {\n\t\treturn this.entries.size;\n\t}\n\n\t/** Close and drop every session idle longer than the TTL; returns their ids. */\n\tasync sweep(): Promise<string[]> {\n\t\tconst cutoff = this.now() - this.ttlMs;\n\t\tconst expired = [...this.entries].filter(\n\t\t\t([, entry]) => entry.lastSeen <= cutoff,\n\t\t);\n\t\tfor (const [id] of expired) this.entries.delete(id);\n\t\tawait Promise.allSettled(\n\t\t\texpired.map(([, entry]) => entry.transport.close()),\n\t\t);\n\t\treturn expired.map(([id]) => id);\n\t}\n\n\t/** Sweep on an interval; the timer does not keep the process alive. */\n\tstartSweeping(intervalMs: number = SESSION_SWEEP_INTERVAL_MS): () => void {\n\t\tconst timer = setInterval(() => {\n\t\t\tvoid this.sweep();\n\t\t}, intervalMs);\n\t\ttimer.unref?.();\n\t\treturn () => clearInterval(timer);\n\t}\n}\n",
7
+ "import { readFileSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport type { Icon } from \"@modelcontextprotocol/sdk/types.js\";\nimport { resolveBaseUrl } from \"@secondlayer/sdk\";\nimport { isHostedArchiveUrl } from \"./lib/hosted.ts\";\nimport { restrictTools } from \"./lib/tool.ts\";\nimport { registerResources } from \"./resources.ts\";\nimport {\n\tENV_TOOL_DEPS,\n\tTOOL_GROUPS,\n\ttype ToolDeps,\n\tisHostedTool,\n} from \"./tool-groups.ts\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst pkg = JSON.parse(\n\treadFileSync(join(__dirname, \"../package.json\"), \"utf-8\"),\n);\n\nexport type { ToolDeps } from \"./tool-groups.ts\";\n\n/** The server's icons, sent in `initialize` and listed in server.json (the\n * registry manifest); a test keeps the two equal. */\nexport const SERVER_ICONS: Icon[] = [\n\t{\n\t\tsrc: \"https://www.secondlayer.tools/icon.svg\",\n\t\tmimeType: \"image/svg+xml\",\n\t\tsizes: [\"any\"],\n\t},\n\t{\n\t\tsrc: \"https://www.secondlayer.tools/apple-icon\",\n\t\tmimeType: \"image/png\",\n\t\tsizes: [\"180x180\"],\n\t},\n];\n\nexport interface CreateServerOptions extends Partial<ToolDeps> {\n\t/**\n\t * The hosted MCP endpoint's server: only the tools each group marks\n\t * `hosted`, with credentials from the options rather than the environment.\n\t * Omitted, the server is the stdio/self-host one, reading env as always.\n\t */\n\thosted?: boolean;\n}\n\nexport function createServer(options: CreateServerOptions = {}): McpServer {\n\tconst server = new McpServer({\n\t\tname: \"secondlayer\",\n\t\tversion: pkg.version,\n\t\ticons: SERVER_ICONS,\n\t});\n\tconst deps: ToolDeps = {\n\t\tclientProvider: options.clientProvider ?? ENV_TOOL_DEPS.clientProvider,\n\t\tarchiveOpsClientProvider:\n\t\t\toptions.archiveOpsClientProvider ??\n\t\t\tENV_TOOL_DEPS.archiveOpsClientProvider,\n\t\tapiRequest: options.apiRequest ?? ENV_TOOL_DEPS.apiRequest,\n\t};\n\n\tif (options.hosted) {\n\t\tfor (const group of TOOL_GROUPS) {\n\t\t\tif (group.hosted === false) continue;\n\t\t\trestrictTools(server, (name) => isHostedTool(group, name));\n\t\t\tgroup.register(server, deps);\n\t\t}\n\t\trestrictTools(server, () => false);\n\t\tregisterResources(server, {\n\t\t\tclientProvider: deps.clientProvider,\n\t\t\thosted: true,\n\t\t});\n\t\treturn server;\n\t}\n\n\tconst hostedApi = isHostedArchiveUrl(resolveBaseUrl());\n\tfor (const { register, hostedOnly } of TOOL_GROUPS) {\n\t\tif (hostedOnly && !hostedApi) continue;\n\t\tregister(server, deps);\n\t}\n\tregisterResources(server, { clientProvider: deps.clientProvider });\n\n\treturn server;\n}\n",
7
8
  "export const HOSTED_ARCHIVE_HOST = \"api.secondlayer.tools\";\n\nexport function isHostedArchiveUrl(url: string): boolean {\n\ttry {\n\t\treturn new URL(url).hostname === HOSTED_ARCHIVE_HOST;\n\t} catch {\n\t\treturn false;\n\t}\n}\n",
8
9
  "import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { z } from \"zod\";\n\ninterface ToolResult {\n\tcontent: Array<{ type: \"text\"; text: string }>;\n\tisError?: boolean;\n}\n\n// Names of every tool registered via defineTool, in registration order. The\n// context resource generates its capability list from this so CAPABILITIES can\n// never drift behind the actual tool surface (a new tool auto-appears). A Set\n// dedupes across repeated createServer() calls in tests.\nconst registeredToolNames = new Set<string>();\n/** The same, per server: a hosted server lists only what it registered. */\nconst serverToolNames = new WeakMap<McpServer, Set<string>>();\n/** Which tools a server takes (createServer's hosted set); absent = all. */\nconst serverToolFilters = new WeakMap<McpServer, (name: string) => boolean>();\n\n/** Tool names registered so far: on `server`, or on any unrestricted server\n * in this process (see {@link defineTool}). */\nexport function getRegisteredToolNames(server?: McpServer): string[] {\n\treturn server\n\t\t? [...(serverToolNames.get(server) ?? [])]\n\t\t: [...registeredToolNames];\n}\n\n/** From now on, `server` registers only the tools `allow` accepts. */\nexport function restrictTools(\n\tserver: McpServer,\n\tallow: (name: string) => boolean,\n): void {\n\tserverToolFilters.set(server, allow);\n}\n\n/** API envelope fields worth handing back to the agent: the machine `code`,\n * the `request_id` to quote when reporting the failure, and where to report\n * it (`feedback.url`). Duck-typed: SDK errors (ApiError.body/code) and\n * apiRequest errors (body/code) both match; a plain Error yields {}. */\nexport function envelopeFields(err: unknown): {\n\tcode?: string;\n\trequest_id?: string;\n\tfeedback?: { url: string };\n} {\n\tif (!err || typeof err !== \"object\") return {};\n\tconst e = err as { code?: unknown; body?: unknown };\n\tconst body =\n\t\te.body && typeof e.body === \"object\"\n\t\t\t? (e.body as Record<string, unknown>)\n\t\t\t: {};\n\tconst code =\n\t\ttypeof e.code === \"string\"\n\t\t\t? e.code\n\t\t\t: typeof body.code === \"string\"\n\t\t\t\t? body.code\n\t\t\t\t: undefined;\n\tconst request_id =\n\t\ttypeof body.request_id === \"string\" ? body.request_id : undefined;\n\tconst fb = body.feedback as { url?: unknown } | undefined;\n\tconst feedback =\n\t\tfb && typeof fb === \"object\" && typeof fb.url === \"string\"\n\t\t\t? { url: fb.url }\n\t\t\t: undefined;\n\treturn {\n\t\t...(code ? { code } : {}),\n\t\t...(request_id ? { request_id } : {}),\n\t\t...(feedback ? { feedback } : {}),\n\t};\n}\n\n/**\n * Type-safe wrapper around McpServer.tool() that avoids TS2589.\n *\n * The MCP SDK's Zod-generic `tool()` signature recurses past TypeScript's\n * instantiation depth limit when schemas contain discriminated unions or\n * nested optionals. This helper isolates the boundary cast to one place\n * so tool files stay fully typed via the explicit `T` generic.\n *\n * Schema is typed as Record<string, unknown> to prevent TypeScript from\n * resolving the deeply recursive ZodRawShapeCompat constraint. Zod still\n * validates at runtime.\n */\nexport function defineTool<T>(\n\tserver: McpServer,\n\tname: string,\n\tdescription: string,\n\tschema: Record<string, unknown>,\n\thandler: (args: T) => Promise<ToolResult> | ToolResult,\n): void {\n\tconst wrappedHandler = async (args: T): Promise<ToolResult> => {\n\t\ttry {\n\t\t\treturn await handler(args);\n\t\t} catch (err: unknown) {\n\t\t\tconst message = err instanceof Error ? err.message : String(err);\n\t\t\tconst status =\n\t\t\t\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t\t\t\terr instanceof Error && \"status\" in err ? (err as any).status : 0;\n\t\t\tconst type =\n\t\t\t\tstatus === 401\n\t\t\t\t\t? \"unauthorized\"\n\t\t\t\t\t: status === 404\n\t\t\t\t\t\t? \"not_found\"\n\t\t\t\t\t\t: status === 429\n\t\t\t\t\t\t\t? \"rate_limited\"\n\t\t\t\t\t\t\t: status >= 500\n\t\t\t\t\t\t\t\t? \"server_error\"\n\t\t\t\t\t\t\t\t: \"error\";\n\t\t\treturn {\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: JSON.stringify({\n\t\t\t\t\t\t\terror: { type, status, message, ...envelopeFields(err) },\n\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tisError: true,\n\t\t\t};\n\t\t}\n\t};\n\tconst allow = serverToolFilters.get(server);\n\tif (allow && !allow(name)) return;\n\t// The process-wide list is the env server's; a restricted (hosted) server\n\t// keeps its own list only.\n\tif (!allow) registeredToolNames.add(name);\n\tconst names = serverToolNames.get(server) ?? new Set<string>();\n\tnames.add(name);\n\tserverToolNames.set(server, names);\n\tconst registered = (server.tool as (...args: unknown[]) => unknown)(\n\t\tname,\n\t\tdescription,\n\t\tschema,\n\t\twrappedHandler,\n\t) as { inputSchema?: unknown } | undefined;\n\t// `tool()` strips unknown arguments, so a misnamed filter would silently\n\t// widen a read. Reject them instead, naming the key.\n\tif (registered) {\n\t\tregistered.inputSchema = z.strictObject(schema as z.ZodRawShape);\n\t}\n}\n",
9
10
  "import {\n\ttype McpServer,\n\tResourceTemplate,\n} from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport {\n\ttype ContextField,\n\tisHostedApiUrl,\n\tresolveBaseUrl,\n} from \"@secondlayer/sdk\";\nimport { CHAIN_TRIGGER_FIELDS } from \"@secondlayer/shared\";\nimport { BOOTSTRAP_STEP } from \"@secondlayer/shared/archive/instance-diagnosis\";\nimport { TRAIT_STANDARDS } from \"@secondlayer/stacks/clarity\";\nimport {\n\ttype ColumnType,\n\tcamelizeKeys,\n\tfilterFieldsByType,\n} from \"@secondlayer/subgraphs\";\nimport { TYPE_MAP } from \"@secondlayer/subgraphs/schema\";\nimport { getClient, readApiKey } from \"./lib/client.ts\";\nimport { formatSubgraphSummary } from \"./lib/format.ts\";\nimport { getRegisteredToolNames } from \"./lib/tool.ts\";\n\n// SubgraphFilter vocabulary — the per-type fields an agent may set on a source\n// filter. Fields are hand-authored (the per-type breakdown lives only in the\n// SubgraphFilter interfaces), but the drift test in resources.test.ts locks the\n// type set to VALID_FILTER_TYPES and asserts every field is accepted by the\n// `.strict()` SubgraphFilterSchema, so this can never advertise a field the\n// validator rejects. `trait` (TraitScope) indexes all contracts of a standard\n// (e.g. all SIP-010 tokens). `prints` on print_event is type-level only (not a\n// runtime match field) and is intentionally omitted.\n// One-line human blurb per SIP trait standard, keyed by TRAIT_STANDARDS so a new\n// standard forces an entry here.\nconst TRAIT_BLURBS: Record<(typeof TRAIT_STANDARDS)[number], string> = {\n\t\"sip-009\": \"Non-fungible token (NFT) standard\",\n\t\"sip-010\": \"Fungible token standard\",\n\t\"sip-013\": \"Semi-fungible token standard\",\n};\n\n/**\n * Per-source-type filter fields, DERIVED from the subgraphs filter schema —\n * this was a hand-maintained parallel copy, so adding a field to a filter\n * left the agent-facing reference silently behind.\n */\nexport const FILTERS_REFERENCE: Array<{ type: string; fields: string[] }> =\n\tfilterFieldsByType();\n\n// Human blurb per column type, keyed by ColumnType so adding a type to the union\n// forces an entry here (the drift test in resources.test.ts asserts full coverage).\nconst COLUMN_TYPE_DESCRIPTIONS: Record<ColumnType, string> = {\n\ttext: \"UTF-8 string\",\n\tuint: \"Unsigned integer (Clarity uint) — NUMERIC for lossless 128-bit range\",\n\tint: \"Signed integer (Clarity int) — NUMERIC for lossless 128-bit range\",\n\tprincipal: \"Stacks address (standard or contract)\",\n\tboolean: \"Boolean value\",\n\ttimestamp: \"Timestamp with time zone\",\n\tjsonb: \"Arbitrary JSON data\",\n};\n\n// Derived from the subgraphs TYPE_MAP so the type→SQL mapping can't drift behind\n// the deployer (which is what actually creates the columns).\nexport const COLUMN_TYPES: Array<Record<string, unknown>> = [\n\t...(Object.keys(TYPE_MAP) as ColumnType[]).map((type) => ({\n\t\ttype,\n\t\tsqlType: TYPE_MAP[type],\n\t\tdescription: COLUMN_TYPE_DESCRIPTIONS[type],\n\t})),\n\t{\n\t\toptions: [\"nullable\", \"indexed\", \"search\"],\n\t\tdescription:\n\t\t\t\"Column options: nullable allows NULL, indexed creates a B-tree index, search enables full-text search\",\n\t},\n];\n\n// One-line human blurb per product surface; the tool list for each is\n// generated from the live tool registry (see buildCapabilities) so it can't\n// drift behind the actual surface.\nconst PRODUCT_BLURBS: Record<string, string> = {\n\tindex: \"decoded events, transfers, contract calls, blocks, transactions\",\n\tstreams:\n\t\t\"raw chain event firehose — cursor-paginated reads, tip/canonical/reorg checks, bulk parquet dumps\",\n\tcontracts: \"trait-based contract discovery and ABIs\",\n\tsubgraphs: \"author/scaffold/deploy/query custom indexes\",\n\twebhooks:\n\t\t\"a signed POST to a URL you run, on subgraph rows or raw chain events\",\n\taccount: \"identity and self-provisioned API keys\",\n\tcodegen: \"ORM schemas for the tables you read\",\n\tinstance: \"decoder health and empty-index diagnosis\",\n\tarchive: \"signed archive verify, bootstrap/repair, quote, latest pointer\",\n\tcredits: \"archive credits balance at api.secondlayer.tools\",\n};\n\nconst PRODUCT_ORDER = [\n\t\"index\",\n\t\"streams\",\n\t\"contracts\",\n\t\"subgraphs\",\n\t\"webhooks\",\n\t\"account\",\n\t\"codegen\",\n\t\"instance\",\n\t\"archive\",\n\t\"credits\",\n];\n\n/**\n * \"What you can do\" overview, generated from the registered tool names so every\n * tool surfaces under its product without a hand-maintained list to fall stale.\n * Tools register (via defineTool) before registerResources runs, so the\n * registry is fully populated by the time a context read calls this.\n */\nexport function buildCapabilities(server?: McpServer) {\n\tconst byPrefix = new Map<string, string[]>();\n\tfor (const name of getRegisteredToolNames(server)) {\n\t\tconst sep = name.indexOf(\"_\");\n\t\tconst prefix = sep === -1 ? name : name.slice(0, sep);\n\t\tconst tools = byPrefix.get(prefix) ?? [];\n\t\ttools.push(name);\n\t\tbyPrefix.set(prefix, tools);\n\t}\n\tconst order = [\n\t\t...PRODUCT_ORDER.filter((p) => byPrefix.has(p)),\n\t\t...[...byPrefix.keys()].filter((p) => !PRODUCT_ORDER.includes(p)),\n\t];\n\tconst products = order.map((p) => {\n\t\tconst tools = byPrefix.get(p) ?? [];\n\t\tconst blurb = PRODUCT_BLURBS[p];\n\t\treturn blurb\n\t\t\t? `${p} — ${blurb} (${tools.join(\", \")})`\n\t\t\t: `${p} (${tools.join(\", \")})`;\n\t});\n\treturn {\n\t\tproducts,\n\t\tdiscoverFirst:\n\t\t\t\"Call index_discover / contracts_find to learn what exists (and which filters each surface accepts) before querying.\",\n\t};\n}\n\n/** Per-product read-auth tiers — what an agent must know before reading. */\nfunction readAuthTiers(credential: string, hosted: boolean) {\n\tif (hosted) {\n\t\tconst reads = `keyed: every read uses ${credential} and is metered to the account's credits (the first 1M rows each month are free)`;\n\t\treturn { index: reads, streams: reads };\n\t}\n\tconst reads = `keyless while the API is only reachable on loopback; ${credential} is required once it is published past loopback`;\n\treturn {\n\t\tindex: reads,\n\t\tstreams: reads,\n\t\tsubgraphs: `reads at /v1/subgraphs/<name>/<table> ({ rows, next_cursor, tip } cursor envelope) follow the same loopback rule as the other read planes; writes always require ${credential}`,\n\t};\n}\n\n/** Credential the resolved API host expects: the account key on the hosted\n * API, the instance token anywhere else. */\nfunction credentialLabel(): string {\n\treturn isHostedApiUrl(resolveBaseUrl())\n\t\t? \"SECONDLAYER_API_KEY (an sk-sl_ account key)\"\n\t\t: \"INSTANCE_TOKEN\";\n}\n\ntype ContextDeps = {\n\tclientProvider: typeof getClient;\n\t/** The hosted MCP endpoint: the caller's own credential, not env. */\n\thosted?: boolean;\n\t/** Whose tools to list; omitted, every tool this process registered. */\n\tserver?: McpServer;\n};\n\nconst HOSTED_CREDENTIAL = \"the caller's OAuth sign-in (or sk-sl_ account key)\";\n\n/**\n * Assemble the live agent context read at connect: who you are, the live\n * Streams/Index tips, what you own (subgraphs/webhooks), any in-flight\n * reindex operations, what the agent can do, and the read-auth tiers. The\n * snapshot comes from the SDK's `context()` (shared with non-MCP agents); each\n * field that couldn't be read becomes a sentinel string so the resource never\n * throws and always orients the agent.\n */\nexport async function buildContext(\n\tdeps: ContextDeps = { clientProvider: getClient },\n) {\n\tconst credential = deps.hosted ? HOSTED_CREDENTIAL : credentialLabel();\n\tconst unavailable = `unavailable: set ${credential}`;\n\t// The SDK says why a field is missing; pass that reason through so the\n\t// agent can tell an unreachable API from a rejected token.\n\tconst orNull = <T>(field: ContextField<T> | undefined) => {\n\t\tif (!field) return unavailable;\n\t\tif (field.value != null) return field.value;\n\t\treturn field.error ? `unavailable: ${field.error.message}` : unavailable;\n\t};\n\n\tconst snap = await deps\n\t\t.clientProvider()\n\t\t.context()\n\t\t.catch(() => null);\n\n\tconst instance = snap?.instance?.value\n\t\t? snap.instance.value\n\t\t: orNull(snap?.instance);\n\n\treturn {\n\t\tauthState: {\n\t\t\t// Hosted: the request carried a credential, or it never got here.\n\t\t\tapiKeySet: deps.hosted ? true : Boolean(readApiKey()),\n\t\t},\n\t\twhatExists: {\n\t\t\taccount: orNull(snap?.account),\n\t\t\tstreamsTip: orNull(snap?.streamsTip),\n\t\t\tindexTip: orNull(snap?.indexTip),\n\t\t\tsubgraphs: snap?.subgraphs.value\n\t\t\t\t? snap.subgraphs.value.map(formatSubgraphSummary)\n\t\t\t\t: orNull(snap?.subgraphs),\n\t\t\twebhooks: orNull(snap?.webhooks),\n\t\t\tactiveOperations: orNull(snap?.activeOperations),\n\t\t\tinstance,\n\t\t},\n\t\twhatYouCanDo: buildCapabilities(deps.server),\n\t\treadAuthTiers: readAuthTiers(credential, Boolean(deps.hosted)),\n\t\t...(snap?.instance?.value?.state === \"empty-index\"\n\t\t\t? { nextStep: BOOTSTRAP_STEP }\n\t\t\t: {}),\n\t};\n}\n\nexport function registerResources(\n\tserver: McpServer,\n\tdeps: Omit<ContextDeps, \"server\"> = { clientProvider: getClient },\n) {\n\tconst contextDeps: ContextDeps = deps.hosted ? { ...deps, server } : deps;\n\tserver.resource(\n\t\t\"context\",\n\t\t\"secondlayer://context\",\n\t\t{\n\t\t\tdescription:\n\t\t\t\t\"Live agent context — what exists (your subgraphs, webhooks, account), what you can do, and read-auth tiers. Read this first.\",\n\t\t},\n\t\tasync () => ({\n\t\t\tcontents: [\n\t\t\t\t{\n\t\t\t\t\turi: \"secondlayer://context\",\n\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\ttext: JSON.stringify(await buildContext(contextDeps), null, 2),\n\t\t\t\t},\n\t\t\t],\n\t\t}),\n\t);\n\n\tserver.resource(\n\t\t\"filters\",\n\t\t\"secondlayer://filters\",\n\t\t{ description: \"Event filter types and their available fields\" },\n\t\tasync () => ({\n\t\t\tcontents: [\n\t\t\t\t{\n\t\t\t\t\turi: \"secondlayer://filters\",\n\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\ttext: JSON.stringify(FILTERS_REFERENCE, null, 2),\n\t\t\t\t},\n\t\t\t],\n\t\t}),\n\t);\n\n\tserver.resource(\n\t\t\"column-types\",\n\t\t\"secondlayer://column-types\",\n\t\t{ description: \"Subgraph column types, SQL mappings, and options\" },\n\t\tasync () => ({\n\t\t\tcontents: [\n\t\t\t\t{\n\t\t\t\t\turi: \"secondlayer://column-types\",\n\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\ttext: JSON.stringify(COLUMN_TYPES, null, 2),\n\t\t\t\t},\n\t\t\t],\n\t\t}),\n\t);\n\n\tserver.resource(\n\t\t\"traits\",\n\t\t\"secondlayer://traits\",\n\t\t{\n\t\t\tdescription:\n\t\t\t\t\"SIP trait standards the platform can classify and scaffold against — the valid values for contracts_find `trait` and subgraph scaffold `--trait`.\",\n\t\t},\n\t\tasync () => ({\n\t\t\tcontents: [\n\t\t\t\t{\n\t\t\t\t\turi: \"secondlayer://traits\",\n\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\ttext: JSON.stringify(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttraits: TRAIT_STANDARDS.map((id) => ({\n\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\tdescription: TRAIT_BLURBS[id],\n\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t2,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t],\n\t\t}),\n\t);\n\n\t// Webhook triggers: the hosted MCP has no webhook tools.\n\tif (!deps.hosted) {\n\t\tserver.resource(\n\t\t\t\"chain-triggers\",\n\t\t\t\"secondlayer://chain-triggers\",\n\t\t\t{\n\t\t\t\tdescription:\n\t\t\t\t\t\"Chain-webhook trigger types and the filter fields each accepts (for webhooks_create triggers).\",\n\t\t\t},\n\t\t\tasync () => ({\n\t\t\t\tcontents: [\n\t\t\t\t\t{\n\t\t\t\t\t\turi: \"secondlayer://chain-triggers\",\n\t\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\t\ttext: JSON.stringify(CHAIN_TRIGGER_FIELDS, null, 2),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}),\n\t\t);\n\t}\n\n\t// Template: 5 camelCased print samples + empirical field list. Host-loadable.\n\t// Decoded camel data only — never raw_value hex dumps.\n\tserver.resource(\n\t\t\"samples\",\n\t\tnew ResourceTemplate(\"secondlayer://samples/{contractId}\", {\n\t\t\tlist: undefined,\n\t\t}),\n\t\t{\n\t\t\tdescription:\n\t\t\t\t\"Decoded camelCase print samples for a contract (schema + up to 5 events). Use before writing a print_event handler.\",\n\t\t},\n\t\tasync (uri, variables) => {\n\t\t\tconst contractId = String(\n\t\t\t\tArray.isArray(variables.contractId)\n\t\t\t\t\t? variables.contractId[0]\n\t\t\t\t\t: (variables.contractId ?? \"\"),\n\t\t\t);\n\t\t\tconst body = await buildSamplesResource(contractId, deps.clientProvider);\n\t\t\treturn {\n\t\t\t\tcontents: [\n\t\t\t\t\t{\n\t\t\t\t\t\turi: uri.href,\n\t\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\t\ttext: JSON.stringify(body, null, 2),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n}\n\nfunction jsonSafe(value: unknown): unknown {\n\tif (typeof value === \"bigint\") return value.toString();\n\tif (value === null || value === undefined) return value;\n\tif (Array.isArray(value)) return value.map(jsonSafe);\n\tif (typeof value === \"object\") {\n\t\tconst out: Record<string, unknown> = {};\n\t\tfor (const [k, v] of Object.entries(value as Record<string, unknown>)) {\n\t\t\tout[k] = jsonSafe(v);\n\t\t}\n\t\treturn out;\n\t}\n\treturn value;\n}\n\n/** Build the samples resource body (exported for tests). */\nexport async function buildSamplesResource(\n\tcontractId: string,\n\tclientProvider: typeof getClient = getClient,\n): Promise<Record<string, unknown>> {\n\tconst client = clientProvider();\n\tconst printSchema = await client.index.printSchema(contractId);\n\tconst envelope = await client.index.events.list({\n\t\teventType: \"print\",\n\t\tcontractId,\n\t\tlimit: 5,\n\t});\n\n\tconst schema =\n\t\tprintSchema?.topics.map((t) => ({\n\t\t\ttopic: t.topic,\n\t\t\tfields: t.fields.map((f) => ({\n\t\t\t\tcamel: f.camel_name,\n\t\t\t\tsnake: f.name.replace(/-/g, \"_\"),\n\t\t\t\tcolumn_type: f.column_type,\n\t\t\t\talways: f.always_present,\n\t\t\t})),\n\t\t})) ?? [];\n\n\tconst samples = (envelope.events ?? []).slice(0, 5).map((ev) => {\n\t\tconst payload = ev.payload as\n\t\t\t| { topic?: string | null; value?: unknown }\n\t\t\t| undefined;\n\t\tconst data = jsonSafe(camelizeKeys(payload?.value)) as Record<\n\t\t\tstring,\n\t\t\tunknown\n\t\t>;\n\t\treturn {\n\t\t\ttxId: ev.tx_id,\n\t\t\theight: ev.block_height,\n\t\t\ttopic: payload?.topic ?? \"\",\n\t\t\tdata: data ?? {},\n\t\t};\n\t});\n\n\treturn {\n\t\tcontractId,\n\t\thandlerShape: \"event.data is camelCase; columns are snake_case\",\n\t\tschema,\n\t\tsamples,\n\t};\n}\n",
10
- "import {\n\tSecondLayer,\n\tisHostedApiUrl,\n\tresolveAccountKey,\n\tresolveApiKey,\n\tresolveBaseUrl,\n} from \"@secondlayer/sdk\";\n\nlet instance: SecondLayer | null = null;\n\n/** Hosted archive ops (credits/quote/latest). Never INSTANCE_TOKEN. */\nexport const HOSTED_KEY_HINT =\n\t\"set SECONDLAYER_API_KEY (sk-sl_*) for credits; INSTANCE_TOKEN is the instance\";\n\nconst DEFAULT_ARCHIVE_OPS_URL = \"https://api.secondlayer.tools\";\n\n/**\n * Read the request credential for the resolved API host: `SECONDLAYER_API_KEY`\n * on api.secondlayer.tools, `INSTANCE_TOKEN` elsewhere. Delegated to the SDK so\n * the MCP server and SDK resolve identically.\n */\nexport function readApiKey(): string | undefined {\n\treturn resolveApiKey(undefined, resolveBaseUrl());\n}\n\n/**\n * Lazy SDK singleton. Built keyless when no key is set so read tools (list,\n * get, query, spec) work during open beta — reads are public. Write tools\n * (deploy/reindex/delete) and account tools hit the API without a key and get\n * a 401, surfaced with a key hint via `keyHint` below.\n */\nexport function getClient(): SecondLayer {\n\tif (!instance) {\n\t\tconst apiKey = readApiKey();\n\t\tconst baseUrl = resolveBaseUrl();\n\t\tconst dumpsBaseUrl = process.env.SL_STREAMS_DUMPS_URL;\n\t\tinstance = new SecondLayer({\n\t\t\t...(apiKey ? { apiKey } : {}),\n\t\t\torigin: \"mcp\",\n\t\t\tbaseUrl,\n\t\t\t...(dumpsBaseUrl ? { dumpsBaseUrl } : {}),\n\t\t});\n\t}\n\treturn instance;\n}\n\n/** `sk-sl_*` for api.secondlayer.tools. Empty/unset is missing — never fall\n * back to INSTANCE_TOKEN. Reads SECONDLAYER_API_KEY via the SDK helper. */\nexport function readArchiveApiKey(): string | undefined {\n\treturn resolveAccountKey();\n}\n\n/**\n * Separate client for hosted archive ops. `archiveOpsUrl` defaults to\n * `https://api.secondlayer.tools`. Bearer is the hosted account key.\n */\nexport function getArchiveOpsClient(): SecondLayer {\n\tconst accountKey = readArchiveApiKey();\n\tif (!accountKey) {\n\t\tthrow new Error(HOSTED_KEY_HINT);\n\t}\n\tconst archiveOpsUrl =\n\t\tprocess.env.SL_CREDITS_API_URL ||\n\t\tprocess.env.ARCHIVE_OPS_API_URL ||\n\t\tDEFAULT_ARCHIVE_OPS_URL;\n\treturn new SecondLayer({\n\t\taccountKey,\n\t\torigin: \"mcp\",\n\t\tarchiveOpsUrl,\n\t});\n}\n\n// Appended to 401/403 errors raised on keyless requests — the operation needs\n// a write/account key, so point at where to get one.\nexport function keyHint(baseUrl: string = resolveBaseUrl()): string {\n\treturn isHostedApiUrl(baseUrl)\n\t\t? \" — set SECONDLAYER_API_KEY (an sk-sl_ key from secondlayer.tools/account/keys)\"\n\t\t: \" — set INSTANCE_TOKEN from `sl init` for writes\";\n}\n\n/** A raw request to an API endpoint the SDK doesn't cover. */\nexport type ApiRequest = <T>(\n\tmethod: string,\n\tpath: string,\n\tbody?: unknown,\n) => Promise<T>;\n\n/**\n * An {@link ApiRequest} against `baseUrl` with `apiKey` as the bearer. A\n * 401/403 on a keyless request gets a hint naming the key to set.\n */\nexport function createApiRequest(config: {\n\tbaseUrl: string;\n\tapiKey?: string;\n\tfetchImpl?: typeof fetch;\n}): ApiRequest {\n\tconst doFetch = config.fetchImpl ?? ((...args) => fetch(...args));\n\treturn async <T>(method: string, path: string, body?: unknown) => {\n\t\tconst { baseUrl, apiKey } = config;\n\t\tconst res = await doFetch(`${baseUrl}${path}`, {\n\t\t\tmethod,\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\t...(apiKey ? { Authorization: `Bearer ${apiKey}` } : {}),\n\t\t\t},\n\t\t\tbody: body ? JSON.stringify(body) : undefined,\n\t\t});\n\t\tif (!res.ok) {\n\t\t\tconst text = await res.text().catch(() => \"\");\n\t\t\tconst needsKey = !apiKey && (res.status === 401 || res.status === 403);\n\t\t\tlet parsed: unknown;\n\t\t\ttry {\n\t\t\t\tparsed = text ? JSON.parse(text) : undefined;\n\t\t\t} catch {\n\t\t\t\tparsed = undefined;\n\t\t\t}\n\t\t\tconst code =\n\t\t\t\tparsed &&\n\t\t\t\ttypeof parsed === \"object\" &&\n\t\t\t\ttypeof (parsed as { code?: unknown }).code === \"string\"\n\t\t\t\t\t? (parsed as { code: string }).code\n\t\t\t\t\t: undefined;\n\t\t\tthrow Object.assign(\n\t\t\t\tnew Error(\n\t\t\t\t\t(text || `HTTP ${res.status}`) + (needsKey ? keyHint(baseUrl) : \"\"),\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\tstatus: res.status,\n\t\t\t\t\t...(parsed !== undefined ? { body: parsed } : {}),\n\t\t\t\t\t...(code ? { code } : {}),\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t\tif (res.status === 204) return undefined as T;\n\t\treturn res.json() as Promise<T>;\n\t};\n}\n\n/** Raw fetch helper for API endpoints not covered by the SDK. Reads the base\n * URL and key from env on every call. */\nexport const apiRequest: ApiRequest = (method, path, body) =>\n\tcreateApiRequest({ baseUrl: resolveBaseUrl(), apiKey: readApiKey() })(\n\t\tmethod,\n\t\tpath,\n\t\tbody,\n\t);\n",
11
+ "import {\n\tSecondLayer,\n\tisHostedApiUrl,\n\tresolveAccountKey,\n\tresolveApiKey,\n\tresolveBaseUrl,\n\tresolveIdentity,\n} from \"@secondlayer/sdk\";\n\nlet instance: SecondLayer | null = null;\n\n/** Hosted archive ops (credits/quote/latest). Never INSTANCE_TOKEN. */\nexport const HOSTED_KEY_HINT =\n\t\"set SECONDLAYER_API_KEY (sk-sl_*) for credits; INSTANCE_TOKEN is the instance\";\n\n/**\n * Read the request credential for the resolved API host: `SECONDLAYER_API_KEY`\n * on api.secondlayer.tools, `INSTANCE_TOKEN` elsewhere. Delegated to the SDK so\n * the MCP server and SDK resolve identically.\n */\nexport function readApiKey(): string | undefined {\n\treturn resolveApiKey(undefined, resolveBaseUrl());\n}\n\n/**\n * Lazy SDK singleton. Built keyless when no key is set so read tools (list,\n * get, query, spec) work during open beta — reads are public. Write tools\n * (deploy/reindex/delete) and account tools hit the API without a key and get\n * a 401, surfaced with a key hint via `keyHint` below.\n */\nexport function getClient(): SecondLayer {\n\tif (!instance) {\n\t\tconst apiKey = readApiKey();\n\t\tconst baseUrl = resolveBaseUrl();\n\t\tconst dumpsBaseUrl = process.env.SL_STREAMS_DUMPS_URL;\n\t\tinstance = new SecondLayer({\n\t\t\t...(apiKey ? { apiKey } : {}),\n\t\t\torigin: \"mcp\",\n\t\t\tbaseUrl,\n\t\t\t...(dumpsBaseUrl ? { dumpsBaseUrl } : {}),\n\t\t});\n\t}\n\treturn instance;\n}\n\n/** `sk-sl_*` for api.secondlayer.tools. Empty/unset is missing — never fall\n * back to INSTANCE_TOKEN. Reads SECONDLAYER_API_KEY via the SDK helper. */\nexport function readArchiveApiKey(): string | undefined {\n\treturn resolveAccountKey();\n}\n\n/**\n * Separate client for hosted archive ops. `archiveOpsUrl` defaults to\n * `https://api.secondlayer.tools`. Bearer is the hosted account key.\n */\nexport function getArchiveOpsClient(): SecondLayer {\n\tconst { token, url } = resolveIdentity(\"account\");\n\tif (!token) {\n\t\tthrow new Error(HOSTED_KEY_HINT);\n\t}\n\treturn new SecondLayer({\n\t\taccountKey: token,\n\t\torigin: \"mcp\",\n\t\tarchiveOpsUrl: url,\n\t});\n}\n\n// Appended to 401/403 errors raised on keyless requests — the operation needs\n// a write/account key, so point at where to get one.\nexport function keyHint(baseUrl: string = resolveBaseUrl()): string {\n\treturn isHostedApiUrl(baseUrl)\n\t\t? \" — set SECONDLAYER_API_KEY (an sk-sl_ key from secondlayer.tools/account/keys)\"\n\t\t: \" — set INSTANCE_TOKEN from `sl init` for writes\";\n}\n\n/** A raw request to an API endpoint the SDK doesn't cover. */\nexport type ApiRequest = <T>(\n\tmethod: string,\n\tpath: string,\n\tbody?: unknown,\n) => Promise<T>;\n\n/**\n * An {@link ApiRequest} against `baseUrl` with `apiKey` as the bearer. A\n * 401/403 on a keyless request gets a hint naming the key to set.\n */\nexport function createApiRequest(config: {\n\tbaseUrl: string;\n\tapiKey?: string;\n\tfetchImpl?: typeof fetch;\n}): ApiRequest {\n\tconst doFetch = config.fetchImpl ?? ((...args) => fetch(...args));\n\treturn async <T>(method: string, path: string, body?: unknown) => {\n\t\tconst { baseUrl, apiKey } = config;\n\t\tconst res = await doFetch(`${baseUrl}${path}`, {\n\t\t\tmethod,\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\t...(apiKey ? { Authorization: `Bearer ${apiKey}` } : {}),\n\t\t\t},\n\t\t\tbody: body ? JSON.stringify(body) : undefined,\n\t\t});\n\t\tif (!res.ok) {\n\t\t\tconst text = await res.text().catch(() => \"\");\n\t\t\tconst needsKey = !apiKey && (res.status === 401 || res.status === 403);\n\t\t\tlet parsed: unknown;\n\t\t\ttry {\n\t\t\t\tparsed = text ? JSON.parse(text) : undefined;\n\t\t\t} catch {\n\t\t\t\tparsed = undefined;\n\t\t\t}\n\t\t\tconst code =\n\t\t\t\tparsed &&\n\t\t\t\ttypeof parsed === \"object\" &&\n\t\t\t\ttypeof (parsed as { code?: unknown }).code === \"string\"\n\t\t\t\t\t? (parsed as { code: string }).code\n\t\t\t\t\t: undefined;\n\t\t\tthrow Object.assign(\n\t\t\t\tnew Error(\n\t\t\t\t\t(text || `HTTP ${res.status}`) + (needsKey ? keyHint(baseUrl) : \"\"),\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\tstatus: res.status,\n\t\t\t\t\t...(parsed !== undefined ? { body: parsed } : {}),\n\t\t\t\t\t...(code ? { code } : {}),\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t\tif (res.status === 204) return undefined as T;\n\t\treturn res.json() as Promise<T>;\n\t};\n}\n\n/** Raw fetch helper for API endpoints not covered by the SDK. Reads the base\n * URL and key from env on every call. */\nexport const apiRequest: ApiRequest = (method, path, body) =>\n\tcreateApiRequest({ baseUrl: resolveBaseUrl(), apiKey: readApiKey() })(\n\t\tmethod,\n\t\tpath,\n\t\tbody,\n\t);\n",
11
12
  "/** Summarize a subgraph for list responses. */\nexport function formatSubgraphSummary(s: {\n\tname: string;\n\tstatus: string;\n\ttables: string[] | Record<string, unknown>;\n\tlastProcessedBlock: number;\n}) {\n\treturn {\n\t\tname: s.name,\n\t\tstatus: s.status,\n\t\ttables: Array.isArray(s.tables) ? s.tables : Object.keys(s.tables),\n\t\tlastProcessedBlock: s.lastProcessedBlock,\n\t};\n}\n\n/** Cap array length and return truncation metadata. */\nexport function withCap<T>(\n\titems: T[],\n\tcap: number,\n): { items: T[]; truncated: boolean; total: number } {\n\treturn {\n\t\titems: items.slice(0, cap),\n\t\ttruncated: items.length > cap,\n\t\ttotal: items.length,\n\t};\n}\n\n/** Build MCP text response with JSON-serialized payload. */\nexport function jsonResponse(\n\tdata: unknown,\n\tisError?: boolean,\n): { content: Array<{ type: \"text\"; text: string }>; isError?: boolean } {\n\treturn {\n\t\tcontent: [{ type: \"text\", text: JSON.stringify(data, null, 2) }],\n\t\t...(isError && { isError: true }),\n\t};\n}\n\n/** Build MCP text response with plain text payload. */\nexport function textResponse(\n\ttext: string,\n\tisError?: boolean,\n): { content: Array<{ type: \"text\"; text: string }>; isError?: boolean } {\n\treturn {\n\t\tcontent: [{ type: \"text\", text }],\n\t\t...(isError && { isError: true }),\n\t};\n}\n",
12
13
  "import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { z } from \"zod\";\nimport { type ApiRequest, apiRequest, readApiKey } from \"../lib/client.ts\";\nimport { jsonResponse } from \"../lib/format.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\nexport function registerAccountTools(\n\tserver: McpServer,\n\trequest: ApiRequest = apiRequest,\n\tcurrentKey: () => string | undefined = readApiKey,\n) {\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"account_whoami\",\n\t\t\"Show the archive account email at api.secondlayer.tools, not the self-host instance.\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst result = await request<{ email: string }>(\n\t\t\t\t\"GET\",\n\t\t\t\t\"/api/accounts/me\",\n\t\t\t);\n\t\t\treturn jsonResponse(result);\n\t\t},\n\t);\n\n\tdefineTool<{ name?: string }>(\n\t\tserver,\n\t\t\"account_create_key\",\n\t\t\"Mint an account key (sk-sl_*) for archive credits, quote, and fetch at api.secondlayer.tools. The returned `key` is shown ONCE.\",\n\t\t{\n\t\t\tname: z.string().optional().describe(\"Optional label for the key\"),\n\t\t},\n\t\tasync ({ name }) =>\n\t\t\tjsonResponse(await request(\"POST\", \"/api/keys\", { name })),\n\t);\n\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"account_list_keys\",\n\t\t\"List this account's active account keys at api.secondlayer.tools: id, prefix, name, last read. Never returns a secret. Use an id with account_rotate_key.\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst keys = await activeAccountKeys(request);\n\t\t\treturn jsonResponse({ keys });\n\t\t},\n\t);\n\n\tdefineTool<{ id: string }>(\n\t\tserver,\n\t\t\"account_rotate_key\",\n\t\t\"Replace an account key's secret at api.secondlayer.tools, keeping its name. The old secret gets 401 at once, with no grace period, so everything using it breaks until updated: get human confirmation first. The returned key is shown ONCE. Refuses the key this server runs on.\",\n\t\t{\n\t\t\tid: z.string().uuid().describe(\"Key id from account_list_keys\"),\n\t\t},\n\t\tasync ({ id }) => {\n\t\t\tconst { keys } = await request<{ keys: ListedKey[] }>(\"GET\", \"/api/keys\");\n\t\t\tconst row = keys.find((k) => k.id === id);\n\t\t\tif (row && currentKey()?.startsWith(row.prefix)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"This server runs on that key and can't update its own env. Rotate it with the secondlayer CLI or on /account/keys, then restart the server.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn jsonResponse(await request(\"POST\", `/api/keys/${id}/rotate`, {}));\n\t\t},\n\t);\n}\n\n/** The slice of a `GET /api/keys` row these tools use. */\ninterface ListedKey {\n\tid: string;\n\tprefix: string;\n\tstatus: string;\n\tproduct: string;\n\trowsDaily?: number[];\n}\n\nasync function activeAccountKeys(request: ApiRequest) {\n\tconst { keys } = await request<{ keys: ListedKey[] }>(\"GET\", \"/api/keys\");\n\treturn keys\n\t\t.filter((k) => k.status === \"active\" && k.product === \"account\")\n\t\t.map(({ rowsDaily: _rowsDaily, ...rest }) => rest);\n}\n",
13
14
  "import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { z } from \"zod\";\nimport { execSecondlayer } from \"../lib/exec-cli.ts\";\nimport { jsonResponse } from \"../lib/format.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\ntype ExecFn = typeof execSecondlayer;\n\nfunction cliResponse(result: {\n\tcode: number;\n\tstdout: string;\n\tstderr: string;\n}) {\n\treturn jsonResponse(result, result.code !== 0);\n}\n\n/** `archive_bootstrap` and `archive_repair`: the archive verbs that run\n * through the local CLI (`secondlayer bootstrap` / `repair`). */\nexport function registerArchiveCliTools(\n\tserver: McpServer,\n\texec: ExecFn = execSecondlayer,\n) {\n\tdefineTool<{\n\t\tagainst: string;\n\t\tfromBlock?: number;\n\t\ttoBlock?: number;\n\t}>(\n\t\tserver,\n\t\t\"archive_bootstrap\",\n\t\t\"Restore verified history into this instance (secondlayer bootstrap --against … --yes --json). Metered against the official archive; quote happens inside the CLI. After bootstrap, poll instance_status until decoders ok, then archive_verify, then codegen_index_schema. Do not download parquet.\",\n\t\t{\n\t\t\tagainst: z.string().describe(\"Archive manifest URL\"),\n\t\t\tfromBlock: z\n\t\t\t\t.number()\n\t\t\t\t.int()\n\t\t\t\t.nonnegative()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Restore from this height instead of genesis\"),\n\t\t\ttoBlock: z\n\t\t\t\t.number()\n\t\t\t\t.int()\n\t\t\t\t.nonnegative()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Stop at this height instead of the archive tip\"),\n\t\t},\n\t\tasync ({ against, fromBlock, toBlock }) => {\n\t\t\tconst args = [\"--against\", against, \"--yes\", \"--json\"];\n\t\t\tif (fromBlock !== undefined) args.push(\"--from-block\", String(fromBlock));\n\t\t\tif (toBlock !== undefined) args.push(\"--to-block\", String(toBlock));\n\t\t\treturn cliResponse(await exec(\"bootstrap\", args));\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tagainst: string;\n\t\tapply?: boolean;\n\t\tfromBlock?: number;\n\t\ttoBlock?: number;\n\t}>(\n\t\tserver,\n\t\t\"archive_repair\",\n\t\t\"Plan (default) or apply a repair of local chain data against a signed archive. Metered when apply fetches from the official archive. After apply, poll instance_status until decoders ok, then archive_verify. Do not download parquet.\",\n\t\t{\n\t\t\tagainst: z.string().describe(\"Archive manifest URL\"),\n\t\t\tapply: z\n\t\t\t\t.boolean()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Write the repair (default plan-only)\"),\n\t\t\tfromBlock: z\n\t\t\t\t.number()\n\t\t\t\t.int()\n\t\t\t\t.nonnegative()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"First height to consider\"),\n\t\t\ttoBlock: z\n\t\t\t\t.number()\n\t\t\t\t.int()\n\t\t\t\t.nonnegative()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Last height to consider\"),\n\t\t},\n\t\tasync ({ against, apply, fromBlock, toBlock }) => {\n\t\t\tconst args = [\"--against\", against, \"--json\"];\n\t\t\tif (apply) args.push(\"--apply\", \"--yes\");\n\t\t\tif (fromBlock !== undefined) args.push(\"--from-block\", String(fromBlock));\n\t\t\tif (toBlock !== undefined) args.push(\"--to-block\", String(toBlock));\n\t\t\treturn cliResponse(await exec(\"repair\", args));\n\t\t},\n\t);\n}\n",
@@ -23,7 +24,7 @@
23
24
  "import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport type {\n\tChainTrigger,\n\tCreateWebhookRequest,\n\tUpdateWebhookRequest,\n} from \"@secondlayer/sdk\";\nimport { CHAIN_TRIGGER_TYPES } from \"@secondlayer/shared\";\nimport { z } from \"zod\";\nimport { getClient } from \"../lib/client.ts\";\nimport { jsonResponse } from \"../lib/format.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\ntype WebhookClientProvider = typeof getClient;\n\n/**\n * Webhook MCP tools — let agents list, configure, test, and replay\n * webhook delivery. Mirrors the HTTP API 1:1; structured errors bubble\n * through the SDK's ApiError.\n */\nexport function registerWebhookTools(\n\tserver: McpServer,\n\tclientProvider: WebhookClientProvider = getClient,\n) {\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"webhooks_list\",\n\t\t\"List all webhooks for the current account. Returns summary fields (no secrets).\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst { data } = await clientProvider().webhooks.list();\n\t\t\treturn jsonResponse(data);\n\t\t},\n\t);\n\tdefineTool<{ id: string }>(\n\t\tserver,\n\t\t\"webhooks_get\",\n\t\t\"Get full detail for a webhook (triggers, auth, retry config, circuit state).\",\n\t\t{ id: z.string().describe(\"Webhook id\") },\n\t\tasync ({ id }) => {\n\t\t\tconst detail = await clientProvider().webhooks.get(id);\n\t\t\treturn jsonResponse(detail);\n\t\t},\n\t);\n\tdefineTool<{\n\t\tname: string;\n\t\ttriggers: ChainTrigger[];\n\t\turl: string;\n\t\tformat?:\n\t\t\t| \"standard-webhooks\"\n\t\t\t| \"inngest\"\n\t\t\t| \"trigger\"\n\t\t\t| \"cloudflare\"\n\t\t\t| \"cloudevents\"\n\t\t\t| \"raw\";\n\t\tauthConfig?: Record<string, unknown>;\n\t}>(\n\t\tserver,\n\t\t\"webhooks_create\",\n\t\t\"Create a webhook that fires on raw chain events (set triggers). Returns `signingSecret` ONCE — forward it to the user so they can wire it into their receiver.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Human-readable name, unique per account\"),\n\t\t\ttriggers: z\n\t\t\t\t.array(\n\t\t\t\t\tz.object({\n\t\t\t\t\t\ttype: z.enum(CHAIN_TRIGGER_TYPES),\n\t\t\t\t\t\tcontractId: z.string().optional(),\n\t\t\t\t\t\tfunctionName: z.string().optional(),\n\t\t\t\t\t\tcaller: z.string().optional(),\n\t\t\t\t\t\tsender: z.string().optional(),\n\t\t\t\t\t\trecipient: z.string().optional(),\n\t\t\t\t\t\tassetIdentifier: z.string().optional(),\n\t\t\t\t\t\tdeployer: z.string().optional(),\n\t\t\t\t\t\tcontractName: z.string().optional(),\n\t\t\t\t\t\ttopic: z.string().optional(),\n\t\t\t\t\t\tlockedAddress: z.string().optional(),\n\t\t\t\t\t\ttrait: z.string().optional(),\n\t\t\t\t\t\tminAmount: z.union([z.string(), z.number()]).optional(),\n\t\t\t\t\t\tmaxAmount: z.union([z.string(), z.number()]).optional(),\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\t.describe(\n\t\t\t\t\t\"Chain triggers. Each targets a raw chain event/tx; string fields accept `*` wildcards, `trait` scopes to a SIP/trait. Per-type accepted fields: see the secondlayer://chain-triggers resource. Forward-looking: starts at chain tip, no backfill.\",\n\t\t\t\t),\n\t\t\turl: z.string().describe(\"Webhook URL\"),\n\t\t\tformat: z\n\t\t\t\t.enum([\n\t\t\t\t\t\"standard-webhooks\",\n\t\t\t\t\t\"inngest\",\n\t\t\t\t\t\"trigger\",\n\t\t\t\t\t\"cloudflare\",\n\t\t\t\t\t\"cloudevents\",\n\t\t\t\t\t\"raw\",\n\t\t\t\t])\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Wire format (default standard-webhooks)\"),\n\t\t\tauthConfig: z\n\t\t\t\t.record(z.string(), z.unknown())\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t'Receiver auth sent with each delivery, e.g. {\"type\": \"bearer\", \"token\": \"...\"}',\n\t\t\t\t),\n\t\t},\n\t\tasync (input) => {\n\t\t\tconst res = await clientProvider().webhooks.create(\n\t\t\t\tinput as CreateWebhookRequest,\n\t\t\t);\n\t\t\treturn jsonResponse(res);\n\t\t},\n\t);\n\tdefineTool<{\n\t\tid: string;\n\t\tname?: string;\n\t\turl?: string;\n\t\tauthConfig?: Record<string, unknown>;\n\t\tformat?:\n\t\t\t| \"standard-webhooks\"\n\t\t\t| \"inngest\"\n\t\t\t| \"trigger\"\n\t\t\t| \"cloudflare\"\n\t\t\t| \"cloudevents\"\n\t\t\t| \"raw\";\n\t\tmaxRetries?: number;\n\t\ttimeoutMs?: number;\n\t\tconcurrency?: number;\n\t}>(\n\t\tserver,\n\t\t\"webhooks_update\",\n\t\t\"Patch a webhook (name, url, authConfig, format, retry, timeout, concurrency).\",\n\t\t{\n\t\t\tid: z.string(),\n\t\t\tname: z.string().optional().describe(\"Rename the webhook\"),\n\t\t\turl: z.string().optional(),\n\t\t\tauthConfig: z\n\t\t\t\t.record(z.string(), z.unknown())\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Receiver auth sent with each delivery (bearer/etc.)\"),\n\t\t\tformat: z\n\t\t\t\t.enum([\n\t\t\t\t\t\"standard-webhooks\",\n\t\t\t\t\t\"inngest\",\n\t\t\t\t\t\"trigger\",\n\t\t\t\t\t\"cloudflare\",\n\t\t\t\t\t\"cloudevents\",\n\t\t\t\t\t\"raw\",\n\t\t\t\t])\n\t\t\t\t.optional(),\n\t\t\tmaxRetries: z.number().int().min(0).optional(),\n\t\t\ttimeoutMs: z.number().int().min(100).optional(),\n\t\t\tconcurrency: z.number().int().min(1).optional(),\n\t\t},\n\t\tasync ({ id, ...patch }) => {\n\t\t\tconst res = await clientProvider().webhooks.update(\n\t\t\t\tid,\n\t\t\t\tpatch as UpdateWebhookRequest,\n\t\t\t);\n\t\t\treturn jsonResponse(res);\n\t\t},\n\t);\n\tdefineTool<{ id: string }>(\n\t\tserver,\n\t\t\"webhooks_delete\",\n\t\t\"Delete a webhook. Pending outbox rows are cascade-deleted.\",\n\t\t{ id: z.string() },\n\t\tasync ({ id }) => {\n\t\t\tconst res = await clientProvider().webhooks.delete(id);\n\t\t\treturn jsonResponse(res);\n\t\t},\n\t);\n\tdefineTool<{ id: string }>(\n\t\tserver,\n\t\t\"webhooks_test\",\n\t\t\"Send a one-off test webhook to a webhook's URL (built for its format, SSRF-guarded). Logged as a delivery row. Returns {ok, statusCode, error, durationMs, deliveryId}.\",\n\t\t{ id: z.string().describe(\"Webhook id\") },\n\t\tasync ({ id }) => {\n\t\t\tconst res = await clientProvider().webhooks.test(id);\n\t\t\treturn jsonResponse(res);\n\t\t},\n\t);\n\tdefineTool<{ id: string }>(\n\t\tserver,\n\t\t\"webhooks_pause\",\n\t\t\"Pause a webhook: stops delivery attempts and stops queueing new ones. Nothing is deleted — resume picks the webhook back up from the tip. Verify with webhooks_get (status).\",\n\t\t{ id: z.string().describe(\"Webhook id\") },\n\t\tasync ({ id }) => jsonResponse(await clientProvider().webhooks.pause(id)),\n\t);\n\tdefineTool<{ id: string }>(\n\t\tserver,\n\t\t\"webhooks_resume\",\n\t\t\"Resume a paused webhook (also clears a tripped circuit breaker). Deliveries restart from the current tip — use webhooks_replay for the blocks missed while paused. Verify with webhooks_get (status).\",\n\t\t{ id: z.string().describe(\"Webhook id\") },\n\t\tasync ({ id }) => jsonResponse(await clientProvider().webhooks.resume(id)),\n\t);\n\tdefineTool<{ id: string }>(\n\t\tserver,\n\t\t\"webhooks_rotate_secret\",\n\t\t\"Rotate a webhook's signing secret. Returns the NEW `signingSecret` ONCE — forward it to the user; deliveries signed with the old secret stop verifying as soon as this returns, so the receiver must be updated.\",\n\t\t{ id: z.string().describe(\"Webhook id\") },\n\t\tasync ({ id }) =>\n\t\t\tjsonResponse(await clientProvider().webhooks.rotateSecret(id)),\n\t);\n\tdefineTool<{ id: string }>(\n\t\tserver,\n\t\t\"webhooks_deliveries\",\n\t\t\"List recent delivery attempts for a webhook — status code, attempt count, error, duration, timestamps. THIS IS THE VERIFY CALL: after webhooks_create, webhooks_test, or webhooks_replay, read it to confirm the webhook actually landed (and to see the receiver's response when it didn't) instead of trusting the enqueue result.\",\n\t\t{ id: z.string().describe(\"Webhook id\") },\n\t\tasync ({ id }) =>\n\t\t\tjsonResponse(await clientProvider().webhooks.deliveries(id)),\n\t);\n\tdefineTool<{ id: string }>(\n\t\tserver,\n\t\t\"webhooks_dead\",\n\t\t\"List a webhook's dead-letter queue — deliveries that exhausted their retries, with the outbox id, payload, and last error. Diagnose the receiver first (webhooks_get for the URL/auth, webhooks_test for a live probe), then requeue rows with webhooks_requeue.\",\n\t\t{ id: z.string().describe(\"Webhook id\") },\n\t\tasync ({ id }) => jsonResponse(await clientProvider().webhooks.dead(id)),\n\t);\n\tdefineTool<{ id: string; outboxId: string }>(\n\t\tserver,\n\t\t\"webhooks_requeue\",\n\t\t\"Requeue ONE dead-lettered delivery for another attempt, by its outbox id from webhooks_dead. Fix the receiver first — a requeue against a still-broken endpoint just dies again. Verify with webhooks_deliveries.\",\n\t\t{\n\t\t\tid: z.string().describe(\"Webhook id\"),\n\t\t\toutboxId: z\n\t\t\t\t.string()\n\t\t\t\t.describe(\"Outbox id of the dead delivery (from webhooks_dead)\"),\n\t\t},\n\t\tasync ({ id, outboxId }) =>\n\t\t\tjsonResponse(await clientProvider().webhooks.requeue(id, outboxId)),\n\t);\n\tdefineTool<{\n\t\tid: string;\n\t\tfromBlock: number;\n\t\ttoBlock: number;\n\t\tforce?: string;\n\t}>(\n\t\tserver,\n\t\t\"webhooks_replay\",\n\t\t\"Replay a block range for a webhook. Replays run at 10% of batch capacity — use sparingly. Pass `force` (a short idempotency suffix) to re-run a range that was already replayed.\",\n\t\t{\n\t\t\tid: z.string(),\n\t\t\tfromBlock: z.number().int().nonnegative(),\n\t\t\ttoBlock: z.number().int().nonnegative(),\n\t\t\tforce: z\n\t\t\t\t.string()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t\"Idempotency suffix to force a duplicate replay of the range\",\n\t\t\t\t),\n\t\t},\n\t\tasync ({ id, fromBlock, toBlock, force }) => {\n\t\t\tconst res = await clientProvider().webhooks.replay(id, {\n\t\t\t\tfromBlock,\n\t\t\t\ttoBlock,\n\t\t\t\t...(force !== undefined ? { force } : {}),\n\t\t\t});\n\t\t\treturn jsonResponse(res);\n\t\t},\n\t);\n}\n",
24
25
  "import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport type { SecondLayer } from \"@secondlayer/sdk\";\nimport {\n\ttype ApiRequest,\n\tapiRequest,\n\tgetArchiveOpsClient,\n\tgetClient,\n} from \"./lib/client.ts\";\nimport { registerAccountTools } from \"./tools/account.ts\";\nimport { registerArchiveCliTools } from \"./tools/archive-cli.ts\";\nimport { registerArchiveTools } from \"./tools/archive.ts\";\nimport { registerCodegenTools } from \"./tools/codegen.ts\";\nimport { registerContractTools } from \"./tools/contracts.ts\";\nimport { registerIndexTools } from \"./tools/index.ts\";\nimport { registerInstanceTools } from \"./tools/instance.ts\";\nimport { registerScaffoldTools } from \"./tools/scaffold.ts\";\nimport { registerStreamsTools } from \"./tools/streams.ts\";\nimport { registerSubgraphTools } from \"./tools/subgraphs.ts\";\nimport { registerWebhookTools } from \"./tools/webhooks.ts\";\n\n/** Where tools get their credentials. Omitted, each reads the environment\n * (the stdio and self-host servers). */\nexport interface ToolDeps {\n\tclientProvider: () => SecondLayer;\n\tarchiveOpsClientProvider: () => SecondLayer;\n\tapiRequest: ApiRequest;\n}\n\nexport const ENV_TOOL_DEPS: ToolDeps = {\n\tclientProvider: getClient,\n\tarchiveOpsClientProvider: getArchiveOpsClient,\n\tapiRequest,\n};\n\nexport interface ToolGroup {\n\tgroup: string;\n\tregister: (server: McpServer, deps?: ToolDeps) => void;\n\t/** Registered only when the base URL is the hosted archive. */\n\thostedOnly?: true;\n\t/**\n\t * Served by the hosted MCP endpoint (`api.secondlayer.tools/mcp`): `true`\n\t * for every tool in the group, `false` for none, or the exact tools that\n\t * are. A hosted tool only calls the API and returns text: nothing that\n\t * writes files, spawns a process, needs a self-host-only route, or mints a\n\t * credential. Every group must choose.\n\t */\n\thosted: boolean | readonly string[];\n}\n\n/**\n * Every tool group, in registration order. The one list `createServer()`, the\n * docs tool table generator (scripts/sync-tools.ts) and the parity extractor\n * all read, so a new group cannot reach the server without reaching the docs.\n */\nexport const TOOL_GROUPS: readonly ToolGroup[] = [\n\t{\n\t\tgroup: \"scaffold\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterScaffoldTools(s, d.clientProvider),\n\t\thosted: true,\n\t},\n\t{\n\t\tgroup: \"subgraphs\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterSubgraphTools(s, d.clientProvider),\n\t\t// Deploy/test write temp files, and hosted runs no subgraphs.\n\t\thosted: false,\n\t},\n\t{\n\t\tgroup: \"webhooks\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterWebhookTools(s, d.clientProvider),\n\t\t// Webhook routes are self-host only on this API.\n\t\thosted: false,\n\t},\n\t{\n\t\tgroup: \"index\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) => registerIndexTools(s, d.clientProvider),\n\t\thosted: true,\n\t},\n\t{\n\t\tgroup: \"streams\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterStreamsTools(s, d.clientProvider),\n\t\thosted: true,\n\t},\n\t{\n\t\tgroup: \"contracts\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterContractTools(s, d.clientProvider),\n\t\thosted: true,\n\t},\n\t{ group: \"codegen\", register: (s) => registerCodegenTools(s), hosted: false },\n\t{\n\t\tgroup: \"instance\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterInstanceTools(s, d.clientProvider),\n\t\t// Self-host diagnosis.\n\t\thosted: false,\n\t},\n\t{\n\t\tgroup: \"archive\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterArchiveTools(s, d.clientProvider, d.archiveOpsClientProvider),\n\t\thosted: false,\n\t},\n\t{\n\t\tgroup: \"archive\",\n\t\t// Spawns the local CLI.\n\t\tregister: (s) => registerArchiveCliTools(s),\n\t\thosted: false,\n\t},\n\t{\n\t\tgroup: \"account\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) => registerAccountTools(s, d.apiRequest),\n\t\thostedOnly: true,\n\t\t// Never `account_create_key`: an app must not mint a durable key.\n\t\thosted: [\"account_whoami\"],\n\t},\n];\n\n/** Whether the hosted MCP endpoint serves `tool` from `group`. */\nexport function isHostedTool(group: ToolGroup, tool: string): boolean {\n\treturn (\n\t\tgroup.hosted === true ||\n\t\t(Array.isArray(group.hosted) && group.hosted.includes(tool))\n\t);\n}\n"
25
26
  ],
26
- "mappings": "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",
27
- "debugId": "2D47CECF2113416564756E2164756E21",
27
+ "mappings": "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",
28
+ "debugId": "9E64E6D44D8BC3B364756E2164756E21",
28
29
  "names": []
29
30
  }