@secondlayer/mcp 0.3.1 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin-http.js +518 -313
- package/dist/bin-http.js.map +16 -16
- package/dist/bin.js +514 -311
- package/dist/bin.js.map +15 -15
- package/dist/index.js +514 -311
- package/dist/index.js.map +15 -15
- package/package.json +41 -41
package/dist/index.js.map
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/server.ts", "../src/tools/
|
|
3
|
+
"sources": ["../src/server.ts", "../src/resources.ts", "../src/tools/streams.ts", "../src/lib/client.ts", "../src/lib/format.ts", "../src/lib/tool.ts", "../src/tools/account.ts", "../src/tools/scaffold.ts", "../src/lib/scaffold-generate.ts", "../src/tools/subgraphs.ts", "../src/lib/bundle.ts", "../src/tools/templates.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"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 {
|
|
6
|
-
"import
|
|
7
|
-
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\n\ninterface ToolResult {\n content: Array<{ type: \"text\"; text: string }>;\n isError?: boolean;\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 server: McpServer,\n name: string,\n description: string,\n schema: Record<string, unknown>,\n handler: (args: T) => Promise<ToolResult> | ToolResult,\n): void {\n const wrappedHandler = async (args: T): Promise<ToolResult> => {\n try {\n return await handler(args);\n } catch (err: unknown) {\n const message = err instanceof Error ? err.message : String(err);\n const status = err instanceof Error && \"status\" in err ? (err as any).status : 0;\n const type =\n status === 401 ? \"unauthorized\" :\n status === 404 ? \"not_found\" :\n status === 429 ? \"rate_limited\" :\n status >= 500 ? \"server_error\" : \"error\";\n return {\n content: [{ type: \"text\", text: JSON.stringify({ error: { type, status, message } }) }],\n isError: true,\n };\n }\n };\n (server.tool as Function)(name, description, schema, wrappedHandler);\n}\n",
|
|
8
|
-
"import {
|
|
9
|
-
"
|
|
10
|
-
"import
|
|
11
|
-
"import {
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"import
|
|
15
|
-
"import
|
|
16
|
-
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport {
|
|
5
|
+
"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 { registerResources } from \"./resources.ts\";\nimport { registerAccountTools } from \"./tools/account.ts\";\nimport { registerScaffoldTools } from \"./tools/scaffold.ts\";\nimport { registerStreamTools } from \"./tools/streams.ts\";\nimport { registerSubgraphTools } from \"./tools/subgraphs.ts\";\nimport { registerTemplateTools } from \"./tools/templates.ts\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst pkg = JSON.parse(\n\treadFileSync(join(__dirname, \"../package.json\"), \"utf-8\"),\n);\n\nexport function createServer(): McpServer {\n\tconst server = new McpServer({\n\t\tname: \"secondlayer\",\n\t\tversion: pkg.version,\n\t});\n\n\tregisterTemplateTools(server);\n\tregisterScaffoldTools(server);\n\tregisterStreamTools(server);\n\tregisterSubgraphTools(server);\n\tregisterAccountTools(server);\n\tregisterResources(server);\n\n\treturn server;\n}\n",
|
|
6
|
+
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { templates } from \"@secondlayer/subgraphs/templates\";\nimport { FilterSchema } from \"./tools/streams.ts\";\n\n/** Derived from FilterSchema — single source of truth for filter types and fields. */\nconst FILTERS_REFERENCE = FilterSchema.options.map((opt) => ({\n\ttype: opt.shape.type.def.values[0] as string,\n\tfields: Object.keys(opt.shape).filter((k) => k !== \"type\"),\n}));\n\nconst COLUMN_TYPES = [\n\t{\n\t\ttype: \"uint\",\n\t\tsqlType: \"bigint\",\n\t\tdescription: \"Unsigned integer (Clarity uint)\",\n\t},\n\t{\n\t\ttype: \"int\",\n\t\tsqlType: \"bigint\",\n\t\tdescription: \"Signed integer (Clarity int)\",\n\t},\n\t{ type: \"text\", sqlType: \"text\", description: \"UTF-8 string\" },\n\t{\n\t\ttype: \"principal\",\n\t\tsqlType: \"text\",\n\t\tdescription: \"Stacks address (standard or contract)\",\n\t},\n\t{ type: \"bool\", sqlType: \"boolean\", description: \"Boolean value\" },\n\t{ type: \"json\", sqlType: \"jsonb\", description: \"Arbitrary JSON data\" },\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\nexport function registerResources(server: McpServer) {\n\tserver.resource(\n\t\t\"filters\",\n\t\t\"secondlayer://filters\",\n\t\t{ description: \"Stream 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\"templates\",\n\t\t\"secondlayer://templates\",\n\t\t{\n\t\t\tdescription:\n\t\t\t\t\"Available subgraph templates with descriptions and categories\",\n\t\t},\n\t\tasync () => ({\n\t\t\tcontents: [\n\t\t\t\t{\n\t\t\t\t\turi: \"secondlayer://templates\",\n\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\ttext: JSON.stringify(\n\t\t\t\t\t\ttemplates.map(({ id, name, description, category }) => ({\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\tdescription,\n\t\t\t\t\t\t\tcategory,\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",
|
|
7
|
+
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { z } from \"zod/v4\";\nimport { apiRequest, getClient } from \"../lib/client.ts\";\nimport {\n\tformatDeliverySummary,\n\tformatStreamSummary,\n\twithCap,\n} from \"../lib/format.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\n/** Filter schema — full 13-type discriminated union for MCP JSON Schema generation. */\nexport const FilterSchema = z.discriminatedUnion(\"type\", [\n\tz.object({\n\t\ttype: z.literal(\"stx_transfer\"),\n\t\tsender: z.string().optional(),\n\t\trecipient: z.string().optional(),\n\t\tminAmount: z.number().optional(),\n\t\tmaxAmount: z.number().optional(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"stx_mint\"),\n\t\trecipient: z.string().optional(),\n\t\tminAmount: z.number().optional(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"stx_burn\"),\n\t\tsender: z.string().optional(),\n\t\tminAmount: z.number().optional(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"stx_lock\"),\n\t\tlockedAddress: z.string().optional(),\n\t\tminAmount: z.number().optional(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"ft_transfer\"),\n\t\tsender: z.string().optional(),\n\t\trecipient: z.string().optional(),\n\t\tassetIdentifier: z.string().optional(),\n\t\tminAmount: z.number().optional(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"ft_mint\"),\n\t\trecipient: z.string().optional(),\n\t\tassetIdentifier: z.string().optional(),\n\t\tminAmount: z.number().optional(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"ft_burn\"),\n\t\tsender: z.string().optional(),\n\t\tassetIdentifier: z.string().optional(),\n\t\tminAmount: z.number().optional(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"nft_transfer\"),\n\t\tsender: z.string().optional(),\n\t\trecipient: z.string().optional(),\n\t\tassetIdentifier: z.string().optional(),\n\t\ttokenId: z.string().optional(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"nft_mint\"),\n\t\trecipient: z.string().optional(),\n\t\tassetIdentifier: z.string().optional(),\n\t\ttokenId: z.string().optional(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"nft_burn\"),\n\t\tsender: z.string().optional(),\n\t\tassetIdentifier: z.string().optional(),\n\t\ttokenId: z.string().optional(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"contract_call\"),\n\t\tcontractId: z.string().optional(),\n\t\tfunctionName: z.string().optional(),\n\t\tcaller: z.string().optional(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"contract_deploy\"),\n\t\tdeployer: z.string().optional(),\n\t\tcontractName: z.string().optional(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"print_event\"),\n\t\tcontractId: z.string().optional(),\n\t\ttopic: z.string().optional(),\n\t\tcontains: z.string().optional(),\n\t}),\n]);\n\ntype Filter = z.infer<typeof FilterSchema>;\n\nexport function registerStreamTools(server: McpServer) {\n\tdefineTool<{ status?: string }>(\n\t\tserver,\n\t\t\"streams_list\",\n\t\t\"List all webhook streams. Returns summary fields only.\",\n\t\t{\n\t\t\tstatus: z\n\t\t\t\t.enum([\"active\", \"inactive\", \"paused\", \"failed\"])\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Filter by status\"),\n\t\t},\n\t\tasync ({ status }) => {\n\t\t\tconst { streams } = await getClient().streams.list(\n\t\t\t\tstatus ? { status } : undefined,\n\t\t\t);\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(streams.map(formatStreamSummary), null, 2),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ id: string }>(\n\t\tserver,\n\t\t\"streams_get\",\n\t\t\"Get full details of a stream by ID (accepts UUID prefix).\",\n\t\t{ id: z.string().describe(\"Stream UUID or prefix\") },\n\t\tasync ({ id }) => {\n\t\t\tconst stream = await getClient().streams.get(id);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(stream, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string; endpointUrl: string; filters: Filter[] }>(\n\t\tserver,\n\t\t\"streams_create\",\n\t\t\"Create a new webhook stream with filters.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Stream name\"),\n\t\t\tendpointUrl: z.string().describe(\"Webhook endpoint URL\"),\n\t\t\tfilters: z\n\t\t\t\t.array(FilterSchema)\n\t\t\t\t.min(1)\n\t\t\t\t.describe(\"Event filters (at least one required)\"),\n\t\t},\n\t\tasync ({ name, endpointUrl, filters }) => {\n\t\t\tconst result = await getClient().streams.create({\n\t\t\t\tname,\n\t\t\t\tendpointUrl,\n\t\t\t\tfilters,\n\t\t\t});\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\t{ id: result.stream.id, signingSecret: result.signingSecret },\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tid: string;\n\t\tname?: string;\n\t\tendpointUrl?: string;\n\t\tfilters?: Filter[];\n\t}>(\n\t\tserver,\n\t\t\"streams_update\",\n\t\t\"Update a stream's name, endpoint, or filters.\",\n\t\t{\n\t\t\tid: z.string().describe(\"Stream UUID or prefix\"),\n\t\t\tname: z.string().optional().describe(\"New name\"),\n\t\t\tendpointUrl: z.string().optional().describe(\"New endpoint URL\"),\n\t\t\tfilters: z.array(FilterSchema).min(1).optional().describe(\"New filters\"),\n\t\t},\n\t\tasync ({ id, name, endpointUrl, filters }) => {\n\t\t\tconst data: Record<string, unknown> = {};\n\t\t\tif (name !== undefined) data.name = name;\n\t\t\tif (endpointUrl !== undefined) data.endpointUrl = endpointUrl;\n\t\t\tif (filters !== undefined) data.filters = filters;\n\t\t\tconst stream = await getClient().streams.update(id, data as any);\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(formatStreamSummary(stream), null, 2),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ id: string }>(\n\t\tserver,\n\t\t\"streams_delete\",\n\t\t\"Delete a stream permanently.\",\n\t\t{ id: z.string().describe(\"Stream UUID or prefix\") },\n\t\tasync ({ id }) => {\n\t\t\tawait getClient().streams.delete(id);\n\t\t\treturn { content: [{ type: \"text\", text: `Stream ${id} deleted.` }] };\n\t\t},\n\t);\n\n\tdefineTool<{ id: string; enabled: boolean }>(\n\t\tserver,\n\t\t\"streams_toggle\",\n\t\t\"Enable or disable a stream.\",\n\t\t{\n\t\t\tid: z.string().describe(\"Stream UUID or prefix\"),\n\t\t\tenabled: z.boolean().describe(\"true to enable, false to disable\"),\n\t\t},\n\t\tasync ({ id, enabled }) => {\n\t\t\tconst stream = enabled\n\t\t\t\t? await getClient().streams.enable(id)\n\t\t\t\t: await getClient().streams.disable(id);\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\t{ id: stream.id, status: stream.status },\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ id: string; limit?: number; status?: string }>(\n\t\tserver,\n\t\t\"streams_deliveries\",\n\t\t\"List recent deliveries for a stream (max 25).\",\n\t\t{\n\t\t\tid: z.string().describe(\"Stream UUID or prefix\"),\n\t\t\tlimit: z.number().max(25).optional().describe(\"Max results (default 25)\"),\n\t\t\tstatus: z.string().optional().describe(\"Filter by delivery status\"),\n\t\t},\n\t\tasync ({ id, limit, status }) => {\n\t\t\tconst { deliveries } = await getClient().streams.listDeliveries(id, {\n\t\t\t\tlimit: limit ?? 25,\n\t\t\t\tstatus,\n\t\t\t});\n\t\t\tconst result = withCap(deliveries.map(formatDeliverySummary), 25);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ confirm?: boolean }>(\n\t\tserver,\n\t\t\"streams_pause_all\",\n\t\t\"Pause all active streams. Without confirm: true, returns a preview of streams that would be paused.\",\n\t\t{\n\t\t\tconfirm: z\n\t\t\t\t.boolean()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Set to true to execute. Omit or false for preview only.\"),\n\t\t},\n\t\tasync ({ confirm }) => {\n\t\t\tif (!confirm) {\n\t\t\t\tconst { streams } = await getClient().streams.list({\n\t\t\t\t\tstatus: \"active\",\n\t\t\t\t});\n\t\t\t\tconst names = streams.map((s) => s.name);\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: JSON.stringify(\n\t\t\t\t\t\t\t\t{ preview: true, count: names.length, streams: names },\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst result = await getClient().streams.pauseAll();\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\t{\n\t\t\t\t\t\t\t\tpaused: result.paused,\n\t\t\t\t\t\t\t\tstreams: result.streams.map(formatStreamSummary),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ confirm?: boolean }>(\n\t\tserver,\n\t\t\"streams_resume_all\",\n\t\t\"Resume all paused streams. Without confirm: true, returns a preview of streams that would be resumed.\",\n\t\t{\n\t\t\tconfirm: z\n\t\t\t\t.boolean()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Set to true to execute. Omit or false for preview only.\"),\n\t\t},\n\t\tasync ({ confirm }) => {\n\t\t\tif (!confirm) {\n\t\t\t\tconst { streams } = await getClient().streams.list({\n\t\t\t\t\tstatus: \"paused\",\n\t\t\t\t});\n\t\t\t\tconst names = streams.map((s) => s.name);\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: JSON.stringify(\n\t\t\t\t\t\t\t\t{ preview: true, count: names.length, streams: names },\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst result = await getClient().streams.resumeAll();\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\t{\n\t\t\t\t\t\t\t\tresumed: result.resumed,\n\t\t\t\t\t\t\t\tstreams: result.streams.map(formatStreamSummary),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ id: string; fromBlock: number; toBlock: number }>(\n\t\tserver,\n\t\t\"streams_replay\",\n\t\t\"Replay blocks through a stream, re-delivering events for a block range.\",\n\t\t{\n\t\t\tid: z.string().describe(\"Stream UUID or prefix\"),\n\t\t\tfromBlock: z.number().describe(\"Start block height (inclusive)\"),\n\t\t\ttoBlock: z.number().describe(\"End block height (inclusive)\"),\n\t\t},\n\t\tasync ({ id, fromBlock, toBlock }) => {\n\t\t\tconst result = await apiRequest<{\n\t\t\t\tstreamId: string;\n\t\t\t\tfromBlock: number;\n\t\t\t\ttoBlock: number;\n\t\t\t\tjobCount: number;\n\t\t\t\tmessage: string;\n\t\t\t}>(\"POST\", `/api/streams/${id}/replay`, { fromBlock, toBlock });\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ id: string }>(\n\t\tserver,\n\t\t\"streams_rotate_secret\",\n\t\t\"Rotate the signing secret for a stream. Returns the new secret.\",\n\t\t{ id: z.string().describe(\"Stream UUID or prefix\") },\n\t\tasync ({ id }) => {\n\t\t\tconst result = await getClient().streams.rotateSecret(id);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n}\n",
|
|
8
|
+
"import { SecondLayer } from \"@secondlayer/sdk\";\n\nlet instance: SecondLayer | null = null;\n\n/** Lazy SDK singleton from SECONDLAYER_API_KEY env var. */\nexport function getClient(): SecondLayer {\n\tif (!instance) {\n\t\tconst apiKey = process.env.SECONDLAYER_API_KEY;\n\t\tif (!apiKey) {\n\t\t\tthrow new Error(\n\t\t\t\t\"SECONDLAYER_API_KEY environment variable is required. \" +\n\t\t\t\t\t\"Get your key at https://app.secondlayer.tools/settings/api-keys\",\n\t\t\t);\n\t\t}\n\t\tinstance = new SecondLayer({ apiKey });\n\t}\n\treturn instance;\n}\n\n/** Raw fetch helper for API endpoints not covered by the SDK. */\nexport async function apiRequest<T>(\n\tmethod: string,\n\tpath: string,\n\tbody?: unknown,\n): Promise<T> {\n\tconst apiKey = process.env.SECONDLAYER_API_KEY;\n\tif (!apiKey) throw new Error(\"SECONDLAYER_API_KEY required\");\n\tconst baseUrl =\n\t\tprocess.env.SECONDLAYER_API_URL || \"https://api.secondlayer.tools\";\n\tconst res = await fetch(`${baseUrl}${path}`, {\n\t\tmethod,\n\t\theaders: {\n\t\t\t\"Content-Type\": \"application/json\",\n\t\t\tAuthorization: `Bearer ${apiKey}`,\n\t\t},\n\t\tbody: body ? JSON.stringify(body) : undefined,\n\t});\n\tif (!res.ok) {\n\t\tconst text = await res.text().catch(() => \"\");\n\t\tthrow Object.assign(new Error(text || `HTTP ${res.status}`), {\n\t\t\tstatus: res.status,\n\t\t});\n\t}\n\tif (res.status === 204) return undefined as T;\n\treturn res.json() as Promise<T>;\n}\n",
|
|
9
|
+
"/** Summarize a stream for list responses. */\nexport function formatStreamSummary(s: {\n\tid: string;\n\tname: string;\n\tstatus: string;\n\tendpointUrl: string;\n\ttotalDeliveries: number;\n\tfailedDeliveries: number;\n}) {\n\treturn {\n\t\tid: s.id,\n\t\tname: s.name,\n\t\tstatus: s.status,\n\t\tendpointUrl: s.endpointUrl,\n\t\ttotalDeliveries: s.totalDeliveries,\n\t\tfailedDeliveries: s.failedDeliveries,\n\t};\n}\n\n/** 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/** Summarize delivery for list responses. */\nexport function formatDeliverySummary(d: {\n\tid: string;\n\tblockHeight: number;\n\tstatus: string;\n\tstatusCode: number | null;\n\tattempts: number;\n\tcreatedAt: string;\n}) {\n\treturn {\n\t\tid: d.id,\n\t\tblockHeight: d.blockHeight,\n\t\tstatus: d.status,\n\t\tstatusCode: d.statusCode,\n\t\tattempts: d.attempts,\n\t\tcreatedAt: d.createdAt,\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",
|
|
10
|
+
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\n\ninterface ToolResult {\n\tcontent: Array<{ type: \"text\"; text: string }>;\n\tisError?: boolean;\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\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({ error: { type, status, message } }),\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\t(server.tool as Function)(name, description, schema, wrappedHandler);\n}\n",
|
|
11
|
+
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { apiRequest } from \"../lib/client.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\nexport function registerAccountTools(server: McpServer) {\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"account_whoami\",\n\t\t\"Show the authenticated account's email and plan.\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst result = await apiRequest<{ email: string; plan: string }>(\n\t\t\t\t\"GET\",\n\t\t\t\t\"/api/accounts/me\",\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n}\n",
|
|
12
|
+
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { z } from \"zod/v4\";\nimport { generateSubgraphCode } from \"../lib/scaffold-generate.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\nconst API_BASE =\n\tprocess.env.SECONDLAYER_API_URL || \"https://api.secondlayer.tools\";\n\nasync function fetchAbi(\n\tcontractId: string,\n): Promise<{ functions: any[]; maps: any[] }> {\n\tconst res = await fetch(`${API_BASE}/api/node/contracts/${contractId}/abi`, {\n\t\tsignal: AbortSignal.timeout(10_000),\n\t});\n\tif (!res.ok) {\n\t\tif (res.status === 404)\n\t\t\tthrow new Error(`Contract not found: ${contractId}`);\n\t\tthrow new Error(`Failed to fetch ABI: HTTP ${res.status}`);\n\t}\n\tconst abi = (await res.json()) as Record<string, any>;\n\treturn {\n\t\tfunctions: abi.functions ?? [],\n\t\tmaps: abi.maps ?? [],\n\t};\n}\n\nexport function registerScaffoldTools(server: McpServer) {\n\tdefineTool<{ contractId: string; subgraphName?: string }>(\n\t\tserver,\n\t\t\"scaffold_from_contract\",\n\t\t\"Generate a subgraph scaffold from a deployed Stacks contract. Fetches the ABI automatically.\",\n\t\t{\n\t\t\tcontractId: z\n\t\t\t\t.string()\n\t\t\t\t.describe(\n\t\t\t\t\t\"Fully qualified contract ID (e.g. SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.amm-pool-v2-01)\",\n\t\t\t\t),\n\t\t\tsubgraphName: z\n\t\t\t\t.string()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Override the subgraph name (defaults to contract name)\"),\n\t\t},\n\t\tasync ({ contractId, subgraphName }) => {\n\t\t\tconst { functions, maps } = await fetchAbi(contractId);\n\t\t\tconst code = generateSubgraphCode(\n\t\t\t\tcontractId,\n\t\t\t\tfunctions,\n\t\t\t\tsubgraphName,\n\t\t\t\tmaps,\n\t\t\t);\n\t\t\treturn { content: [{ type: \"text\", text: code }] };\n\t\t},\n\t);\n\n\tdefineTool<{ abi: string; contractId: string; subgraphName?: string }>(\n\t\tserver,\n\t\t\"scaffold_from_abi\",\n\t\t\"Generate a subgraph scaffold from a provided ABI JSON. Use when you already have the ABI.\",\n\t\t{\n\t\t\tabi: z\n\t\t\t\t.string()\n\t\t\t\t.describe(\"ABI JSON string (the full contract ABI object)\"),\n\t\t\tcontractId: z.string().describe(\"Fully qualified contract ID\"),\n\t\t\tsubgraphName: z\n\t\t\t\t.string()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Override the subgraph name\"),\n\t\t},\n\t\tasync ({ abi, contractId, subgraphName }) => {\n\t\t\tlet parsed: Record<string, any>;\n\t\t\ttry {\n\t\t\t\tparsed = JSON.parse(abi);\n\t\t\t} catch {\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: \"Invalid ABI JSON\" }],\n\t\t\t\t\tisError: true,\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst code = generateSubgraphCode(\n\t\t\t\tcontractId,\n\t\t\t\tparsed.functions ?? [],\n\t\t\t\tsubgraphName,\n\t\t\t\tparsed.maps ?? [],\n\t\t\t);\n\t\t\treturn { content: [{ type: \"text\", text: code }] };\n\t\t},\n\t);\n}\n",
|
|
13
|
+
"/**\n * Subgraph scaffold generator — copied from apps/web/src/lib/scaffold/generate.ts.\n * Browser-safe, pure string templating, no deps.\n */\n\ntype AbiType = string | Record<string, unknown>;\n\ninterface AbiFunction {\n\tname: string;\n\taccess: \"public\" | \"read-only\" | \"private\";\n\targs: ReadonlyArray<{ name: string; type: AbiType }>;\n\toutputs: AbiType;\n}\n\ninterface AbiMap {\n\tname: string;\n\tkey: AbiType;\n\tvalue: AbiType;\n}\n\ntype ColumnType =\n\t| \"uint\"\n\t| \"int\"\n\t| \"principal\"\n\t| \"boolean\"\n\t| \"text\"\n\t| \"jsonb\"\n\t| \"serial\";\n\ninterface MappedColumn {\n\ttype: ColumnType;\n\tnullable: boolean;\n}\n\nfunction isAbiBuffer(t: AbiType): t is { buff: { length: number } } {\n\treturn typeof t === \"object\" && t !== null && \"buff\" in t;\n}\nfunction isAbiStringAscii(\n\tt: AbiType,\n): t is { \"string-ascii\": { length: number } } {\n\treturn typeof t === \"object\" && t !== null && \"string-ascii\" in t;\n}\nfunction isAbiStringUtf8(\n\tt: AbiType,\n): t is { \"string-utf8\": { length: number } } {\n\treturn typeof t === \"object\" && t !== null && \"string-utf8\" in t;\n}\nfunction isAbiOptional(t: AbiType): t is { optional: AbiType } {\n\treturn typeof t === \"object\" && t !== null && \"optional\" in t;\n}\nfunction isAbiTuple(\n\tt: AbiType,\n): t is { tuple: ReadonlyArray<{ name: string; type: AbiType }> } {\n\treturn typeof t === \"object\" && t !== null && \"tuple\" in t;\n}\nfunction isAbiList(\n\tt: AbiType,\n): t is { list: { type: AbiType; length: number } } {\n\treturn typeof t === \"object\" && t !== null && \"list\" in t;\n}\nfunction isAbiResponse(\n\tt: AbiType,\n): t is { response: { ok: AbiType; error: AbiType } } {\n\treturn typeof t === \"object\" && t !== null && \"response\" in t;\n}\n\nfunction mapType(abiType: AbiType, nullable: boolean): MappedColumn {\n\tif (typeof abiType === \"string\") {\n\t\tswitch (abiType) {\n\t\t\tcase \"uint128\":\n\t\t\t\treturn { type: \"uint\", nullable };\n\t\t\tcase \"int128\":\n\t\t\t\treturn { type: \"int\", nullable };\n\t\t\tcase \"principal\":\n\t\t\tcase \"trait_reference\":\n\t\t\t\treturn { type: \"principal\", nullable };\n\t\t\tcase \"bool\":\n\t\t\t\treturn { type: \"boolean\", nullable };\n\t\t\tdefault: {\n\t\t\t\tconst s = abiType;\n\t\t\t\tif (s.includes(\"uint\")) return { type: \"uint\", nullable };\n\t\t\t\tif (s.includes(\"int\")) return { type: \"int\", nullable };\n\t\t\t\tif (s.includes(\"string\") || s.includes(\"ascii\") || s.includes(\"utf8\")) {\n\t\t\t\t\treturn { type: \"text\", nullable };\n\t\t\t\t}\n\t\t\t\tif (s.includes(\"buff\")) return { type: \"text\", nullable };\n\t\t\t\treturn { type: \"jsonb\", nullable };\n\t\t\t}\n\t\t}\n\t}\n\n\tif (isAbiBuffer(abiType)) return { type: \"text\", nullable };\n\tif (isAbiStringAscii(abiType) || isAbiStringUtf8(abiType)) {\n\t\treturn { type: \"text\", nullable };\n\t}\n\tif (isAbiOptional(abiType))\n\t\treturn mapType((abiType as { optional: AbiType }).optional, true);\n\tif (isAbiList(abiType) || isAbiTuple(abiType))\n\t\treturn { type: \"jsonb\", nullable };\n\tif (isAbiResponse(abiType)) {\n\t\treturn mapType(\n\t\t\t(abiType as { response: { ok: AbiType } }).response.ok,\n\t\t\tnullable,\n\t\t);\n\t}\n\n\treturn { type: \"jsonb\", nullable };\n}\n\nfunction clarityTypeToSubgraphColumn(abiType: AbiType): MappedColumn {\n\treturn mapType(abiType, false);\n}\n\nfunction toSnake(name: string): string {\n\treturn name.replace(/-/g, \"_\");\n}\n\nfunction toCamel(name: string): string {\n\treturn name.replace(/-([a-z])/g, (_, c) => c.toUpperCase());\n}\n\nfunction buildColumns(\n\targs: ReadonlyArray<{ name: string; type: AbiType }>,\n): string {\n\tif (args.length === 0) return \" _placeholder: { type: 'text' }\";\n\treturn args\n\t\t.map((arg) => {\n\t\t\tconst mapped = clarityTypeToSubgraphColumn(arg.type);\n\t\t\tconst nullable = mapped.nullable ? \", nullable: true\" : \"\";\n\t\t\treturn ` ${toSnake(arg.name)}: { type: '${mapped.type}'${nullable} }`;\n\t\t})\n\t\t.join(\",\\n\");\n}\n\nfunction buildInsertCall(\n\ttableName: string,\n\targs: ReadonlyArray<{ name: string; type: AbiType }>,\n): string {\n\tif (args.length === 0) {\n\t\treturn ` ctx.insert('${tableName}', {\\n sender: ctx.tx.sender,\\n });`;\n\t}\n\n\tconst mappings = args.map((arg) => {\n\t\treturn ` ${toSnake(arg.name)}: event.${toCamel(arg.name)}`;\n\t});\n\n\treturn ` ctx.insert('${tableName}', {\\n${mappings.join(\",\\n\")},\\n });`;\n}\n\nexport function generateSubgraphCode(\n\tcontractId: string,\n\tfunctions: readonly AbiFunction[],\n\tsubgraphName?: string,\n\tevents?: readonly AbiMap[],\n): string {\n\tconst contractParts = contractId.split(\".\");\n\tconst contractName = contractParts[contractParts.length - 1] ?? contractId;\n\tconst name = subgraphName ?? contractName;\n\n\tconst publicFunctions = functions.filter((f) => f.access === \"public\");\n\tconst hasEvents = events && events.length > 0;\n\n\tif (publicFunctions.length === 0 && !hasEvents) {\n\t\treturn `// No public functions or events selected for ${contractId}`;\n\t}\n\n\tconst tableDefs: string[] = [];\n\n\tif (hasEvents) {\n\t\tfor (const ev of events) {\n\t\t\tconst tableName = toSnake(ev.name);\n\t\t\tlet columns: string;\n\t\t\tif (isAbiTuple(ev.value)) {\n\t\t\t\tcolumns = buildColumns(ev.value.tuple);\n\t\t\t} else {\n\t\t\t\tcolumns = ` value: { type: '${clarityTypeToSubgraphColumn(ev.value).type}' }`;\n\t\t\t}\n\t\t\ttableDefs.push(\n\t\t\t\t` ${tableName}: {\\n columns: {\\n${columns}\\n }\\n }`,\n\t\t\t);\n\t\t}\n\t}\n\n\tfor (const fn of publicFunctions) {\n\t\tconst tableName = toSnake(fn.name);\n\t\tconst columns = buildColumns(fn.args);\n\t\ttableDefs.push(\n\t\t\t` ${tableName}: {\\n columns: {\\n${columns}\\n }\\n }`,\n\t\t);\n\t}\n\n\tconst schemaBlock = tableDefs.join(\",\\n\");\n\n\tconst sourceEntries: string[] = [`{ contract: '${contractId}' }`];\n\n\tconst handlerEntries: string[] = [];\n\n\tif (hasEvents) {\n\t\tfor (const ev of events) {\n\t\t\tconst tableName = toSnake(ev.name);\n\t\t\tlet insertCall: string;\n\t\t\tif (isAbiTuple(ev.value)) {\n\t\t\t\tinsertCall = buildInsertCall(tableName, ev.value.tuple);\n\t\t\t} else {\n\t\t\t\tinsertCall = ` ctx.insert('${tableName}', {\\n value: event.value,\\n });`;\n\t\t\t}\n\t\t\thandlerEntries.push(\n\t\t\t\t` '${contractId}::${ev.name}': async (event, ctx) => {\\n${insertCall}\\n }`,\n\t\t\t);\n\t\t}\n\t}\n\n\tfor (const fn of publicFunctions) {\n\t\tconst tableName = toSnake(fn.name);\n\t\tconst insertCall = buildInsertCall(tableName, fn.args);\n\t\thandlerEntries.push(\n\t\t\t` '${contractId}::${fn.name}': async (event, ctx) => {\\n${insertCall}\\n }`,\n\t\t);\n\t}\n\n\tconst handlersBlock = handlerEntries.join(\",\\n\\n\");\n\n\treturn `import { defineSubgraph } from '@secondlayer/subgraphs';\n\nexport default defineSubgraph({\n name: '${name}',\n sources: [${sourceEntries.join(\", \")}],\n schema: {\n${schemaBlock}\n },\n handlers: {\n${handlersBlock}\n }\n});\n`;\n}\n\nexport type { AbiFunction, AbiMap };\n",
|
|
14
|
+
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { z } from \"zod/v4\";\nimport { bundleSubgraphCode } from \"../lib/bundle.ts\";\nimport { getClient } from \"../lib/client.ts\";\nimport { formatSubgraphSummary, withCap } from \"../lib/format.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\nexport function registerSubgraphTools(server: McpServer) {\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"subgraphs_list\",\n\t\t\"List all deployed subgraphs. Returns summary fields only.\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst { data } = await getClient().subgraphs.list();\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(data.map(formatSubgraphSummary), null, 2),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"subgraphs_get\",\n\t\t\"Get full details of a subgraph including schema, health, and table columns.\",\n\t\t{ name: z.string().describe(\"Subgraph name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst detail = await getClient().subgraphs.get(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(detail, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tname: string;\n\t\ttable: string;\n\t\tfilters?: Record<string, string>;\n\t\tsort?: string;\n\t\torder?: string;\n\t\tlimit?: number;\n\t\toffset?: number;\n\t\tfields?: string;\n\t\tcount?: boolean;\n\t}>(\n\t\tserver,\n\t\t\"subgraphs_query\",\n\t\t'Query rows from a subgraph table (max 200 rows). Filters support operators: \"amount.gte\": \"1000\", \"sender.neq\": \"SP...\", \"name.like\": \"%token%\". Available operators: eq, neq, gt, gte, lt, lte, like.',\n\t\t{\n\t\t\tname: z.string().describe(\"Subgraph name\"),\n\t\t\ttable: z.string().describe(\"Table name\"),\n\t\t\tfilters: z\n\t\t\t\t.record(z.string(), z.string())\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t'Column filters — plain values or with operators (e.g. {\"amount.gte\": \"1000\", \"sender\": \"SP...\"})',\n\t\t\t\t),\n\t\t\tsort: z.string().optional().describe(\"Column to sort by\"),\n\t\t\torder: z.enum([\"asc\", \"desc\"]).optional().describe(\"Sort order\"),\n\t\t\tlimit: z\n\t\t\t\t.number()\n\t\t\t\t.max(200)\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Max rows (default 50, max 200)\"),\n\t\t\toffset: z.number().optional().describe(\"Offset for pagination\"),\n\t\t\tfields: 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'Comma-separated column list to return (e.g. \"sender,amount\")',\n\t\t\t\t),\n\t\t\tcount: z\n\t\t\t\t.boolean()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"If true, return row count instead of rows\"),\n\t\t},\n\t\tasync ({\n\t\t\tname,\n\t\t\ttable,\n\t\t\tfilters,\n\t\t\tsort,\n\t\t\torder,\n\t\t\tlimit,\n\t\t\toffset,\n\t\t\tfields,\n\t\t\tcount,\n\t\t}) => {\n\t\t\tif (count) {\n\t\t\t\tconst result = await getClient().subgraphs.queryTableCount(\n\t\t\t\t\tname,\n\t\t\t\t\ttable,\n\t\t\t\t\t{ filters, sort, order },\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst rows = await getClient().subgraphs.queryTable(name, table, {\n\t\t\t\tfilters,\n\t\t\t\tsort,\n\t\t\t\torder,\n\t\t\t\tlimit: limit ?? 50,\n\t\t\t\toffset,\n\t\t\t\tfields,\n\t\t\t});\n\t\t\tconst cap = limit ?? 50;\n\t\t\tconst result = withCap(\n\t\t\t\trows as Record<string, unknown>[],\n\t\t\t\tcap > 200 ? 200 : cap,\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string; fromBlock?: number; toBlock?: number }>(\n\t\tserver,\n\t\t\"subgraphs_reindex\",\n\t\t\"Reindex a subgraph from a specific block range.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Subgraph name\"),\n\t\t\tfromBlock: z\n\t\t\t\t.number()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Start block (defaults to beginning)\"),\n\t\t\ttoBlock: z.number().optional().describe(\"End block (defaults to latest)\"),\n\t\t},\n\t\tasync ({ name, fromBlock, toBlock }) => {\n\t\t\tconst result = await getClient().subgraphs.reindex(name, {\n\t\t\t\tfromBlock,\n\t\t\t\ttoBlock,\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"subgraphs_delete\",\n\t\t\"Delete a subgraph permanently.\",\n\t\t{ name: z.string().describe(\"Subgraph name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst result = await getClient().subgraphs.delete(name);\n\t\t\treturn { content: [{ type: \"text\", text: result.message }] };\n\t\t},\n\t);\n\n\tdefineTool<{ code: string; reindex?: boolean }>(\n\t\tserver,\n\t\t\"subgraphs_deploy\",\n\t\t\"Deploy a subgraph from TypeScript code. Pass the full defineSubgraph() source — it will be bundled, validated, and deployed.\",\n\t\t{\n\t\t\tcode: z\n\t\t\t\t.string()\n\t\t\t\t.describe(\"TypeScript source code containing a defineSubgraph() call\"),\n\t\t\treindex: z\n\t\t\t\t.boolean()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t\"Force reindex on breaking schema change (drops and rebuilds all data)\",\n\t\t\t\t),\n\t\t},\n\t\tasync ({ code, reindex }) => {\n\t\t\tconst bundled = await bundleSubgraphCode(code);\n\t\t\tconst result = await getClient().subgraphs.deploy({\n\t\t\t\tname: bundled.name,\n\t\t\t\tversion: bundled.version,\n\t\t\t\tdescription: bundled.description,\n\t\t\t\tsources: bundled.sources,\n\t\t\t\tschema: bundled.schema,\n\t\t\t\thandlerCode: bundled.handlerCode,\n\t\t\t\treindex,\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n}\n",
|
|
15
|
+
"import { sourceKey } from \"@secondlayer/subgraphs\";\nimport { validateSubgraphDefinition } from \"@secondlayer/subgraphs/validate\";\nimport esbuild from \"esbuild\";\n\ninterface BundleResult {\n\tname: string;\n\tversion?: string;\n\tdescription?: string;\n\tsources: string[];\n\tschema: Record<string, unknown>;\n\thandlerCode: string;\n}\n\nexport async function bundleSubgraphCode(code: string): Promise<BundleResult> {\n\tlet result: esbuild.BuildResult;\n\ttry {\n\t\tresult = await esbuild.build({\n\t\t\tstdin: { contents: code, loader: \"ts\", resolveDir: process.cwd() },\n\t\t\tbundle: true,\n\t\t\tplatform: \"node\",\n\t\t\tformat: \"esm\",\n\t\t\texternal: [\"@secondlayer/subgraphs\"],\n\t\t\twrite: false,\n\t\t});\n\t} catch (err: unknown) {\n\t\tthrow new Error(\n\t\t\t`Bundle failed: ${err instanceof Error ? err.message : String(err)}`,\n\t\t);\n\t}\n\tconst handlerCode = new TextDecoder().decode(\n\t\tresult.outputFiles![0]!.contents,\n\t);\n\n\tlet mod: Record<string, unknown>;\n\ttry {\n\t\tconst dataUri = `data:text/javascript;base64,${Buffer.from(handlerCode).toString(\"base64\")}`;\n\t\tmod = await import(dataUri);\n\t} catch (err: unknown) {\n\t\tthrow new Error(\n\t\t\t`Module evaluation failed: ${err instanceof Error ? err.message : String(err)}`,\n\t\t);\n\t}\n\tconst def = mod.default ?? mod;\n\n\tlet validated: ReturnType<typeof validateSubgraphDefinition>;\n\ttry {\n\t\tvalidated = validateSubgraphDefinition(def);\n\t} catch (err: unknown) {\n\t\tthrow new Error(\n\t\t\t`Validation failed: ${err instanceof Error ? err.message : String(err)}`,\n\t\t);\n\t}\n\n\treturn {\n\t\tname: validated.name,\n\t\tversion: validated.version,\n\t\tdescription: validated.description,\n\t\tsources: validated.sources.map(sourceKey),\n\t\tschema: validated.schema,\n\t\thandlerCode,\n\t};\n}\n",
|
|
16
|
+
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport {\n\tgetTemplateById,\n\tgetTemplatesByCategory,\n\ttemplates,\n} from \"@secondlayer/subgraphs/templates\";\nimport { z } from \"zod/v4\";\nimport { defineTool } from \"../lib/tool.ts\";\n\nexport function registerTemplateTools(server: McpServer) {\n\tdefineTool<{ category?: string }>(\n\t\tserver,\n\t\t\"templates_list\",\n\t\t\"List available subgraph templates. Returns metadata only — use templates_get for full code.\",\n\t\t{\n\t\t\tcategory: z\n\t\t\t\t.enum([\"defi\", \"nft\", \"token\", \"infrastructure\"])\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Filter by category\"),\n\t\t},\n\t\tasync ({ category }) => {\n\t\t\tconst list = category ? getTemplatesByCategory(category) : templates;\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\tlist.map((t) => ({\n\t\t\t\t\t\t\t\tid: t.id,\n\t\t\t\t\t\t\t\tname: t.name,\n\t\t\t\t\t\t\t\tdescription: t.description,\n\t\t\t\t\t\t\t\tcategory: t.category,\n\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ id: string }>(\n\t\tserver,\n\t\t\"templates_get\",\n\t\t\"Get a template's full code and prompt by ID.\",\n\t\t{ id: z.string().describe(\"Template ID (e.g. 'dex-swaps')\") },\n\t\tasync ({ id }) => {\n\t\t\tconst template = getTemplateById(id);\n\t\t\tif (!template) {\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: `Template \"${id}\" not found. Use templates_list to see available templates.`,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tisError: true,\n\t\t\t\t};\n\t\t\t}\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\t{\n\t\t\t\t\t\t\t\tid: template.id,\n\t\t\t\t\t\t\t\tname: template.name,\n\t\t\t\t\t\t\t\tdescription: template.description,\n\t\t\t\t\t\t\t\tcategory: template.category,\n\t\t\t\t\t\t\t\tcode: template.code,\n\t\t\t\t\t\t\t\tprompt: template.prompt,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n}\n"
|
|
17
17
|
],
|
|
18
|
-
"mappings": "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",
|
|
19
|
-
"debugId": "
|
|
18
|
+
"mappings": "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",
|
|
19
|
+
"debugId": "7316E5E5188B313F64756E2164756E21",
|
|
20
20
|
"names": []
|
|
21
21
|
}
|
package/package.json
CHANGED
|
@@ -1,43 +1,43 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
2
|
+
"name": "@secondlayer/mcp",
|
|
3
|
+
"version": "0.3.3",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"bin": {
|
|
8
|
+
"mcp": "./dist/bin.js",
|
|
9
|
+
"secondlayer-mcp": "./dist/bin.js",
|
|
10
|
+
"mcp-http": "./dist/bin-http.js",
|
|
11
|
+
"secondlayer-mcp-http": "./dist/bin-http.js"
|
|
12
|
+
},
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"import": "./dist/index.js"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist",
|
|
21
|
+
"README.md"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "bunup",
|
|
25
|
+
"dev": "bunup --watch",
|
|
26
|
+
"typecheck": "tsc --noEmit",
|
|
27
|
+
"prepublishOnly": "bun run build"
|
|
28
|
+
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
31
|
+
"@secondlayer/sdk": "^0.8.0",
|
|
32
|
+
"@secondlayer/subgraphs": "^0.7.0",
|
|
33
|
+
"esbuild": "^0.27.4",
|
|
34
|
+
"zod": "^4.3.6"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@types/bun": "latest",
|
|
38
|
+
"typescript": "^5"
|
|
39
|
+
},
|
|
40
|
+
"publishConfig": {
|
|
41
|
+
"access": "public"
|
|
42
|
+
}
|
|
43
43
|
}
|