@secondlayer/mcp 0.3.4 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bin-http.js CHANGED
@@ -671,7 +671,6 @@ function registerScaffoldTools(server) {
671
671
  import { z as z3 } from "zod/v4";
672
672
 
673
673
  // src/lib/bundle.ts
674
- import { sourceKey } from "@secondlayer/subgraphs";
675
674
  import { validateSubgraphDefinition } from "@secondlayer/subgraphs/validate";
676
675
  import esbuild from "esbuild";
677
676
  async function bundleSubgraphCode(code) {
@@ -707,7 +706,7 @@ async function bundleSubgraphCode(code) {
707
706
  name: validated.name,
708
707
  version: validated.version,
709
708
  description: validated.description,
710
- sources: validated.sources.map(sourceKey),
709
+ sources: validated.sources,
711
710
  schema: validated.schema,
712
711
  handlerCode
713
712
  };
@@ -810,16 +809,78 @@ function registerSubgraphTools(server) {
810
809
  });
811
810
  }
812
811
 
812
+ // src/tools/workflows.ts
813
+ import { z as z4 } from "zod/v4";
814
+ function registerWorkflowTools(server) {
815
+ defineTool(server, "workflows_list", "List all workflows. Returns summary fields only.", {}, async () => {
816
+ const { workflows } = await getClient().workflows.list();
817
+ return {
818
+ content: [
819
+ {
820
+ type: "text",
821
+ text: JSON.stringify(workflows, null, 2)
822
+ }
823
+ ]
824
+ };
825
+ });
826
+ defineTool(server, "workflows_get", "Get full details of a workflow by name.", { name: z4.string().describe("Workflow name") }, async ({ name }) => {
827
+ const detail = await getClient().workflows.get(name);
828
+ return {
829
+ content: [{ type: "text", text: JSON.stringify(detail, null, 2) }]
830
+ };
831
+ });
832
+ defineTool(server, "workflows_trigger", "Trigger a workflow run. Optionally pass input as a JSON string.", {
833
+ name: z4.string().describe("Workflow name"),
834
+ input: z4.string().optional().describe("Input as JSON string")
835
+ }, async ({ name, input }) => {
836
+ const parsed = input ? JSON.parse(input) : undefined;
837
+ const result = await getClient().workflows.trigger(name, parsed);
838
+ return {
839
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
840
+ };
841
+ });
842
+ defineTool(server, "workflows_pause", "Pause a running workflow.", { name: z4.string().describe("Workflow name") }, async ({ name }) => {
843
+ await getClient().workflows.pause(name);
844
+ return {
845
+ content: [{ type: "text", text: `Paused workflow "${name}"` }]
846
+ };
847
+ });
848
+ defineTool(server, "workflows_resume", "Resume a paused workflow.", { name: z4.string().describe("Workflow name") }, async ({ name }) => {
849
+ await getClient().workflows.resume(name);
850
+ return {
851
+ content: [{ type: "text", text: `Resumed workflow "${name}"` }]
852
+ };
853
+ });
854
+ defineTool(server, "workflows_runs", "List runs for a workflow. Optionally filter by status and limit results.", {
855
+ name: z4.string().describe("Workflow name"),
856
+ status: z4.enum(["running", "completed", "failed", "cancelled"]).optional().describe("Filter by run status"),
857
+ limit: z4.number().optional().describe("Max runs to return (default 20)")
858
+ }, async ({ name, status, limit }) => {
859
+ const { runs } = await getClient().workflows.listRuns(name, {
860
+ status,
861
+ limit
862
+ });
863
+ return {
864
+ content: [
865
+ {
866
+ type: "text",
867
+ text: JSON.stringify(runs, null, 2)
868
+ }
869
+ ]
870
+ };
871
+ });
872
+ }
873
+
813
874
  // src/tools/templates.ts
814
875
  import {
815
876
  getTemplateById,
816
877
  getTemplatesByCategory,
817
878
  templates as templates2
818
879
  } from "@secondlayer/subgraphs/templates";
819
- import { z as z4 } from "zod/v4";
880
+ import { z as z5 } from "zod/v4";
820
881
  function registerTemplateTools(server) {
821
882
  defineTool(server, "templates_list", "List available subgraph templates. Returns metadata only — use templates_get for full code.", {
822
- category: z4.enum(["defi", "nft", "token", "infrastructure"]).optional().describe("Filter by category")
883
+ category: z5.enum(["defi", "nft", "token", "infrastructure"]).optional().describe("Filter by category")
823
884
  }, async ({ category }) => {
824
885
  const list = category ? getTemplatesByCategory(category) : templates2;
825
886
  return {
@@ -836,7 +897,7 @@ function registerTemplateTools(server) {
836
897
  ]
837
898
  };
838
899
  });
839
- defineTool(server, "templates_get", "Get a template's full code and prompt by ID.", { id: z4.string().describe("Template ID (e.g. 'dex-swaps')") }, async ({ id }) => {
900
+ defineTool(server, "templates_get", "Get a template's full code and prompt by ID.", { id: z5.string().describe("Template ID (e.g. 'dex-swaps')") }, async ({ id }) => {
840
901
  const template = getTemplateById(id);
841
902
  if (!template) {
842
903
  return {
@@ -880,6 +941,7 @@ function createServer() {
880
941
  registerStreamTools(server);
881
942
  registerSubgraphTools(server);
882
943
  registerAccountTools(server);
944
+ registerWorkflowTools(server);
883
945
  registerResources(server);
884
946
  return server;
885
947
  }
@@ -970,5 +1032,5 @@ httpServer.listen(port, () => {
970
1032
  console.error("Warning: SECONDLAYER_MCP_SECRET not set, authentication disabled");
971
1033
  });
972
1034
 
973
- //# debugId=404AC9A659F64E0F64756E2164756E21
1035
+ //# debugId=080385D15A6EE15164756E2164756E21
974
1036
  //# sourceMappingURL=bin-http.js.map
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/bin-http.ts", "../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"],
3
+ "sources": ["../src/bin-http.ts", "../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/workflows.ts", "../src/tools/templates.ts"],
4
4
  "sourcesContent": [
5
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\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\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 { 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 { 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 { registerWorkflowTools } from \"./tools/workflows.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\tregisterWorkflowTools(server);\n\tregisterResources(server);\n\n\treturn server;\n}\n",
7
7
  "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",
8
8
  "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",
9
9
  "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",
@@ -13,10 +13,11 @@
13
13
  "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",
14
14
  "/**\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",
15
15
  "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",
16
- "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 { validateSubgraphDefinition } from \"@secondlayer/subgraphs/validate\";\nimport esbuild from \"esbuild\";\n\ninterface BundleResult {\n\tname: string;\n\tversion?: string;\n\tdescription?: string;\n\tsources: Record<string, Record<string, unknown>>;\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 as unknown as Record<string, Record<string, unknown>>,\n\t\tschema: validated.schema,\n\t\thandlerCode,\n\t};\n}\n",
17
+ "import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { z } from \"zod/v4\";\nimport { getClient } from \"../lib/client.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\nexport function registerWorkflowTools(server: McpServer) {\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"workflows_list\",\n\t\t\"List all workflows. Returns summary fields only.\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst { workflows } = await getClient().workflows.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(workflows, 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\"workflows_get\",\n\t\t\"Get full details of a workflow by name.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst detail = await getClient().workflows.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<{ name: string; input?: string }>(\n\t\tserver,\n\t\t\"workflows_trigger\",\n\t\t\"Trigger a workflow run. Optionally pass input as a JSON string.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Workflow name\"),\n\t\t\tinput: z\n\t\t\t\t.string()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Input as JSON string\"),\n\t\t},\n\t\tasync ({ name, input }) => {\n\t\t\tconst parsed = input ? JSON.parse(input) : undefined;\n\t\t\tconst result = await getClient().workflows.trigger(name, parsed);\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\"workflows_pause\",\n\t\t\"Pause a running workflow.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tawait getClient().workflows.pause(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: `Paused workflow \"${name}\"` }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"workflows_resume\",\n\t\t\"Resume a paused workflow.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tawait getClient().workflows.resume(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: `Resumed workflow \"${name}\"` }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string; status?: string; limit?: number }>(\n\t\tserver,\n\t\t\"workflows_runs\",\n\t\t\"List runs for a workflow. Optionally filter by status and limit results.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Workflow name\"),\n\t\t\tstatus: z\n\t\t\t\t.enum([\"running\", \"completed\", \"failed\", \"cancelled\"])\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Filter by run status\"),\n\t\t\tlimit: z\n\t\t\t\t.number()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Max runs to return (default 20)\"),\n\t\t},\n\t\tasync ({ name, status, limit }) => {\n\t\t\tconst { runs } = await getClient().workflows.listRuns(name, {\n\t\t\t\tstatus: status as \"running\" | \"completed\" | \"failed\" | \"cancelled\" | undefined,\n\t\t\t\tlimit,\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(runs, null, 2),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n}\n",
17
18
  "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"
18
19
  ],
19
- "mappings": "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",
20
- "debugId": "404AC9A659F64E0F64756E2164756E21",
20
+ "mappings": "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",
21
+ "debugId": "080385D15A6EE15164756E2164756E21",
21
22
  "names": []
22
23
  }
package/dist/bin.js CHANGED
@@ -668,7 +668,6 @@ function registerScaffoldTools(server) {
668
668
  import { z as z3 } from "zod/v4";
669
669
 
670
670
  // src/lib/bundle.ts
671
- import { sourceKey } from "@secondlayer/subgraphs";
672
671
  import { validateSubgraphDefinition } from "@secondlayer/subgraphs/validate";
673
672
  import esbuild from "esbuild";
674
673
  async function bundleSubgraphCode(code) {
@@ -704,7 +703,7 @@ async function bundleSubgraphCode(code) {
704
703
  name: validated.name,
705
704
  version: validated.version,
706
705
  description: validated.description,
707
- sources: validated.sources.map(sourceKey),
706
+ sources: validated.sources,
708
707
  schema: validated.schema,
709
708
  handlerCode
710
709
  };
@@ -807,16 +806,78 @@ function registerSubgraphTools(server) {
807
806
  });
808
807
  }
809
808
 
809
+ // src/tools/workflows.ts
810
+ import { z as z4 } from "zod/v4";
811
+ function registerWorkflowTools(server) {
812
+ defineTool(server, "workflows_list", "List all workflows. Returns summary fields only.", {}, async () => {
813
+ const { workflows } = await getClient().workflows.list();
814
+ return {
815
+ content: [
816
+ {
817
+ type: "text",
818
+ text: JSON.stringify(workflows, null, 2)
819
+ }
820
+ ]
821
+ };
822
+ });
823
+ defineTool(server, "workflows_get", "Get full details of a workflow by name.", { name: z4.string().describe("Workflow name") }, async ({ name }) => {
824
+ const detail = await getClient().workflows.get(name);
825
+ return {
826
+ content: [{ type: "text", text: JSON.stringify(detail, null, 2) }]
827
+ };
828
+ });
829
+ defineTool(server, "workflows_trigger", "Trigger a workflow run. Optionally pass input as a JSON string.", {
830
+ name: z4.string().describe("Workflow name"),
831
+ input: z4.string().optional().describe("Input as JSON string")
832
+ }, async ({ name, input }) => {
833
+ const parsed = input ? JSON.parse(input) : undefined;
834
+ const result = await getClient().workflows.trigger(name, parsed);
835
+ return {
836
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
837
+ };
838
+ });
839
+ defineTool(server, "workflows_pause", "Pause a running workflow.", { name: z4.string().describe("Workflow name") }, async ({ name }) => {
840
+ await getClient().workflows.pause(name);
841
+ return {
842
+ content: [{ type: "text", text: `Paused workflow "${name}"` }]
843
+ };
844
+ });
845
+ defineTool(server, "workflows_resume", "Resume a paused workflow.", { name: z4.string().describe("Workflow name") }, async ({ name }) => {
846
+ await getClient().workflows.resume(name);
847
+ return {
848
+ content: [{ type: "text", text: `Resumed workflow "${name}"` }]
849
+ };
850
+ });
851
+ defineTool(server, "workflows_runs", "List runs for a workflow. Optionally filter by status and limit results.", {
852
+ name: z4.string().describe("Workflow name"),
853
+ status: z4.enum(["running", "completed", "failed", "cancelled"]).optional().describe("Filter by run status"),
854
+ limit: z4.number().optional().describe("Max runs to return (default 20)")
855
+ }, async ({ name, status, limit }) => {
856
+ const { runs } = await getClient().workflows.listRuns(name, {
857
+ status,
858
+ limit
859
+ });
860
+ return {
861
+ content: [
862
+ {
863
+ type: "text",
864
+ text: JSON.stringify(runs, null, 2)
865
+ }
866
+ ]
867
+ };
868
+ });
869
+ }
870
+
810
871
  // src/tools/templates.ts
811
872
  import {
812
873
  getTemplateById,
813
874
  getTemplatesByCategory,
814
875
  templates as templates2
815
876
  } from "@secondlayer/subgraphs/templates";
816
- import { z as z4 } from "zod/v4";
877
+ import { z as z5 } from "zod/v4";
817
878
  function registerTemplateTools(server) {
818
879
  defineTool(server, "templates_list", "List available subgraph templates. Returns metadata only — use templates_get for full code.", {
819
- category: z4.enum(["defi", "nft", "token", "infrastructure"]).optional().describe("Filter by category")
880
+ category: z5.enum(["defi", "nft", "token", "infrastructure"]).optional().describe("Filter by category")
820
881
  }, async ({ category }) => {
821
882
  const list = category ? getTemplatesByCategory(category) : templates2;
822
883
  return {
@@ -833,7 +894,7 @@ function registerTemplateTools(server) {
833
894
  ]
834
895
  };
835
896
  });
836
- defineTool(server, "templates_get", "Get a template's full code and prompt by ID.", { id: z4.string().describe("Template ID (e.g. 'dex-swaps')") }, async ({ id }) => {
897
+ defineTool(server, "templates_get", "Get a template's full code and prompt by ID.", { id: z5.string().describe("Template ID (e.g. 'dex-swaps')") }, async ({ id }) => {
837
898
  const template = getTemplateById(id);
838
899
  if (!template) {
839
900
  return {
@@ -877,6 +938,7 @@ function createServer() {
877
938
  registerStreamTools(server);
878
939
  registerSubgraphTools(server);
879
940
  registerAccountTools(server);
941
+ registerWorkflowTools(server);
880
942
  registerResources(server);
881
943
  return server;
882
944
  }
@@ -886,5 +948,5 @@ var server = createServer();
886
948
  var transport = new StdioServerTransport;
887
949
  await server.connect(transport);
888
950
 
889
- //# debugId=75DBC045268684F664756E2164756E21
951
+ //# debugId=1A3C1AC5F1DDC78164756E2164756E21
890
952
  //# sourceMappingURL=bin.js.map
package/dist/bin.js.map CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/bin.ts", "../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"],
3
+ "sources": ["../src/bin.ts", "../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/workflows.ts", "../src/tools/templates.ts"],
4
4
  "sourcesContent": [
5
5
  "#!/usr/bin/env node\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport { createServer } from \"./server.ts\";\n\nconst server = createServer();\nconst transport = new StdioServerTransport();\nawait server.connect(transport);\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 { 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 { 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 { registerWorkflowTools } from \"./tools/workflows.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\tregisterWorkflowTools(server);\n\tregisterResources(server);\n\n\treturn server;\n}\n",
7
7
  "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",
8
8
  "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",
9
9
  "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",
@@ -13,10 +13,11 @@
13
13
  "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",
14
14
  "/**\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",
15
15
  "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",
16
- "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 { validateSubgraphDefinition } from \"@secondlayer/subgraphs/validate\";\nimport esbuild from \"esbuild\";\n\ninterface BundleResult {\n\tname: string;\n\tversion?: string;\n\tdescription?: string;\n\tsources: Record<string, Record<string, unknown>>;\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 as unknown as Record<string, Record<string, unknown>>,\n\t\tschema: validated.schema,\n\t\thandlerCode,\n\t};\n}\n",
17
+ "import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { z } from \"zod/v4\";\nimport { getClient } from \"../lib/client.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\nexport function registerWorkflowTools(server: McpServer) {\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"workflows_list\",\n\t\t\"List all workflows. Returns summary fields only.\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst { workflows } = await getClient().workflows.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(workflows, 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\"workflows_get\",\n\t\t\"Get full details of a workflow by name.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst detail = await getClient().workflows.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<{ name: string; input?: string }>(\n\t\tserver,\n\t\t\"workflows_trigger\",\n\t\t\"Trigger a workflow run. Optionally pass input as a JSON string.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Workflow name\"),\n\t\t\tinput: z\n\t\t\t\t.string()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Input as JSON string\"),\n\t\t},\n\t\tasync ({ name, input }) => {\n\t\t\tconst parsed = input ? JSON.parse(input) : undefined;\n\t\t\tconst result = await getClient().workflows.trigger(name, parsed);\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\"workflows_pause\",\n\t\t\"Pause a running workflow.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tawait getClient().workflows.pause(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: `Paused workflow \"${name}\"` }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"workflows_resume\",\n\t\t\"Resume a paused workflow.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tawait getClient().workflows.resume(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: `Resumed workflow \"${name}\"` }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string; status?: string; limit?: number }>(\n\t\tserver,\n\t\t\"workflows_runs\",\n\t\t\"List runs for a workflow. Optionally filter by status and limit results.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Workflow name\"),\n\t\t\tstatus: z\n\t\t\t\t.enum([\"running\", \"completed\", \"failed\", \"cancelled\"])\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Filter by run status\"),\n\t\t\tlimit: z\n\t\t\t\t.number()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Max runs to return (default 20)\"),\n\t\t},\n\t\tasync ({ name, status, limit }) => {\n\t\t\tconst { runs } = await getClient().workflows.listRuns(name, {\n\t\t\t\tstatus: status as \"running\" | \"completed\" | \"failed\" | \"cancelled\" | undefined,\n\t\t\t\tlimit,\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(runs, null, 2),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n}\n",
17
18
  "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"
18
19
  ],
19
- "mappings": "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",
20
- "debugId": "75DBC045268684F664756E2164756E21",
20
+ "mappings": "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",
21
+ "debugId": "1A3C1AC5F1DDC78164756E2164756E21",
21
22
  "names": []
22
23
  }
package/dist/index.js CHANGED
@@ -663,7 +663,6 @@ function registerScaffoldTools(server) {
663
663
  import { z as z3 } from "zod/v4";
664
664
 
665
665
  // src/lib/bundle.ts
666
- import { sourceKey } from "@secondlayer/subgraphs";
667
666
  import { validateSubgraphDefinition } from "@secondlayer/subgraphs/validate";
668
667
  import esbuild from "esbuild";
669
668
  async function bundleSubgraphCode(code) {
@@ -699,7 +698,7 @@ async function bundleSubgraphCode(code) {
699
698
  name: validated.name,
700
699
  version: validated.version,
701
700
  description: validated.description,
702
- sources: validated.sources.map(sourceKey),
701
+ sources: validated.sources,
703
702
  schema: validated.schema,
704
703
  handlerCode
705
704
  };
@@ -802,16 +801,78 @@ function registerSubgraphTools(server) {
802
801
  });
803
802
  }
804
803
 
804
+ // src/tools/workflows.ts
805
+ import { z as z4 } from "zod/v4";
806
+ function registerWorkflowTools(server) {
807
+ defineTool(server, "workflows_list", "List all workflows. Returns summary fields only.", {}, async () => {
808
+ const { workflows } = await getClient().workflows.list();
809
+ return {
810
+ content: [
811
+ {
812
+ type: "text",
813
+ text: JSON.stringify(workflows, null, 2)
814
+ }
815
+ ]
816
+ };
817
+ });
818
+ defineTool(server, "workflows_get", "Get full details of a workflow by name.", { name: z4.string().describe("Workflow name") }, async ({ name }) => {
819
+ const detail = await getClient().workflows.get(name);
820
+ return {
821
+ content: [{ type: "text", text: JSON.stringify(detail, null, 2) }]
822
+ };
823
+ });
824
+ defineTool(server, "workflows_trigger", "Trigger a workflow run. Optionally pass input as a JSON string.", {
825
+ name: z4.string().describe("Workflow name"),
826
+ input: z4.string().optional().describe("Input as JSON string")
827
+ }, async ({ name, input }) => {
828
+ const parsed = input ? JSON.parse(input) : undefined;
829
+ const result = await getClient().workflows.trigger(name, parsed);
830
+ return {
831
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
832
+ };
833
+ });
834
+ defineTool(server, "workflows_pause", "Pause a running workflow.", { name: z4.string().describe("Workflow name") }, async ({ name }) => {
835
+ await getClient().workflows.pause(name);
836
+ return {
837
+ content: [{ type: "text", text: `Paused workflow "${name}"` }]
838
+ };
839
+ });
840
+ defineTool(server, "workflows_resume", "Resume a paused workflow.", { name: z4.string().describe("Workflow name") }, async ({ name }) => {
841
+ await getClient().workflows.resume(name);
842
+ return {
843
+ content: [{ type: "text", text: `Resumed workflow "${name}"` }]
844
+ };
845
+ });
846
+ defineTool(server, "workflows_runs", "List runs for a workflow. Optionally filter by status and limit results.", {
847
+ name: z4.string().describe("Workflow name"),
848
+ status: z4.enum(["running", "completed", "failed", "cancelled"]).optional().describe("Filter by run status"),
849
+ limit: z4.number().optional().describe("Max runs to return (default 20)")
850
+ }, async ({ name, status, limit }) => {
851
+ const { runs } = await getClient().workflows.listRuns(name, {
852
+ status,
853
+ limit
854
+ });
855
+ return {
856
+ content: [
857
+ {
858
+ type: "text",
859
+ text: JSON.stringify(runs, null, 2)
860
+ }
861
+ ]
862
+ };
863
+ });
864
+ }
865
+
805
866
  // src/tools/templates.ts
806
867
  import {
807
868
  getTemplateById,
808
869
  getTemplatesByCategory,
809
870
  templates as templates2
810
871
  } from "@secondlayer/subgraphs/templates";
811
- import { z as z4 } from "zod/v4";
872
+ import { z as z5 } from "zod/v4";
812
873
  function registerTemplateTools(server) {
813
874
  defineTool(server, "templates_list", "List available subgraph templates. Returns metadata only — use templates_get for full code.", {
814
- category: z4.enum(["defi", "nft", "token", "infrastructure"]).optional().describe("Filter by category")
875
+ category: z5.enum(["defi", "nft", "token", "infrastructure"]).optional().describe("Filter by category")
815
876
  }, async ({ category }) => {
816
877
  const list = category ? getTemplatesByCategory(category) : templates2;
817
878
  return {
@@ -828,7 +889,7 @@ function registerTemplateTools(server) {
828
889
  ]
829
890
  };
830
891
  });
831
- defineTool(server, "templates_get", "Get a template's full code and prompt by ID.", { id: z4.string().describe("Template ID (e.g. 'dex-swaps')") }, async ({ id }) => {
892
+ defineTool(server, "templates_get", "Get a template's full code and prompt by ID.", { id: z5.string().describe("Template ID (e.g. 'dex-swaps')") }, async ({ id }) => {
832
893
  const template = getTemplateById(id);
833
894
  if (!template) {
834
895
  return {
@@ -872,6 +933,7 @@ function createServer() {
872
933
  registerStreamTools(server);
873
934
  registerSubgraphTools(server);
874
935
  registerAccountTools(server);
936
+ registerWorkflowTools(server);
875
937
  registerResources(server);
876
938
  return server;
877
939
  }
@@ -879,5 +941,5 @@ export {
879
941
  createServer
880
942
  };
881
943
 
882
- //# debugId=7316E5E5188B313F64756E2164756E21
944
+ //# debugId=8518CB4307D6FCD664756E2164756E21
883
945
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "version": 3,
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"],
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/workflows.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 { 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",
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 { registerWorkflowTools } from \"./tools/workflows.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\tregisterWorkflowTools(server);\n\tregisterResources(server);\n\n\treturn server;\n}\n",
6
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
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
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",
@@ -12,10 +12,11 @@
12
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
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
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",
15
+ "import { validateSubgraphDefinition } from \"@secondlayer/subgraphs/validate\";\nimport esbuild from \"esbuild\";\n\ninterface BundleResult {\n\tname: string;\n\tversion?: string;\n\tdescription?: string;\n\tsources: Record<string, Record<string, unknown>>;\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 as unknown as Record<string, Record<string, unknown>>,\n\t\tschema: validated.schema,\n\t\thandlerCode,\n\t};\n}\n",
16
+ "import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { z } from \"zod/v4\";\nimport { getClient } from \"../lib/client.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\nexport function registerWorkflowTools(server: McpServer) {\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"workflows_list\",\n\t\t\"List all workflows. Returns summary fields only.\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst { workflows } = await getClient().workflows.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(workflows, 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\"workflows_get\",\n\t\t\"Get full details of a workflow by name.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst detail = await getClient().workflows.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<{ name: string; input?: string }>(\n\t\tserver,\n\t\t\"workflows_trigger\",\n\t\t\"Trigger a workflow run. Optionally pass input as a JSON string.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Workflow name\"),\n\t\t\tinput: z\n\t\t\t\t.string()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Input as JSON string\"),\n\t\t},\n\t\tasync ({ name, input }) => {\n\t\t\tconst parsed = input ? JSON.parse(input) : undefined;\n\t\t\tconst result = await getClient().workflows.trigger(name, parsed);\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\"workflows_pause\",\n\t\t\"Pause a running workflow.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tawait getClient().workflows.pause(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: `Paused workflow \"${name}\"` }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"workflows_resume\",\n\t\t\"Resume a paused workflow.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tawait getClient().workflows.resume(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: `Resumed workflow \"${name}\"` }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string; status?: string; limit?: number }>(\n\t\tserver,\n\t\t\"workflows_runs\",\n\t\t\"List runs for a workflow. Optionally filter by status and limit results.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Workflow name\"),\n\t\t\tstatus: z\n\t\t\t\t.enum([\"running\", \"completed\", \"failed\", \"cancelled\"])\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Filter by run status\"),\n\t\t\tlimit: z\n\t\t\t\t.number()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Max runs to return (default 20)\"),\n\t\t},\n\t\tasync ({ name, status, limit }) => {\n\t\t\tconst { runs } = await getClient().workflows.listRuns(name, {\n\t\t\t\tstatus: status as \"running\" | \"completed\" | \"failed\" | \"cancelled\" | undefined,\n\t\t\t\tlimit,\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(runs, null, 2),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n}\n",
16
17
  "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
18
  ],
18
- "mappings": "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",
19
- "debugId": "7316E5E5188B313F64756E2164756E21",
19
+ "mappings": "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",
20
+ "debugId": "8518CB4307D6FCD664756E2164756E21",
20
21
  "names": []
21
22
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@secondlayer/mcp",
3
- "version": "0.3.4",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -28,8 +28,9 @@
28
28
  },
29
29
  "dependencies": {
30
30
  "@modelcontextprotocol/sdk": "^1.27.1",
31
- "@secondlayer/sdk": "^0.9.0",
32
- "@secondlayer/subgraphs": "^0.8.0",
31
+ "@secondlayer/sdk": "^0.10.0",
32
+ "@secondlayer/subgraphs": "^0.9.0",
33
+ "@secondlayer/workflows": "^0.0.1",
33
34
  "esbuild": "^0.27.4",
34
35
  "zod": "^4.3.6"
35
36
  },