@secondlayer/mcp 11.2.1 → 11.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/bin-http.js +2 -2
- package/dist/bin-http.js.map +2 -2
- package/dist/bin.js +2 -2
- package/dist/bin.js.map +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +2 -2
- package/package.json +19 -10
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ claude mcp add --transport http secondlayer https://api.secondlayer.tools/mcp
|
|
|
20
20
|
|
|
21
21
|
Clients without OAuth send `Authorization: Bearer <sk-sl_ key>`. Subgraph
|
|
22
22
|
deploys, webhooks, archive, codegen and instance tools are local only. See
|
|
23
|
-
[/docs/mcp](https://secondlayer.tools/docs/mcp#connect).
|
|
23
|
+
[/docs/mcp](https://www.secondlayer.tools/docs/mcp#connect).
|
|
24
24
|
|
|
25
25
|
## Install
|
|
26
26
|
|
package/dist/bin-http.js
CHANGED
|
@@ -138,7 +138,7 @@ function getArchiveOpsClient() {
|
|
|
138
138
|
});
|
|
139
139
|
}
|
|
140
140
|
function keyHint(baseUrl = resolveBaseUrl()) {
|
|
141
|
-
return isHostedApiUrl(baseUrl) ? " — set SECONDLAYER_API_KEY (an sk-sl_ key from secondlayer.tools/account
|
|
141
|
+
return isHostedApiUrl(baseUrl) ? " — set SECONDLAYER_API_KEY (an sk-sl_ key from secondlayer.tools/account/keys)" : " — set INSTANCE_TOKEN from `sl init` for writes";
|
|
142
142
|
}
|
|
143
143
|
function createApiRequest(config) {
|
|
144
144
|
const doFetch = config.fetchImpl ?? ((...args) => fetch(...args));
|
|
@@ -1359,5 +1359,5 @@ httpServer.listen(port, () => {
|
|
|
1359
1359
|
console.error("Warning: SECONDLAYER_MCP_SECRET not set, authentication disabled");
|
|
1360
1360
|
});
|
|
1361
1361
|
|
|
1362
|
-
//# debugId=
|
|
1362
|
+
//# debugId=EB95AA9D16143F7364756E2164756E21
|
|
1363
1363
|
//# sourceMappingURL=bin-http.js.map
|
package/dist/bin-http.js.map
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"export const HOSTED_ARCHIVE_HOST = \"api.secondlayer.tools\";\n\nexport function isHostedArchiveUrl(url: string): boolean {\n\ttry {\n\t\treturn new URL(url).hostname === HOSTED_ARCHIVE_HOST;\n\t} catch {\n\t\treturn false;\n\t}\n}\n",
|
|
8
8
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\n\ninterface ToolResult {\n\tcontent: Array<{ type: \"text\"; text: string }>;\n\tisError?: boolean;\n}\n\n// Names of every tool registered via defineTool, in registration order. The\n// context resource generates its capability list from this so CAPABILITIES can\n// never drift behind the actual tool surface (a new tool auto-appears). A Set\n// dedupes across repeated createServer() calls in tests.\nconst registeredToolNames = new Set<string>();\n/** The same, per server: a hosted server lists only what it registered. */\nconst serverToolNames = new WeakMap<McpServer, Set<string>>();\n/** Which tools a server takes (createServer's hosted set); absent = all. */\nconst serverToolFilters = new WeakMap<McpServer, (name: string) => boolean>();\n\n/** Tool names registered so far: on `server`, or on any unrestricted server\n * in this process (see {@link defineTool}). */\nexport function getRegisteredToolNames(server?: McpServer): string[] {\n\treturn server\n\t\t? [...(serverToolNames.get(server) ?? [])]\n\t\t: [...registeredToolNames];\n}\n\n/** From now on, `server` registers only the tools `allow` accepts. */\nexport function restrictTools(\n\tserver: McpServer,\n\tallow: (name: string) => boolean,\n): void {\n\tserverToolFilters.set(server, allow);\n}\n\n/** API envelope fields worth handing back to the agent: the machine `code`,\n * the `request_id` to quote when reporting the failure, and where to report\n * it (`feedback.url`). Duck-typed: SDK errors (ApiError.body/code) and\n * apiRequest errors (body/code) both match; a plain Error yields {}. */\nexport function envelopeFields(err: unknown): {\n\tcode?: string;\n\trequest_id?: string;\n\tfeedback?: { url: string };\n} {\n\tif (!err || typeof err !== \"object\") return {};\n\tconst e = err as { code?: unknown; body?: unknown };\n\tconst body =\n\t\te.body && typeof e.body === \"object\"\n\t\t\t? (e.body as Record<string, unknown>)\n\t\t\t: {};\n\tconst code =\n\t\ttypeof e.code === \"string\"\n\t\t\t? e.code\n\t\t\t: typeof body.code === \"string\"\n\t\t\t\t? body.code\n\t\t\t\t: undefined;\n\tconst request_id =\n\t\ttypeof body.request_id === \"string\" ? body.request_id : undefined;\n\tconst fb = body.feedback as { url?: unknown } | undefined;\n\tconst feedback =\n\t\tfb && typeof fb === \"object\" && typeof fb.url === \"string\"\n\t\t\t? { url: fb.url }\n\t\t\t: undefined;\n\treturn {\n\t\t...(code ? { code } : {}),\n\t\t...(request_id ? { request_id } : {}),\n\t\t...(feedback ? { feedback } : {}),\n\t};\n}\n\n/**\n * Type-safe wrapper around McpServer.tool() that avoids TS2589.\n *\n * The MCP SDK's Zod-generic `tool()` signature recurses past TypeScript's\n * instantiation depth limit when schemas contain discriminated unions or\n * nested optionals. This helper isolates the boundary cast to one place\n * so tool files stay fully typed via the explicit `T` generic.\n *\n * Schema is typed as Record<string, unknown> to prevent TypeScript from\n * resolving the deeply recursive ZodRawShapeCompat constraint. Zod still\n * validates at runtime.\n */\nexport function defineTool<T>(\n\tserver: McpServer,\n\tname: string,\n\tdescription: string,\n\tschema: Record<string, unknown>,\n\thandler: (args: T) => Promise<ToolResult> | ToolResult,\n): void {\n\tconst wrappedHandler = async (args: T): Promise<ToolResult> => {\n\t\ttry {\n\t\t\treturn await handler(args);\n\t\t} catch (err: unknown) {\n\t\t\tconst message = err instanceof Error ? err.message : String(err);\n\t\t\tconst status =\n\t\t\t\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t\t\t\terr instanceof Error && \"status\" in err ? (err as any).status : 0;\n\t\t\tconst type =\n\t\t\t\tstatus === 401\n\t\t\t\t\t? \"unauthorized\"\n\t\t\t\t\t: status === 404\n\t\t\t\t\t\t? \"not_found\"\n\t\t\t\t\t\t: status === 429\n\t\t\t\t\t\t\t? \"rate_limited\"\n\t\t\t\t\t\t\t: status >= 500\n\t\t\t\t\t\t\t\t? \"server_error\"\n\t\t\t\t\t\t\t\t: \"error\";\n\t\t\treturn {\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: JSON.stringify({\n\t\t\t\t\t\t\terror: { type, status, message, ...envelopeFields(err) },\n\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tisError: true,\n\t\t\t};\n\t\t}\n\t};\n\tconst allow = serverToolFilters.get(server);\n\tif (allow && !allow(name)) return;\n\t// The process-wide list is the env server's; a restricted (hosted) server\n\t// keeps its own list only.\n\tif (!allow) registeredToolNames.add(name);\n\tconst names = serverToolNames.get(server) ?? new Set<string>();\n\tnames.add(name);\n\tserverToolNames.set(server, names);\n\t(server.tool as (...args: unknown[]) => unknown)(\n\t\tname,\n\t\tdescription,\n\t\tschema,\n\t\twrappedHandler,\n\t);\n}\n",
|
|
9
9
|
"import {\n\ttype McpServer,\n\tResourceTemplate,\n} from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport {\n\ttype ContextField,\n\tisHostedApiUrl,\n\tresolveBaseUrl,\n} from \"@secondlayer/sdk\";\nimport { CHAIN_TRIGGER_FIELDS } from \"@secondlayer/shared\";\nimport { BOOTSTRAP_STEP } from \"@secondlayer/shared/archive/instance-diagnosis\";\nimport { TRAIT_STANDARDS } from \"@secondlayer/stacks/clarity\";\nimport { camelizeKeys, filterFieldsByType } from \"@secondlayer/subgraphs\";\nimport { TYPE_MAP } from \"@secondlayer/subgraphs/schema\";\nimport type { ColumnType } from \"@secondlayer/subgraphs/types\";\nimport { getClient, readApiKey } from \"./lib/client.ts\";\nimport { formatSubgraphSummary } from \"./lib/format.ts\";\nimport { getRegisteredToolNames } from \"./lib/tool.ts\";\n\n// SubgraphFilter vocabulary — the per-type fields an agent may set on a source\n// filter. Fields are hand-authored (the per-type breakdown lives only in the\n// SubgraphFilter interfaces), but the drift test in resources.test.ts locks the\n// type set to VALID_FILTER_TYPES and asserts every field is accepted by the\n// `.strict()` SubgraphFilterSchema, so this can never advertise a field the\n// validator rejects. `trait` (TraitScope) indexes all contracts of a standard\n// (e.g. all SIP-010 tokens). `prints` on print_event is type-level only (not a\n// runtime match field) and is intentionally omitted.\n// One-line human blurb per SIP trait standard, keyed by TRAIT_STANDARDS so a new\n// standard forces an entry here.\nconst TRAIT_BLURBS: Record<(typeof TRAIT_STANDARDS)[number], string> = {\n\t\"sip-009\": \"Non-fungible token (NFT) standard\",\n\t\"sip-010\": \"Fungible token standard\",\n\t\"sip-013\": \"Semi-fungible token standard\",\n};\n\n/**\n * Per-source-type filter fields, DERIVED from the subgraphs filter schema —\n * this was a hand-maintained parallel copy, so adding a field to a filter\n * left the agent-facing reference silently behind.\n */\nexport const FILTERS_REFERENCE: Array<{ type: string; fields: string[] }> =\n\tfilterFieldsByType();\n\n// Human blurb per column type, keyed by ColumnType so adding a type to the union\n// forces an entry here (the drift test in resources.test.ts asserts full coverage).\nconst COLUMN_TYPE_DESCRIPTIONS: Record<ColumnType, string> = {\n\ttext: \"UTF-8 string\",\n\tuint: \"Unsigned integer (Clarity uint) — NUMERIC for lossless 128-bit range\",\n\tint: \"Signed integer (Clarity int) — NUMERIC for lossless 128-bit range\",\n\tprincipal: \"Stacks address (standard or contract)\",\n\tboolean: \"Boolean value\",\n\ttimestamp: \"Timestamp with time zone\",\n\tjsonb: \"Arbitrary JSON data\",\n};\n\n// Derived from the subgraphs TYPE_MAP so the type→SQL mapping can't drift behind\n// the deployer (which is what actually creates the columns).\nexport const COLUMN_TYPES: Array<Record<string, unknown>> = [\n\t...(Object.keys(TYPE_MAP) as ColumnType[]).map((type) => ({\n\t\ttype,\n\t\tsqlType: TYPE_MAP[type],\n\t\tdescription: COLUMN_TYPE_DESCRIPTIONS[type],\n\t})),\n\t{\n\t\toptions: [\"nullable\", \"indexed\", \"search\"],\n\t\tdescription:\n\t\t\t\"Column options: nullable allows NULL, indexed creates a B-tree index, search enables full-text search\",\n\t},\n];\n\n// One-line human blurb per product surface; the tool list for each is\n// generated from the live tool registry (see buildCapabilities) so it can't\n// drift behind the actual surface.\nconst PRODUCT_BLURBS: Record<string, string> = {\n\tindex: \"decoded events, transfers, contract calls, blocks, transactions\",\n\tstreams:\n\t\t\"raw chain event firehose — cursor-paginated reads, tip/canonical/reorg checks, bulk parquet dumps\",\n\tcontracts: \"trait-based contract discovery and ABIs\",\n\tsubgraphs: \"author/scaffold/deploy/query custom indexes\",\n\twebhooks:\n\t\t\"a signed POST to a URL you run, on subgraph rows or raw chain events\",\n\taccount: \"identity and self-provisioned API keys\",\n\tcodegen: \"ORM schemas for the tables you read\",\n\tinstance: \"decoder health and empty-index diagnosis\",\n\tarchive: \"signed archive verify, bootstrap/repair, quote, latest pointer\",\n\tcredits: \"archive credits balance at api.secondlayer.tools\",\n};\n\nconst PRODUCT_ORDER = [\n\t\"index\",\n\t\"streams\",\n\t\"contracts\",\n\t\"subgraphs\",\n\t\"webhooks\",\n\t\"account\",\n\t\"codegen\",\n\t\"instance\",\n\t\"archive\",\n\t\"credits\",\n];\n\n/**\n * \"What you can do\" overview, generated from the registered tool names so every\n * tool surfaces under its product without a hand-maintained list to fall stale.\n * Tools register (via defineTool) before registerResources runs, so the\n * registry is fully populated by the time a context read calls this.\n */\nexport function buildCapabilities(server?: McpServer) {\n\tconst byPrefix = new Map<string, string[]>();\n\tfor (const name of getRegisteredToolNames(server)) {\n\t\tconst sep = name.indexOf(\"_\");\n\t\tconst prefix = sep === -1 ? name : name.slice(0, sep);\n\t\tconst tools = byPrefix.get(prefix) ?? [];\n\t\ttools.push(name);\n\t\tbyPrefix.set(prefix, tools);\n\t}\n\tconst order = [\n\t\t...PRODUCT_ORDER.filter((p) => byPrefix.has(p)),\n\t\t...[...byPrefix.keys()].filter((p) => !PRODUCT_ORDER.includes(p)),\n\t];\n\tconst products = order.map((p) => {\n\t\tconst tools = byPrefix.get(p) ?? [];\n\t\tconst blurb = PRODUCT_BLURBS[p];\n\t\treturn blurb\n\t\t\t? `${p} — ${blurb} (${tools.join(\", \")})`\n\t\t\t: `${p} (${tools.join(\", \")})`;\n\t});\n\treturn {\n\t\tproducts,\n\t\tdiscoverFirst:\n\t\t\t\"Call index_discover / contracts_find to learn what exists (and which filters each surface accepts) before querying.\",\n\t};\n}\n\n/** Per-product read-auth tiers — what an agent must know before reading. */\nfunction readAuthTiers(credential: string, hosted: boolean) {\n\tif (hosted) {\n\t\tconst reads = `keyed: every read uses ${credential} and is metered to the account's credits (the first 1M rows each month are free)`;\n\t\treturn { index: reads, streams: reads };\n\t}\n\tconst reads = `keyless while the API is only reachable on loopback; ${credential} is required once it is published past loopback`;\n\treturn {\n\t\tindex: reads,\n\t\tstreams: reads,\n\t\tsubgraphs: `reads at /v1/subgraphs/<name>/<table> ({ rows, next_cursor, tip } cursor envelope) follow the same loopback rule as the other read planes; writes always require ${credential}`,\n\t};\n}\n\n/** Credential the resolved API host expects: the account key on the hosted\n * API, the instance token anywhere else. */\nfunction credentialLabel(): string {\n\treturn isHostedApiUrl(resolveBaseUrl())\n\t\t? \"SECONDLAYER_API_KEY (an sk-sl_ account key)\"\n\t\t: \"INSTANCE_TOKEN\";\n}\n\ntype ContextDeps = {\n\tclientProvider: typeof getClient;\n\t/** The hosted MCP endpoint: the caller's own credential, not env. */\n\thosted?: boolean;\n\t/** Whose tools to list; omitted, every tool this process registered. */\n\tserver?: McpServer;\n};\n\nconst HOSTED_CREDENTIAL = \"the caller's OAuth sign-in (or sk-sl_ account key)\";\n\n/**\n * Assemble the live agent context read at connect: who you are, the live\n * Streams/Index tips, what you own (subgraphs/webhooks), any in-flight\n * reindex operations, what the agent can do, and the read-auth tiers. The\n * snapshot comes from the SDK's `context()` (shared with non-MCP agents); each\n * field that couldn't be read becomes a sentinel string so the resource never\n * throws and always orients the agent.\n */\nexport async function buildContext(\n\tdeps: ContextDeps = { clientProvider: getClient },\n) {\n\tconst credential = deps.hosted ? HOSTED_CREDENTIAL : credentialLabel();\n\tconst unavailable = `unavailable: set ${credential}`;\n\t// The SDK says why a field is missing; pass that reason through so the\n\t// agent can tell an unreachable API from a rejected token.\n\tconst orNull = <T>(field: ContextField<T> | undefined) => {\n\t\tif (!field) return unavailable;\n\t\tif (field.value != null) return field.value;\n\t\treturn field.error ? `unavailable: ${field.error.message}` : unavailable;\n\t};\n\n\tconst snap = await deps\n\t\t.clientProvider()\n\t\t.context()\n\t\t.catch(() => null);\n\n\tconst instance = snap?.instance?.value\n\t\t? snap.instance.value\n\t\t: orNull(snap?.instance);\n\n\treturn {\n\t\tauthState: {\n\t\t\t// Hosted: the request carried a credential, or it never got here.\n\t\t\tapiKeySet: deps.hosted ? true : Boolean(readApiKey()),\n\t\t},\n\t\twhatExists: {\n\t\t\taccount: orNull(snap?.account),\n\t\t\tstreamsTip: orNull(snap?.streamsTip),\n\t\t\tindexTip: orNull(snap?.indexTip),\n\t\t\tsubgraphs: snap?.subgraphs.value\n\t\t\t\t? snap.subgraphs.value.map(formatSubgraphSummary)\n\t\t\t\t: orNull(snap?.subgraphs),\n\t\t\twebhooks: orNull(snap?.webhooks),\n\t\t\tactiveOperations: orNull(snap?.activeOperations),\n\t\t\tinstance,\n\t\t},\n\t\twhatYouCanDo: buildCapabilities(deps.server),\n\t\treadAuthTiers: readAuthTiers(credential, Boolean(deps.hosted)),\n\t\t...(snap?.instance?.value?.state === \"empty-index\"\n\t\t\t? { nextStep: BOOTSTRAP_STEP }\n\t\t\t: {}),\n\t};\n}\n\nexport function registerResources(\n\tserver: McpServer,\n\tdeps: Omit<ContextDeps, \"server\"> = { clientProvider: getClient },\n) {\n\tconst contextDeps: ContextDeps = deps.hosted ? { ...deps, server } : deps;\n\tserver.resource(\n\t\t\"context\",\n\t\t\"secondlayer://context\",\n\t\t{\n\t\t\tdescription:\n\t\t\t\t\"Live agent context — what exists (your subgraphs, webhooks, account), what you can do, and read-auth tiers. Read this first.\",\n\t\t},\n\t\tasync () => ({\n\t\t\tcontents: [\n\t\t\t\t{\n\t\t\t\t\turi: \"secondlayer://context\",\n\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\ttext: JSON.stringify(await buildContext(contextDeps), null, 2),\n\t\t\t\t},\n\t\t\t],\n\t\t}),\n\t);\n\n\tserver.resource(\n\t\t\"filters\",\n\t\t\"secondlayer://filters\",\n\t\t{ description: \"Event filter types and their available fields\" },\n\t\tasync () => ({\n\t\t\tcontents: [\n\t\t\t\t{\n\t\t\t\t\turi: \"secondlayer://filters\",\n\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\ttext: JSON.stringify(FILTERS_REFERENCE, null, 2),\n\t\t\t\t},\n\t\t\t],\n\t\t}),\n\t);\n\n\tserver.resource(\n\t\t\"column-types\",\n\t\t\"secondlayer://column-types\",\n\t\t{ description: \"Subgraph column types, SQL mappings, and options\" },\n\t\tasync () => ({\n\t\t\tcontents: [\n\t\t\t\t{\n\t\t\t\t\turi: \"secondlayer://column-types\",\n\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\ttext: JSON.stringify(COLUMN_TYPES, null, 2),\n\t\t\t\t},\n\t\t\t],\n\t\t}),\n\t);\n\n\tserver.resource(\n\t\t\"traits\",\n\t\t\"secondlayer://traits\",\n\t\t{\n\t\t\tdescription:\n\t\t\t\t\"SIP trait standards the platform can classify and scaffold against — the valid values for contracts_find `trait` and subgraph scaffold `--trait`.\",\n\t\t},\n\t\tasync () => ({\n\t\t\tcontents: [\n\t\t\t\t{\n\t\t\t\t\turi: \"secondlayer://traits\",\n\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\ttext: JSON.stringify(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttraits: TRAIT_STANDARDS.map((id) => ({\n\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\tdescription: TRAIT_BLURBS[id],\n\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t2,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t],\n\t\t}),\n\t);\n\n\t// Webhook triggers: the hosted MCP has no webhook tools.\n\tif (!deps.hosted) {\n\t\tserver.resource(\n\t\t\t\"chain-triggers\",\n\t\t\t\"secondlayer://chain-triggers\",\n\t\t\t{\n\t\t\t\tdescription:\n\t\t\t\t\t\"Chain-webhook trigger types and the filter fields each accepts (for webhooks_create triggers).\",\n\t\t\t},\n\t\t\tasync () => ({\n\t\t\t\tcontents: [\n\t\t\t\t\t{\n\t\t\t\t\t\turi: \"secondlayer://chain-triggers\",\n\t\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\t\ttext: JSON.stringify(CHAIN_TRIGGER_FIELDS, null, 2),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}),\n\t\t);\n\t}\n\n\t// Template: 5 camelCased print samples + empirical field list. Host-loadable.\n\t// Decoded camel data only — never raw_value hex dumps.\n\tserver.resource(\n\t\t\"samples\",\n\t\tnew ResourceTemplate(\"secondlayer://samples/{contractId}\", {\n\t\t\tlist: undefined,\n\t\t}),\n\t\t{\n\t\t\tdescription:\n\t\t\t\t\"Decoded camelCase print samples for a contract (schema + up to 5 events). Use before writing a print_event handler.\",\n\t\t},\n\t\tasync (uri, variables) => {\n\t\t\tconst contractId = String(\n\t\t\t\tArray.isArray(variables.contractId)\n\t\t\t\t\t? variables.contractId[0]\n\t\t\t\t\t: (variables.contractId ?? \"\"),\n\t\t\t);\n\t\t\tconst body = await buildSamplesResource(contractId, deps.clientProvider);\n\t\t\treturn {\n\t\t\t\tcontents: [\n\t\t\t\t\t{\n\t\t\t\t\t\turi: uri.href,\n\t\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\t\ttext: JSON.stringify(body, null, 2),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n}\n\nfunction jsonSafe(value: unknown): unknown {\n\tif (typeof value === \"bigint\") return value.toString();\n\tif (value === null || value === undefined) return value;\n\tif (Array.isArray(value)) return value.map(jsonSafe);\n\tif (typeof value === \"object\") {\n\t\tconst out: Record<string, unknown> = {};\n\t\tfor (const [k, v] of Object.entries(value as Record<string, unknown>)) {\n\t\t\tout[k] = jsonSafe(v);\n\t\t}\n\t\treturn out;\n\t}\n\treturn value;\n}\n\n/** Build the samples resource body (exported for tests). */\nexport async function buildSamplesResource(\n\tcontractId: string,\n\tclientProvider: typeof getClient = getClient,\n): Promise<Record<string, unknown>> {\n\tconst client = clientProvider();\n\tconst printSchema = await client.index.printSchema(contractId);\n\tconst envelope = await client.index.events.list({\n\t\teventType: \"print\",\n\t\tcontractId,\n\t\tlimit: 5,\n\t});\n\n\tconst schema =\n\t\tprintSchema?.topics.map((t) => ({\n\t\t\ttopic: t.topic,\n\t\t\tfields: t.fields.map((f) => ({\n\t\t\t\tcamel: f.camel_name,\n\t\t\t\tsnake: f.name.replace(/-/g, \"_\"),\n\t\t\t\tcolumn_type: f.column_type,\n\t\t\t\talways: f.always_present,\n\t\t\t})),\n\t\t})) ?? [];\n\n\tconst samples = (envelope.events ?? []).slice(0, 5).map((ev) => {\n\t\tconst payload = ev.payload as\n\t\t\t| { topic?: string | null; value?: unknown }\n\t\t\t| undefined;\n\t\tconst data = jsonSafe(camelizeKeys(payload?.value)) as Record<\n\t\t\tstring,\n\t\t\tunknown\n\t\t>;\n\t\treturn {\n\t\t\ttxId: ev.tx_id,\n\t\t\theight: ev.block_height,\n\t\t\ttopic: payload?.topic ?? \"\",\n\t\t\tdata: data ?? {},\n\t\t};\n\t});\n\n\treturn {\n\t\tcontractId,\n\t\thandlerShape: \"event.data is camelCase; columns are snake_case\",\n\t\tschema,\n\t\tsamples,\n\t};\n}\n",
|
|
10
|
-
"import {\n\tSecondLayer,\n\tisHostedApiUrl,\n\tresolveAccountKey,\n\tresolveApiKey,\n\tresolveBaseUrl,\n} from \"@secondlayer/sdk\";\n\nlet instance: SecondLayer | null = null;\n\n/** Hosted archive ops (credits/quote/latest). Never INSTANCE_TOKEN. */\nexport const HOSTED_KEY_HINT =\n\t\"set SECONDLAYER_API_KEY (sk-sl_*) for credits; INSTANCE_TOKEN is the instance\";\n\nconst DEFAULT_ARCHIVE_OPS_URL = \"https://api.secondlayer.tools\";\n\n/**\n * Read the request credential for the resolved API host: `SECONDLAYER_API_KEY`\n * on api.secondlayer.tools, `INSTANCE_TOKEN` elsewhere. Delegated to the SDK so\n * the MCP server and SDK resolve identically.\n */\nexport function readApiKey(): string | undefined {\n\treturn resolveApiKey(undefined, resolveBaseUrl());\n}\n\n/**\n * Lazy SDK singleton. Built keyless when no key is set so read tools (list,\n * get, query, spec) work during open beta — reads are public. Write tools\n * (deploy/reindex/delete) and account tools hit the API without a key and get\n * a 401, surfaced with a key hint via `keyHint` below.\n */\nexport function getClient(): SecondLayer {\n\tif (!instance) {\n\t\tconst apiKey = readApiKey();\n\t\tconst baseUrl = resolveBaseUrl();\n\t\tconst dumpsBaseUrl = process.env.SL_STREAMS_DUMPS_URL;\n\t\tinstance = new SecondLayer({\n\t\t\t...(apiKey ? { apiKey } : {}),\n\t\t\torigin: \"mcp\",\n\t\t\tbaseUrl,\n\t\t\t...(dumpsBaseUrl ? { dumpsBaseUrl } : {}),\n\t\t});\n\t}\n\treturn instance;\n}\n\n/** `sk-sl_*` for api.secondlayer.tools. Empty/unset is missing — never fall\n * back to INSTANCE_TOKEN. Reads SECONDLAYER_API_KEY via the SDK helper. */\nexport function readArchiveApiKey(): string | undefined {\n\treturn resolveAccountKey();\n}\n\n/**\n * Separate client for hosted archive ops. `archiveOpsUrl` defaults to\n * `https://api.secondlayer.tools`. Bearer is the hosted account key.\n */\nexport function getArchiveOpsClient(): SecondLayer {\n\tconst accountKey = readArchiveApiKey();\n\tif (!accountKey) {\n\t\tthrow new Error(HOSTED_KEY_HINT);\n\t}\n\tconst archiveOpsUrl =\n\t\tprocess.env.SL_CREDITS_API_URL ||\n\t\tprocess.env.ARCHIVE_OPS_API_URL ||\n\t\tDEFAULT_ARCHIVE_OPS_URL;\n\treturn new SecondLayer({\n\t\taccountKey,\n\t\torigin: \"mcp\",\n\t\tarchiveOpsUrl,\n\t});\n}\n\n// Appended to 401/403 errors raised on keyless requests — the operation needs\n// a write/account key, so point at where to get one.\nexport function keyHint(baseUrl: string = resolveBaseUrl()): string {\n\treturn isHostedApiUrl(baseUrl)\n\t\t? \" — set SECONDLAYER_API_KEY (an sk-sl_ key from secondlayer.tools/account
|
|
10
|
+
"import {\n\tSecondLayer,\n\tisHostedApiUrl,\n\tresolveAccountKey,\n\tresolveApiKey,\n\tresolveBaseUrl,\n} from \"@secondlayer/sdk\";\n\nlet instance: SecondLayer | null = null;\n\n/** Hosted archive ops (credits/quote/latest). Never INSTANCE_TOKEN. */\nexport const HOSTED_KEY_HINT =\n\t\"set SECONDLAYER_API_KEY (sk-sl_*) for credits; INSTANCE_TOKEN is the instance\";\n\nconst DEFAULT_ARCHIVE_OPS_URL = \"https://api.secondlayer.tools\";\n\n/**\n * Read the request credential for the resolved API host: `SECONDLAYER_API_KEY`\n * on api.secondlayer.tools, `INSTANCE_TOKEN` elsewhere. Delegated to the SDK so\n * the MCP server and SDK resolve identically.\n */\nexport function readApiKey(): string | undefined {\n\treturn resolveApiKey(undefined, resolveBaseUrl());\n}\n\n/**\n * Lazy SDK singleton. Built keyless when no key is set so read tools (list,\n * get, query, spec) work during open beta — reads are public. Write tools\n * (deploy/reindex/delete) and account tools hit the API without a key and get\n * a 401, surfaced with a key hint via `keyHint` below.\n */\nexport function getClient(): SecondLayer {\n\tif (!instance) {\n\t\tconst apiKey = readApiKey();\n\t\tconst baseUrl = resolveBaseUrl();\n\t\tconst dumpsBaseUrl = process.env.SL_STREAMS_DUMPS_URL;\n\t\tinstance = new SecondLayer({\n\t\t\t...(apiKey ? { apiKey } : {}),\n\t\t\torigin: \"mcp\",\n\t\t\tbaseUrl,\n\t\t\t...(dumpsBaseUrl ? { dumpsBaseUrl } : {}),\n\t\t});\n\t}\n\treturn instance;\n}\n\n/** `sk-sl_*` for api.secondlayer.tools. Empty/unset is missing — never fall\n * back to INSTANCE_TOKEN. Reads SECONDLAYER_API_KEY via the SDK helper. */\nexport function readArchiveApiKey(): string | undefined {\n\treturn resolveAccountKey();\n}\n\n/**\n * Separate client for hosted archive ops. `archiveOpsUrl` defaults to\n * `https://api.secondlayer.tools`. Bearer is the hosted account key.\n */\nexport function getArchiveOpsClient(): SecondLayer {\n\tconst accountKey = readArchiveApiKey();\n\tif (!accountKey) {\n\t\tthrow new Error(HOSTED_KEY_HINT);\n\t}\n\tconst archiveOpsUrl =\n\t\tprocess.env.SL_CREDITS_API_URL ||\n\t\tprocess.env.ARCHIVE_OPS_API_URL ||\n\t\tDEFAULT_ARCHIVE_OPS_URL;\n\treturn new SecondLayer({\n\t\taccountKey,\n\t\torigin: \"mcp\",\n\t\tarchiveOpsUrl,\n\t});\n}\n\n// Appended to 401/403 errors raised on keyless requests — the operation needs\n// a write/account key, so point at where to get one.\nexport function keyHint(baseUrl: string = resolveBaseUrl()): string {\n\treturn isHostedApiUrl(baseUrl)\n\t\t? \" — set SECONDLAYER_API_KEY (an sk-sl_ key from secondlayer.tools/account/keys)\"\n\t\t: \" — set INSTANCE_TOKEN from `sl init` for writes\";\n}\n\n/** A raw request to an API endpoint the SDK doesn't cover. */\nexport type ApiRequest = <T>(\n\tmethod: string,\n\tpath: string,\n\tbody?: unknown,\n) => Promise<T>;\n\n/**\n * An {@link ApiRequest} against `baseUrl` with `apiKey` as the bearer. A\n * 401/403 on a keyless request gets a hint naming the key to set.\n */\nexport function createApiRequest(config: {\n\tbaseUrl: string;\n\tapiKey?: string;\n\tfetchImpl?: typeof fetch;\n}): ApiRequest {\n\tconst doFetch = config.fetchImpl ?? ((...args) => fetch(...args));\n\treturn async <T>(method: string, path: string, body?: unknown) => {\n\t\tconst { baseUrl, apiKey } = config;\n\t\tconst res = await doFetch(`${baseUrl}${path}`, {\n\t\t\tmethod,\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\t...(apiKey ? { Authorization: `Bearer ${apiKey}` } : {}),\n\t\t\t},\n\t\t\tbody: body ? JSON.stringify(body) : undefined,\n\t\t});\n\t\tif (!res.ok) {\n\t\t\tconst text = await res.text().catch(() => \"\");\n\t\t\tconst needsKey = !apiKey && (res.status === 401 || res.status === 403);\n\t\t\tlet parsed: unknown;\n\t\t\ttry {\n\t\t\t\tparsed = text ? JSON.parse(text) : undefined;\n\t\t\t} catch {\n\t\t\t\tparsed = undefined;\n\t\t\t}\n\t\t\tconst code =\n\t\t\t\tparsed &&\n\t\t\t\ttypeof parsed === \"object\" &&\n\t\t\t\ttypeof (parsed as { code?: unknown }).code === \"string\"\n\t\t\t\t\t? (parsed as { code: string }).code\n\t\t\t\t\t: undefined;\n\t\t\tthrow Object.assign(\n\t\t\t\tnew Error(\n\t\t\t\t\t(text || `HTTP ${res.status}`) + (needsKey ? keyHint(baseUrl) : \"\"),\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\tstatus: res.status,\n\t\t\t\t\t...(parsed !== undefined ? { body: parsed } : {}),\n\t\t\t\t\t...(code ? { code } : {}),\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t\tif (res.status === 204) return undefined as T;\n\t\treturn res.json() as Promise<T>;\n\t};\n}\n\n/** Raw fetch helper for API endpoints not covered by the SDK. Reads the base\n * URL and key from env on every call. */\nexport const apiRequest: ApiRequest = (method, path, body) =>\n\tcreateApiRequest({ baseUrl: resolveBaseUrl(), apiKey: readApiKey() })(\n\t\tmethod,\n\t\tpath,\n\t\tbody,\n\t);\n",
|
|
11
11
|
"/** Summarize a subgraph for list responses. */\nexport function formatSubgraphSummary(s: {\n\tname: string;\n\tstatus: string;\n\ttables: string[] | Record<string, unknown>;\n\tlastProcessedBlock: number;\n}) {\n\treturn {\n\t\tname: s.name,\n\t\tstatus: s.status,\n\t\ttables: Array.isArray(s.tables) ? s.tables : Object.keys(s.tables),\n\t\tlastProcessedBlock: s.lastProcessedBlock,\n\t};\n}\n\n/** Cap array length and return truncation metadata. */\nexport function withCap<T>(\n\titems: T[],\n\tcap: number,\n): { items: T[]; truncated: boolean; total: number } {\n\treturn {\n\t\titems: items.slice(0, cap),\n\t\ttruncated: items.length > cap,\n\t\ttotal: items.length,\n\t};\n}\n\n/** Build MCP text response with JSON-serialized payload. */\nexport function jsonResponse(\n\tdata: unknown,\n\tisError?: boolean,\n): { content: Array<{ type: \"text\"; text: string }>; isError?: boolean } {\n\treturn {\n\t\tcontent: [{ type: \"text\", text: JSON.stringify(data, null, 2) }],\n\t\t...(isError && { isError: true }),\n\t};\n}\n\n/** Build MCP text response with plain text payload. */\nexport function textResponse(\n\ttext: string,\n\tisError?: boolean,\n): { content: Array<{ type: \"text\"; text: string }>; isError?: boolean } {\n\treturn {\n\t\tcontent: [{ type: \"text\", text }],\n\t\t...(isError && { isError: true }),\n\t};\n}\n",
|
|
12
12
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { z } from \"zod\";\nimport { type ApiRequest, apiRequest } from \"../lib/client.ts\";\nimport { jsonResponse } from \"../lib/format.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\nexport function registerAccountTools(\n\tserver: McpServer,\n\trequest: ApiRequest = apiRequest,\n) {\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"account_whoami\",\n\t\t\"Show the archive account email at api.secondlayer.tools, not the self-host instance.\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst result = await request<{ email: string }>(\n\t\t\t\t\"GET\",\n\t\t\t\t\"/api/accounts/me\",\n\t\t\t);\n\t\t\treturn jsonResponse(result);\n\t\t},\n\t);\n\n\tdefineTool<{ name?: string }>(\n\t\tserver,\n\t\t\"account_create_key\",\n\t\t\"Mint an account key (sk-sl_*) for archive credits, quote, and fetch at api.secondlayer.tools. The returned `key` is shown ONCE.\",\n\t\t{\n\t\t\tname: z.string().optional().describe(\"Optional label for the key\"),\n\t\t},\n\t\tasync ({ name }) =>\n\t\t\tjsonResponse(await request(\"POST\", \"/api/keys\", { name })),\n\t);\n}\n",
|
|
13
13
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { z } from \"zod\";\nimport { execSecondlayer } from \"../lib/exec-cli.ts\";\nimport { jsonResponse } from \"../lib/format.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\ntype ExecFn = typeof execSecondlayer;\n\nfunction cliResponse(result: {\n\tcode: number;\n\tstdout: string;\n\tstderr: string;\n}) {\n\treturn jsonResponse(result, result.code !== 0);\n}\n\n/** `archive_bootstrap` and `archive_repair`: the archive verbs that run\n * through the local CLI (`secondlayer bootstrap` / `repair`). */\nexport function registerArchiveCliTools(\n\tserver: McpServer,\n\texec: ExecFn = execSecondlayer,\n) {\n\tdefineTool<{\n\t\tagainst: string;\n\t\tfromBlock?: number;\n\t\ttoBlock?: number;\n\t}>(\n\t\tserver,\n\t\t\"archive_bootstrap\",\n\t\t\"Restore verified history into this instance (secondlayer bootstrap --against … --yes --json). Metered against the official archive; quote happens inside the CLI. After bootstrap, poll instance_status until decoders ok, then archive_verify, then codegen_index_schema. Do not download parquet.\",\n\t\t{\n\t\t\tagainst: z.string().describe(\"Archive manifest URL\"),\n\t\t\tfromBlock: z\n\t\t\t\t.number()\n\t\t\t\t.int()\n\t\t\t\t.nonnegative()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Restore from this height instead of genesis\"),\n\t\t\ttoBlock: z\n\t\t\t\t.number()\n\t\t\t\t.int()\n\t\t\t\t.nonnegative()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Stop at this height instead of the archive tip\"),\n\t\t},\n\t\tasync ({ against, fromBlock, toBlock }) => {\n\t\t\tconst args = [\"--against\", against, \"--yes\", \"--json\"];\n\t\t\tif (fromBlock !== undefined) args.push(\"--from-block\", String(fromBlock));\n\t\t\tif (toBlock !== undefined) args.push(\"--to-block\", String(toBlock));\n\t\t\treturn cliResponse(await exec(\"bootstrap\", args));\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tagainst: string;\n\t\tapply?: boolean;\n\t\tfromBlock?: number;\n\t\ttoBlock?: number;\n\t}>(\n\t\tserver,\n\t\t\"archive_repair\",\n\t\t\"Plan (default) or apply a repair of local chain data against a signed archive. Metered when apply fetches from the official archive. After apply, poll instance_status until decoders ok, then archive_verify. Do not download parquet.\",\n\t\t{\n\t\t\tagainst: z.string().describe(\"Archive manifest URL\"),\n\t\t\tapply: z\n\t\t\t\t.boolean()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Write the repair (default plan-only)\"),\n\t\t\tfromBlock: z\n\t\t\t\t.number()\n\t\t\t\t.int()\n\t\t\t\t.nonnegative()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"First height to consider\"),\n\t\t\ttoBlock: z\n\t\t\t\t.number()\n\t\t\t\t.int()\n\t\t\t\t.nonnegative()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Last height to consider\"),\n\t\t},\n\t\tasync ({ against, apply, fromBlock, toBlock }) => {\n\t\t\tconst args = [\"--against\", against, \"--json\"];\n\t\t\tif (apply) args.push(\"--apply\", \"--yes\");\n\t\t\tif (fromBlock !== undefined) args.push(\"--from-block\", String(fromBlock));\n\t\t\tif (toBlock !== undefined) args.push(\"--to-block\", String(toBlock));\n\t\t\treturn cliResponse(await exec(\"repair\", args));\n\t\t},\n\t);\n}\n",
|
|
@@ -24,6 +24,6 @@
|
|
|
24
24
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport type { SecondLayer } from \"@secondlayer/sdk\";\nimport {\n\ttype ApiRequest,\n\tapiRequest,\n\tgetArchiveOpsClient,\n\tgetClient,\n} from \"./lib/client.ts\";\nimport { registerAccountTools } from \"./tools/account.ts\";\nimport { registerArchiveCliTools } from \"./tools/archive-cli.ts\";\nimport { registerArchiveTools } from \"./tools/archive.ts\";\nimport { registerCodegenTools } from \"./tools/codegen.ts\";\nimport { registerContractTools } from \"./tools/contracts.ts\";\nimport { registerIndexTools } from \"./tools/index.ts\";\nimport { registerInstanceTools } from \"./tools/instance.ts\";\nimport { registerScaffoldTools } from \"./tools/scaffold.ts\";\nimport { registerStreamsTools } from \"./tools/streams.ts\";\nimport { registerSubgraphTools } from \"./tools/subgraphs.ts\";\nimport { registerWebhookTools } from \"./tools/webhooks.ts\";\n\n/** Where tools get their credentials. Omitted, each reads the environment\n * (the stdio and self-host servers). */\nexport interface ToolDeps {\n\tclientProvider: () => SecondLayer;\n\tarchiveOpsClientProvider: () => SecondLayer;\n\tapiRequest: ApiRequest;\n}\n\nexport const ENV_TOOL_DEPS: ToolDeps = {\n\tclientProvider: getClient,\n\tarchiveOpsClientProvider: getArchiveOpsClient,\n\tapiRequest,\n};\n\nexport interface ToolGroup {\n\tgroup: string;\n\tregister: (server: McpServer, deps?: ToolDeps) => void;\n\t/** Registered only when the base URL is the hosted archive. */\n\thostedOnly?: true;\n\t/**\n\t * Served by the hosted MCP endpoint (`api.secondlayer.tools/mcp`): `true`\n\t * for every tool in the group, `false` for none, or the exact tools that\n\t * are. A hosted tool only calls the API and returns text: nothing that\n\t * writes files, spawns a process, needs a self-host-only route, or mints a\n\t * credential. Every group must choose.\n\t */\n\thosted: boolean | readonly string[];\n}\n\n/**\n * Every tool group, in registration order. The one list `createServer()`, the\n * docs tool table generator (scripts/sync-tools.ts) and the parity extractor\n * all read, so a new group cannot reach the server without reaching the docs.\n */\nexport const TOOL_GROUPS: readonly ToolGroup[] = [\n\t{\n\t\tgroup: \"scaffold\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterScaffoldTools(s, d.clientProvider),\n\t\thosted: true,\n\t},\n\t{\n\t\tgroup: \"subgraphs\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterSubgraphTools(s, d.clientProvider),\n\t\t// Deploy/test write temp files, and hosted runs no subgraphs.\n\t\thosted: false,\n\t},\n\t{\n\t\tgroup: \"webhooks\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterWebhookTools(s, d.clientProvider),\n\t\t// Webhook routes are self-host only on this API.\n\t\thosted: false,\n\t},\n\t{\n\t\tgroup: \"index\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) => registerIndexTools(s, d.clientProvider),\n\t\thosted: true,\n\t},\n\t{\n\t\tgroup: \"streams\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterStreamsTools(s, d.clientProvider),\n\t\thosted: true,\n\t},\n\t{\n\t\tgroup: \"contracts\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterContractTools(s, d.clientProvider),\n\t\thosted: true,\n\t},\n\t{ group: \"codegen\", register: (s) => registerCodegenTools(s), hosted: false },\n\t{\n\t\tgroup: \"instance\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterInstanceTools(s, d.clientProvider),\n\t\t// Self-host diagnosis.\n\t\thosted: false,\n\t},\n\t{\n\t\tgroup: \"archive\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterArchiveTools(s, d.clientProvider, d.archiveOpsClientProvider),\n\t\thosted: false,\n\t},\n\t{\n\t\tgroup: \"archive\",\n\t\t// Spawns the local CLI.\n\t\tregister: (s) => registerArchiveCliTools(s),\n\t\thosted: false,\n\t},\n\t{\n\t\tgroup: \"account\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) => registerAccountTools(s, d.apiRequest),\n\t\thostedOnly: true,\n\t\t// Never `account_create_key`: an app must not mint a durable key.\n\t\thosted: [\"account_whoami\"],\n\t},\n];\n\n/** Whether the hosted MCP endpoint serves `tool` from `group`. */\nexport function isHostedTool(group: ToolGroup, tool: string): boolean {\n\treturn (\n\t\tgroup.hosted === true ||\n\t\t(Array.isArray(group.hosted) && group.hosted.includes(tool))\n\t);\n}\n"
|
|
25
25
|
],
|
|
26
26
|
"mappings": "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",
|
|
27
|
-
"debugId": "
|
|
27
|
+
"debugId": "EB95AA9D16143F7364756E2164756E21",
|
|
28
28
|
"names": []
|
|
29
29
|
}
|
package/dist/bin.js
CHANGED
|
@@ -135,7 +135,7 @@ function getArchiveOpsClient() {
|
|
|
135
135
|
});
|
|
136
136
|
}
|
|
137
137
|
function keyHint(baseUrl = resolveBaseUrl()) {
|
|
138
|
-
return isHostedApiUrl(baseUrl) ? " — set SECONDLAYER_API_KEY (an sk-sl_ key from secondlayer.tools/account
|
|
138
|
+
return isHostedApiUrl(baseUrl) ? " — set SECONDLAYER_API_KEY (an sk-sl_ key from secondlayer.tools/account/keys)" : " — set INSTANCE_TOKEN from `sl init` for writes";
|
|
139
139
|
}
|
|
140
140
|
function createApiRequest(config) {
|
|
141
141
|
const doFetch = config.fetchImpl ?? ((...args) => fetch(...args));
|
|
@@ -1275,5 +1275,5 @@ var server = createServer();
|
|
|
1275
1275
|
var transport = new StdioServerTransport;
|
|
1276
1276
|
await server.connect(transport);
|
|
1277
1277
|
|
|
1278
|
-
//# debugId=
|
|
1278
|
+
//# debugId=AD4B9F77294108A764756E2164756E21
|
|
1279
1279
|
//# sourceMappingURL=bin.js.map
|
package/dist/bin.js.map
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"export const HOSTED_ARCHIVE_HOST = \"api.secondlayer.tools\";\n\nexport function isHostedArchiveUrl(url: string): boolean {\n\ttry {\n\t\treturn new URL(url).hostname === HOSTED_ARCHIVE_HOST;\n\t} catch {\n\t\treturn false;\n\t}\n}\n",
|
|
8
8
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\n\ninterface ToolResult {\n\tcontent: Array<{ type: \"text\"; text: string }>;\n\tisError?: boolean;\n}\n\n// Names of every tool registered via defineTool, in registration order. The\n// context resource generates its capability list from this so CAPABILITIES can\n// never drift behind the actual tool surface (a new tool auto-appears). A Set\n// dedupes across repeated createServer() calls in tests.\nconst registeredToolNames = new Set<string>();\n/** The same, per server: a hosted server lists only what it registered. */\nconst serverToolNames = new WeakMap<McpServer, Set<string>>();\n/** Which tools a server takes (createServer's hosted set); absent = all. */\nconst serverToolFilters = new WeakMap<McpServer, (name: string) => boolean>();\n\n/** Tool names registered so far: on `server`, or on any unrestricted server\n * in this process (see {@link defineTool}). */\nexport function getRegisteredToolNames(server?: McpServer): string[] {\n\treturn server\n\t\t? [...(serverToolNames.get(server) ?? [])]\n\t\t: [...registeredToolNames];\n}\n\n/** From now on, `server` registers only the tools `allow` accepts. */\nexport function restrictTools(\n\tserver: McpServer,\n\tallow: (name: string) => boolean,\n): void {\n\tserverToolFilters.set(server, allow);\n}\n\n/** API envelope fields worth handing back to the agent: the machine `code`,\n * the `request_id` to quote when reporting the failure, and where to report\n * it (`feedback.url`). Duck-typed: SDK errors (ApiError.body/code) and\n * apiRequest errors (body/code) both match; a plain Error yields {}. */\nexport function envelopeFields(err: unknown): {\n\tcode?: string;\n\trequest_id?: string;\n\tfeedback?: { url: string };\n} {\n\tif (!err || typeof err !== \"object\") return {};\n\tconst e = err as { code?: unknown; body?: unknown };\n\tconst body =\n\t\te.body && typeof e.body === \"object\"\n\t\t\t? (e.body as Record<string, unknown>)\n\t\t\t: {};\n\tconst code =\n\t\ttypeof e.code === \"string\"\n\t\t\t? e.code\n\t\t\t: typeof body.code === \"string\"\n\t\t\t\t? body.code\n\t\t\t\t: undefined;\n\tconst request_id =\n\t\ttypeof body.request_id === \"string\" ? body.request_id : undefined;\n\tconst fb = body.feedback as { url?: unknown } | undefined;\n\tconst feedback =\n\t\tfb && typeof fb === \"object\" && typeof fb.url === \"string\"\n\t\t\t? { url: fb.url }\n\t\t\t: undefined;\n\treturn {\n\t\t...(code ? { code } : {}),\n\t\t...(request_id ? { request_id } : {}),\n\t\t...(feedback ? { feedback } : {}),\n\t};\n}\n\n/**\n * Type-safe wrapper around McpServer.tool() that avoids TS2589.\n *\n * The MCP SDK's Zod-generic `tool()` signature recurses past TypeScript's\n * instantiation depth limit when schemas contain discriminated unions or\n * nested optionals. This helper isolates the boundary cast to one place\n * so tool files stay fully typed via the explicit `T` generic.\n *\n * Schema is typed as Record<string, unknown> to prevent TypeScript from\n * resolving the deeply recursive ZodRawShapeCompat constraint. Zod still\n * validates at runtime.\n */\nexport function defineTool<T>(\n\tserver: McpServer,\n\tname: string,\n\tdescription: string,\n\tschema: Record<string, unknown>,\n\thandler: (args: T) => Promise<ToolResult> | ToolResult,\n): void {\n\tconst wrappedHandler = async (args: T): Promise<ToolResult> => {\n\t\ttry {\n\t\t\treturn await handler(args);\n\t\t} catch (err: unknown) {\n\t\t\tconst message = err instanceof Error ? err.message : String(err);\n\t\t\tconst status =\n\t\t\t\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t\t\t\terr instanceof Error && \"status\" in err ? (err as any).status : 0;\n\t\t\tconst type =\n\t\t\t\tstatus === 401\n\t\t\t\t\t? \"unauthorized\"\n\t\t\t\t\t: status === 404\n\t\t\t\t\t\t? \"not_found\"\n\t\t\t\t\t\t: status === 429\n\t\t\t\t\t\t\t? \"rate_limited\"\n\t\t\t\t\t\t\t: status >= 500\n\t\t\t\t\t\t\t\t? \"server_error\"\n\t\t\t\t\t\t\t\t: \"error\";\n\t\t\treturn {\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: JSON.stringify({\n\t\t\t\t\t\t\terror: { type, status, message, ...envelopeFields(err) },\n\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tisError: true,\n\t\t\t};\n\t\t}\n\t};\n\tconst allow = serverToolFilters.get(server);\n\tif (allow && !allow(name)) return;\n\t// The process-wide list is the env server's; a restricted (hosted) server\n\t// keeps its own list only.\n\tif (!allow) registeredToolNames.add(name);\n\tconst names = serverToolNames.get(server) ?? new Set<string>();\n\tnames.add(name);\n\tserverToolNames.set(server, names);\n\t(server.tool as (...args: unknown[]) => unknown)(\n\t\tname,\n\t\tdescription,\n\t\tschema,\n\t\twrappedHandler,\n\t);\n}\n",
|
|
9
9
|
"import {\n\ttype McpServer,\n\tResourceTemplate,\n} from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport {\n\ttype ContextField,\n\tisHostedApiUrl,\n\tresolveBaseUrl,\n} from \"@secondlayer/sdk\";\nimport { CHAIN_TRIGGER_FIELDS } from \"@secondlayer/shared\";\nimport { BOOTSTRAP_STEP } from \"@secondlayer/shared/archive/instance-diagnosis\";\nimport { TRAIT_STANDARDS } from \"@secondlayer/stacks/clarity\";\nimport { camelizeKeys, filterFieldsByType } from \"@secondlayer/subgraphs\";\nimport { TYPE_MAP } from \"@secondlayer/subgraphs/schema\";\nimport type { ColumnType } from \"@secondlayer/subgraphs/types\";\nimport { getClient, readApiKey } from \"./lib/client.ts\";\nimport { formatSubgraphSummary } from \"./lib/format.ts\";\nimport { getRegisteredToolNames } from \"./lib/tool.ts\";\n\n// SubgraphFilter vocabulary — the per-type fields an agent may set on a source\n// filter. Fields are hand-authored (the per-type breakdown lives only in the\n// SubgraphFilter interfaces), but the drift test in resources.test.ts locks the\n// type set to VALID_FILTER_TYPES and asserts every field is accepted by the\n// `.strict()` SubgraphFilterSchema, so this can never advertise a field the\n// validator rejects. `trait` (TraitScope) indexes all contracts of a standard\n// (e.g. all SIP-010 tokens). `prints` on print_event is type-level only (not a\n// runtime match field) and is intentionally omitted.\n// One-line human blurb per SIP trait standard, keyed by TRAIT_STANDARDS so a new\n// standard forces an entry here.\nconst TRAIT_BLURBS: Record<(typeof TRAIT_STANDARDS)[number], string> = {\n\t\"sip-009\": \"Non-fungible token (NFT) standard\",\n\t\"sip-010\": \"Fungible token standard\",\n\t\"sip-013\": \"Semi-fungible token standard\",\n};\n\n/**\n * Per-source-type filter fields, DERIVED from the subgraphs filter schema —\n * this was a hand-maintained parallel copy, so adding a field to a filter\n * left the agent-facing reference silently behind.\n */\nexport const FILTERS_REFERENCE: Array<{ type: string; fields: string[] }> =\n\tfilterFieldsByType();\n\n// Human blurb per column type, keyed by ColumnType so adding a type to the union\n// forces an entry here (the drift test in resources.test.ts asserts full coverage).\nconst COLUMN_TYPE_DESCRIPTIONS: Record<ColumnType, string> = {\n\ttext: \"UTF-8 string\",\n\tuint: \"Unsigned integer (Clarity uint) — NUMERIC for lossless 128-bit range\",\n\tint: \"Signed integer (Clarity int) — NUMERIC for lossless 128-bit range\",\n\tprincipal: \"Stacks address (standard or contract)\",\n\tboolean: \"Boolean value\",\n\ttimestamp: \"Timestamp with time zone\",\n\tjsonb: \"Arbitrary JSON data\",\n};\n\n// Derived from the subgraphs TYPE_MAP so the type→SQL mapping can't drift behind\n// the deployer (which is what actually creates the columns).\nexport const COLUMN_TYPES: Array<Record<string, unknown>> = [\n\t...(Object.keys(TYPE_MAP) as ColumnType[]).map((type) => ({\n\t\ttype,\n\t\tsqlType: TYPE_MAP[type],\n\t\tdescription: COLUMN_TYPE_DESCRIPTIONS[type],\n\t})),\n\t{\n\t\toptions: [\"nullable\", \"indexed\", \"search\"],\n\t\tdescription:\n\t\t\t\"Column options: nullable allows NULL, indexed creates a B-tree index, search enables full-text search\",\n\t},\n];\n\n// One-line human blurb per product surface; the tool list for each is\n// generated from the live tool registry (see buildCapabilities) so it can't\n// drift behind the actual surface.\nconst PRODUCT_BLURBS: Record<string, string> = {\n\tindex: \"decoded events, transfers, contract calls, blocks, transactions\",\n\tstreams:\n\t\t\"raw chain event firehose — cursor-paginated reads, tip/canonical/reorg checks, bulk parquet dumps\",\n\tcontracts: \"trait-based contract discovery and ABIs\",\n\tsubgraphs: \"author/scaffold/deploy/query custom indexes\",\n\twebhooks:\n\t\t\"a signed POST to a URL you run, on subgraph rows or raw chain events\",\n\taccount: \"identity and self-provisioned API keys\",\n\tcodegen: \"ORM schemas for the tables you read\",\n\tinstance: \"decoder health and empty-index diagnosis\",\n\tarchive: \"signed archive verify, bootstrap/repair, quote, latest pointer\",\n\tcredits: \"archive credits balance at api.secondlayer.tools\",\n};\n\nconst PRODUCT_ORDER = [\n\t\"index\",\n\t\"streams\",\n\t\"contracts\",\n\t\"subgraphs\",\n\t\"webhooks\",\n\t\"account\",\n\t\"codegen\",\n\t\"instance\",\n\t\"archive\",\n\t\"credits\",\n];\n\n/**\n * \"What you can do\" overview, generated from the registered tool names so every\n * tool surfaces under its product without a hand-maintained list to fall stale.\n * Tools register (via defineTool) before registerResources runs, so the\n * registry is fully populated by the time a context read calls this.\n */\nexport function buildCapabilities(server?: McpServer) {\n\tconst byPrefix = new Map<string, string[]>();\n\tfor (const name of getRegisteredToolNames(server)) {\n\t\tconst sep = name.indexOf(\"_\");\n\t\tconst prefix = sep === -1 ? name : name.slice(0, sep);\n\t\tconst tools = byPrefix.get(prefix) ?? [];\n\t\ttools.push(name);\n\t\tbyPrefix.set(prefix, tools);\n\t}\n\tconst order = [\n\t\t...PRODUCT_ORDER.filter((p) => byPrefix.has(p)),\n\t\t...[...byPrefix.keys()].filter((p) => !PRODUCT_ORDER.includes(p)),\n\t];\n\tconst products = order.map((p) => {\n\t\tconst tools = byPrefix.get(p) ?? [];\n\t\tconst blurb = PRODUCT_BLURBS[p];\n\t\treturn blurb\n\t\t\t? `${p} — ${blurb} (${tools.join(\", \")})`\n\t\t\t: `${p} (${tools.join(\", \")})`;\n\t});\n\treturn {\n\t\tproducts,\n\t\tdiscoverFirst:\n\t\t\t\"Call index_discover / contracts_find to learn what exists (and which filters each surface accepts) before querying.\",\n\t};\n}\n\n/** Per-product read-auth tiers — what an agent must know before reading. */\nfunction readAuthTiers(credential: string, hosted: boolean) {\n\tif (hosted) {\n\t\tconst reads = `keyed: every read uses ${credential} and is metered to the account's credits (the first 1M rows each month are free)`;\n\t\treturn { index: reads, streams: reads };\n\t}\n\tconst reads = `keyless while the API is only reachable on loopback; ${credential} is required once it is published past loopback`;\n\treturn {\n\t\tindex: reads,\n\t\tstreams: reads,\n\t\tsubgraphs: `reads at /v1/subgraphs/<name>/<table> ({ rows, next_cursor, tip } cursor envelope) follow the same loopback rule as the other read planes; writes always require ${credential}`,\n\t};\n}\n\n/** Credential the resolved API host expects: the account key on the hosted\n * API, the instance token anywhere else. */\nfunction credentialLabel(): string {\n\treturn isHostedApiUrl(resolveBaseUrl())\n\t\t? \"SECONDLAYER_API_KEY (an sk-sl_ account key)\"\n\t\t: \"INSTANCE_TOKEN\";\n}\n\ntype ContextDeps = {\n\tclientProvider: typeof getClient;\n\t/** The hosted MCP endpoint: the caller's own credential, not env. */\n\thosted?: boolean;\n\t/** Whose tools to list; omitted, every tool this process registered. */\n\tserver?: McpServer;\n};\n\nconst HOSTED_CREDENTIAL = \"the caller's OAuth sign-in (or sk-sl_ account key)\";\n\n/**\n * Assemble the live agent context read at connect: who you are, the live\n * Streams/Index tips, what you own (subgraphs/webhooks), any in-flight\n * reindex operations, what the agent can do, and the read-auth tiers. The\n * snapshot comes from the SDK's `context()` (shared with non-MCP agents); each\n * field that couldn't be read becomes a sentinel string so the resource never\n * throws and always orients the agent.\n */\nexport async function buildContext(\n\tdeps: ContextDeps = { clientProvider: getClient },\n) {\n\tconst credential = deps.hosted ? HOSTED_CREDENTIAL : credentialLabel();\n\tconst unavailable = `unavailable: set ${credential}`;\n\t// The SDK says why a field is missing; pass that reason through so the\n\t// agent can tell an unreachable API from a rejected token.\n\tconst orNull = <T>(field: ContextField<T> | undefined) => {\n\t\tif (!field) return unavailable;\n\t\tif (field.value != null) return field.value;\n\t\treturn field.error ? `unavailable: ${field.error.message}` : unavailable;\n\t};\n\n\tconst snap = await deps\n\t\t.clientProvider()\n\t\t.context()\n\t\t.catch(() => null);\n\n\tconst instance = snap?.instance?.value\n\t\t? snap.instance.value\n\t\t: orNull(snap?.instance);\n\n\treturn {\n\t\tauthState: {\n\t\t\t// Hosted: the request carried a credential, or it never got here.\n\t\t\tapiKeySet: deps.hosted ? true : Boolean(readApiKey()),\n\t\t},\n\t\twhatExists: {\n\t\t\taccount: orNull(snap?.account),\n\t\t\tstreamsTip: orNull(snap?.streamsTip),\n\t\t\tindexTip: orNull(snap?.indexTip),\n\t\t\tsubgraphs: snap?.subgraphs.value\n\t\t\t\t? snap.subgraphs.value.map(formatSubgraphSummary)\n\t\t\t\t: orNull(snap?.subgraphs),\n\t\t\twebhooks: orNull(snap?.webhooks),\n\t\t\tactiveOperations: orNull(snap?.activeOperations),\n\t\t\tinstance,\n\t\t},\n\t\twhatYouCanDo: buildCapabilities(deps.server),\n\t\treadAuthTiers: readAuthTiers(credential, Boolean(deps.hosted)),\n\t\t...(snap?.instance?.value?.state === \"empty-index\"\n\t\t\t? { nextStep: BOOTSTRAP_STEP }\n\t\t\t: {}),\n\t};\n}\n\nexport function registerResources(\n\tserver: McpServer,\n\tdeps: Omit<ContextDeps, \"server\"> = { clientProvider: getClient },\n) {\n\tconst contextDeps: ContextDeps = deps.hosted ? { ...deps, server } : deps;\n\tserver.resource(\n\t\t\"context\",\n\t\t\"secondlayer://context\",\n\t\t{\n\t\t\tdescription:\n\t\t\t\t\"Live agent context — what exists (your subgraphs, webhooks, account), what you can do, and read-auth tiers. Read this first.\",\n\t\t},\n\t\tasync () => ({\n\t\t\tcontents: [\n\t\t\t\t{\n\t\t\t\t\turi: \"secondlayer://context\",\n\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\ttext: JSON.stringify(await buildContext(contextDeps), null, 2),\n\t\t\t\t},\n\t\t\t],\n\t\t}),\n\t);\n\n\tserver.resource(\n\t\t\"filters\",\n\t\t\"secondlayer://filters\",\n\t\t{ description: \"Event filter types and their available fields\" },\n\t\tasync () => ({\n\t\t\tcontents: [\n\t\t\t\t{\n\t\t\t\t\turi: \"secondlayer://filters\",\n\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\ttext: JSON.stringify(FILTERS_REFERENCE, null, 2),\n\t\t\t\t},\n\t\t\t],\n\t\t}),\n\t);\n\n\tserver.resource(\n\t\t\"column-types\",\n\t\t\"secondlayer://column-types\",\n\t\t{ description: \"Subgraph column types, SQL mappings, and options\" },\n\t\tasync () => ({\n\t\t\tcontents: [\n\t\t\t\t{\n\t\t\t\t\turi: \"secondlayer://column-types\",\n\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\ttext: JSON.stringify(COLUMN_TYPES, null, 2),\n\t\t\t\t},\n\t\t\t],\n\t\t}),\n\t);\n\n\tserver.resource(\n\t\t\"traits\",\n\t\t\"secondlayer://traits\",\n\t\t{\n\t\t\tdescription:\n\t\t\t\t\"SIP trait standards the platform can classify and scaffold against — the valid values for contracts_find `trait` and subgraph scaffold `--trait`.\",\n\t\t},\n\t\tasync () => ({\n\t\t\tcontents: [\n\t\t\t\t{\n\t\t\t\t\turi: \"secondlayer://traits\",\n\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\ttext: JSON.stringify(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttraits: TRAIT_STANDARDS.map((id) => ({\n\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\tdescription: TRAIT_BLURBS[id],\n\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t2,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t],\n\t\t}),\n\t);\n\n\t// Webhook triggers: the hosted MCP has no webhook tools.\n\tif (!deps.hosted) {\n\t\tserver.resource(\n\t\t\t\"chain-triggers\",\n\t\t\t\"secondlayer://chain-triggers\",\n\t\t\t{\n\t\t\t\tdescription:\n\t\t\t\t\t\"Chain-webhook trigger types and the filter fields each accepts (for webhooks_create triggers).\",\n\t\t\t},\n\t\t\tasync () => ({\n\t\t\t\tcontents: [\n\t\t\t\t\t{\n\t\t\t\t\t\turi: \"secondlayer://chain-triggers\",\n\t\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\t\ttext: JSON.stringify(CHAIN_TRIGGER_FIELDS, null, 2),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}),\n\t\t);\n\t}\n\n\t// Template: 5 camelCased print samples + empirical field list. Host-loadable.\n\t// Decoded camel data only — never raw_value hex dumps.\n\tserver.resource(\n\t\t\"samples\",\n\t\tnew ResourceTemplate(\"secondlayer://samples/{contractId}\", {\n\t\t\tlist: undefined,\n\t\t}),\n\t\t{\n\t\t\tdescription:\n\t\t\t\t\"Decoded camelCase print samples for a contract (schema + up to 5 events). Use before writing a print_event handler.\",\n\t\t},\n\t\tasync (uri, variables) => {\n\t\t\tconst contractId = String(\n\t\t\t\tArray.isArray(variables.contractId)\n\t\t\t\t\t? variables.contractId[0]\n\t\t\t\t\t: (variables.contractId ?? \"\"),\n\t\t\t);\n\t\t\tconst body = await buildSamplesResource(contractId, deps.clientProvider);\n\t\t\treturn {\n\t\t\t\tcontents: [\n\t\t\t\t\t{\n\t\t\t\t\t\turi: uri.href,\n\t\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\t\ttext: JSON.stringify(body, null, 2),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n}\n\nfunction jsonSafe(value: unknown): unknown {\n\tif (typeof value === \"bigint\") return value.toString();\n\tif (value === null || value === undefined) return value;\n\tif (Array.isArray(value)) return value.map(jsonSafe);\n\tif (typeof value === \"object\") {\n\t\tconst out: Record<string, unknown> = {};\n\t\tfor (const [k, v] of Object.entries(value as Record<string, unknown>)) {\n\t\t\tout[k] = jsonSafe(v);\n\t\t}\n\t\treturn out;\n\t}\n\treturn value;\n}\n\n/** Build the samples resource body (exported for tests). */\nexport async function buildSamplesResource(\n\tcontractId: string,\n\tclientProvider: typeof getClient = getClient,\n): Promise<Record<string, unknown>> {\n\tconst client = clientProvider();\n\tconst printSchema = await client.index.printSchema(contractId);\n\tconst envelope = await client.index.events.list({\n\t\teventType: \"print\",\n\t\tcontractId,\n\t\tlimit: 5,\n\t});\n\n\tconst schema =\n\t\tprintSchema?.topics.map((t) => ({\n\t\t\ttopic: t.topic,\n\t\t\tfields: t.fields.map((f) => ({\n\t\t\t\tcamel: f.camel_name,\n\t\t\t\tsnake: f.name.replace(/-/g, \"_\"),\n\t\t\t\tcolumn_type: f.column_type,\n\t\t\t\talways: f.always_present,\n\t\t\t})),\n\t\t})) ?? [];\n\n\tconst samples = (envelope.events ?? []).slice(0, 5).map((ev) => {\n\t\tconst payload = ev.payload as\n\t\t\t| { topic?: string | null; value?: unknown }\n\t\t\t| undefined;\n\t\tconst data = jsonSafe(camelizeKeys(payload?.value)) as Record<\n\t\t\tstring,\n\t\t\tunknown\n\t\t>;\n\t\treturn {\n\t\t\ttxId: ev.tx_id,\n\t\t\theight: ev.block_height,\n\t\t\ttopic: payload?.topic ?? \"\",\n\t\t\tdata: data ?? {},\n\t\t};\n\t});\n\n\treturn {\n\t\tcontractId,\n\t\thandlerShape: \"event.data is camelCase; columns are snake_case\",\n\t\tschema,\n\t\tsamples,\n\t};\n}\n",
|
|
10
|
-
"import {\n\tSecondLayer,\n\tisHostedApiUrl,\n\tresolveAccountKey,\n\tresolveApiKey,\n\tresolveBaseUrl,\n} from \"@secondlayer/sdk\";\n\nlet instance: SecondLayer | null = null;\n\n/** Hosted archive ops (credits/quote/latest). Never INSTANCE_TOKEN. */\nexport const HOSTED_KEY_HINT =\n\t\"set SECONDLAYER_API_KEY (sk-sl_*) for credits; INSTANCE_TOKEN is the instance\";\n\nconst DEFAULT_ARCHIVE_OPS_URL = \"https://api.secondlayer.tools\";\n\n/**\n * Read the request credential for the resolved API host: `SECONDLAYER_API_KEY`\n * on api.secondlayer.tools, `INSTANCE_TOKEN` elsewhere. Delegated to the SDK so\n * the MCP server and SDK resolve identically.\n */\nexport function readApiKey(): string | undefined {\n\treturn resolveApiKey(undefined, resolveBaseUrl());\n}\n\n/**\n * Lazy SDK singleton. Built keyless when no key is set so read tools (list,\n * get, query, spec) work during open beta — reads are public. Write tools\n * (deploy/reindex/delete) and account tools hit the API without a key and get\n * a 401, surfaced with a key hint via `keyHint` below.\n */\nexport function getClient(): SecondLayer {\n\tif (!instance) {\n\t\tconst apiKey = readApiKey();\n\t\tconst baseUrl = resolveBaseUrl();\n\t\tconst dumpsBaseUrl = process.env.SL_STREAMS_DUMPS_URL;\n\t\tinstance = new SecondLayer({\n\t\t\t...(apiKey ? { apiKey } : {}),\n\t\t\torigin: \"mcp\",\n\t\t\tbaseUrl,\n\t\t\t...(dumpsBaseUrl ? { dumpsBaseUrl } : {}),\n\t\t});\n\t}\n\treturn instance;\n}\n\n/** `sk-sl_*` for api.secondlayer.tools. Empty/unset is missing — never fall\n * back to INSTANCE_TOKEN. Reads SECONDLAYER_API_KEY via the SDK helper. */\nexport function readArchiveApiKey(): string | undefined {\n\treturn resolveAccountKey();\n}\n\n/**\n * Separate client for hosted archive ops. `archiveOpsUrl` defaults to\n * `https://api.secondlayer.tools`. Bearer is the hosted account key.\n */\nexport function getArchiveOpsClient(): SecondLayer {\n\tconst accountKey = readArchiveApiKey();\n\tif (!accountKey) {\n\t\tthrow new Error(HOSTED_KEY_HINT);\n\t}\n\tconst archiveOpsUrl =\n\t\tprocess.env.SL_CREDITS_API_URL ||\n\t\tprocess.env.ARCHIVE_OPS_API_URL ||\n\t\tDEFAULT_ARCHIVE_OPS_URL;\n\treturn new SecondLayer({\n\t\taccountKey,\n\t\torigin: \"mcp\",\n\t\tarchiveOpsUrl,\n\t});\n}\n\n// Appended to 401/403 errors raised on keyless requests — the operation needs\n// a write/account key, so point at where to get one.\nexport function keyHint(baseUrl: string = resolveBaseUrl()): string {\n\treturn isHostedApiUrl(baseUrl)\n\t\t? \" — set SECONDLAYER_API_KEY (an sk-sl_ key from secondlayer.tools/account
|
|
10
|
+
"import {\n\tSecondLayer,\n\tisHostedApiUrl,\n\tresolveAccountKey,\n\tresolveApiKey,\n\tresolveBaseUrl,\n} from \"@secondlayer/sdk\";\n\nlet instance: SecondLayer | null = null;\n\n/** Hosted archive ops (credits/quote/latest). Never INSTANCE_TOKEN. */\nexport const HOSTED_KEY_HINT =\n\t\"set SECONDLAYER_API_KEY (sk-sl_*) for credits; INSTANCE_TOKEN is the instance\";\n\nconst DEFAULT_ARCHIVE_OPS_URL = \"https://api.secondlayer.tools\";\n\n/**\n * Read the request credential for the resolved API host: `SECONDLAYER_API_KEY`\n * on api.secondlayer.tools, `INSTANCE_TOKEN` elsewhere. Delegated to the SDK so\n * the MCP server and SDK resolve identically.\n */\nexport function readApiKey(): string | undefined {\n\treturn resolveApiKey(undefined, resolveBaseUrl());\n}\n\n/**\n * Lazy SDK singleton. Built keyless when no key is set so read tools (list,\n * get, query, spec) work during open beta — reads are public. Write tools\n * (deploy/reindex/delete) and account tools hit the API without a key and get\n * a 401, surfaced with a key hint via `keyHint` below.\n */\nexport function getClient(): SecondLayer {\n\tif (!instance) {\n\t\tconst apiKey = readApiKey();\n\t\tconst baseUrl = resolveBaseUrl();\n\t\tconst dumpsBaseUrl = process.env.SL_STREAMS_DUMPS_URL;\n\t\tinstance = new SecondLayer({\n\t\t\t...(apiKey ? { apiKey } : {}),\n\t\t\torigin: \"mcp\",\n\t\t\tbaseUrl,\n\t\t\t...(dumpsBaseUrl ? { dumpsBaseUrl } : {}),\n\t\t});\n\t}\n\treturn instance;\n}\n\n/** `sk-sl_*` for api.secondlayer.tools. Empty/unset is missing — never fall\n * back to INSTANCE_TOKEN. Reads SECONDLAYER_API_KEY via the SDK helper. */\nexport function readArchiveApiKey(): string | undefined {\n\treturn resolveAccountKey();\n}\n\n/**\n * Separate client for hosted archive ops. `archiveOpsUrl` defaults to\n * `https://api.secondlayer.tools`. Bearer is the hosted account key.\n */\nexport function getArchiveOpsClient(): SecondLayer {\n\tconst accountKey = readArchiveApiKey();\n\tif (!accountKey) {\n\t\tthrow new Error(HOSTED_KEY_HINT);\n\t}\n\tconst archiveOpsUrl =\n\t\tprocess.env.SL_CREDITS_API_URL ||\n\t\tprocess.env.ARCHIVE_OPS_API_URL ||\n\t\tDEFAULT_ARCHIVE_OPS_URL;\n\treturn new SecondLayer({\n\t\taccountKey,\n\t\torigin: \"mcp\",\n\t\tarchiveOpsUrl,\n\t});\n}\n\n// Appended to 401/403 errors raised on keyless requests — the operation needs\n// a write/account key, so point at where to get one.\nexport function keyHint(baseUrl: string = resolveBaseUrl()): string {\n\treturn isHostedApiUrl(baseUrl)\n\t\t? \" — set SECONDLAYER_API_KEY (an sk-sl_ key from secondlayer.tools/account/keys)\"\n\t\t: \" — set INSTANCE_TOKEN from `sl init` for writes\";\n}\n\n/** A raw request to an API endpoint the SDK doesn't cover. */\nexport type ApiRequest = <T>(\n\tmethod: string,\n\tpath: string,\n\tbody?: unknown,\n) => Promise<T>;\n\n/**\n * An {@link ApiRequest} against `baseUrl` with `apiKey` as the bearer. A\n * 401/403 on a keyless request gets a hint naming the key to set.\n */\nexport function createApiRequest(config: {\n\tbaseUrl: string;\n\tapiKey?: string;\n\tfetchImpl?: typeof fetch;\n}): ApiRequest {\n\tconst doFetch = config.fetchImpl ?? ((...args) => fetch(...args));\n\treturn async <T>(method: string, path: string, body?: unknown) => {\n\t\tconst { baseUrl, apiKey } = config;\n\t\tconst res = await doFetch(`${baseUrl}${path}`, {\n\t\t\tmethod,\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\t...(apiKey ? { Authorization: `Bearer ${apiKey}` } : {}),\n\t\t\t},\n\t\t\tbody: body ? JSON.stringify(body) : undefined,\n\t\t});\n\t\tif (!res.ok) {\n\t\t\tconst text = await res.text().catch(() => \"\");\n\t\t\tconst needsKey = !apiKey && (res.status === 401 || res.status === 403);\n\t\t\tlet parsed: unknown;\n\t\t\ttry {\n\t\t\t\tparsed = text ? JSON.parse(text) : undefined;\n\t\t\t} catch {\n\t\t\t\tparsed = undefined;\n\t\t\t}\n\t\t\tconst code =\n\t\t\t\tparsed &&\n\t\t\t\ttypeof parsed === \"object\" &&\n\t\t\t\ttypeof (parsed as { code?: unknown }).code === \"string\"\n\t\t\t\t\t? (parsed as { code: string }).code\n\t\t\t\t\t: undefined;\n\t\t\tthrow Object.assign(\n\t\t\t\tnew Error(\n\t\t\t\t\t(text || `HTTP ${res.status}`) + (needsKey ? keyHint(baseUrl) : \"\"),\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\tstatus: res.status,\n\t\t\t\t\t...(parsed !== undefined ? { body: parsed } : {}),\n\t\t\t\t\t...(code ? { code } : {}),\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t\tif (res.status === 204) return undefined as T;\n\t\treturn res.json() as Promise<T>;\n\t};\n}\n\n/** Raw fetch helper for API endpoints not covered by the SDK. Reads the base\n * URL and key from env on every call. */\nexport const apiRequest: ApiRequest = (method, path, body) =>\n\tcreateApiRequest({ baseUrl: resolveBaseUrl(), apiKey: readApiKey() })(\n\t\tmethod,\n\t\tpath,\n\t\tbody,\n\t);\n",
|
|
11
11
|
"/** Summarize a subgraph for list responses. */\nexport function formatSubgraphSummary(s: {\n\tname: string;\n\tstatus: string;\n\ttables: string[] | Record<string, unknown>;\n\tlastProcessedBlock: number;\n}) {\n\treturn {\n\t\tname: s.name,\n\t\tstatus: s.status,\n\t\ttables: Array.isArray(s.tables) ? s.tables : Object.keys(s.tables),\n\t\tlastProcessedBlock: s.lastProcessedBlock,\n\t};\n}\n\n/** Cap array length and return truncation metadata. */\nexport function withCap<T>(\n\titems: T[],\n\tcap: number,\n): { items: T[]; truncated: boolean; total: number } {\n\treturn {\n\t\titems: items.slice(0, cap),\n\t\ttruncated: items.length > cap,\n\t\ttotal: items.length,\n\t};\n}\n\n/** Build MCP text response with JSON-serialized payload. */\nexport function jsonResponse(\n\tdata: unknown,\n\tisError?: boolean,\n): { content: Array<{ type: \"text\"; text: string }>; isError?: boolean } {\n\treturn {\n\t\tcontent: [{ type: \"text\", text: JSON.stringify(data, null, 2) }],\n\t\t...(isError && { isError: true }),\n\t};\n}\n\n/** Build MCP text response with plain text payload. */\nexport function textResponse(\n\ttext: string,\n\tisError?: boolean,\n): { content: Array<{ type: \"text\"; text: string }>; isError?: boolean } {\n\treturn {\n\t\tcontent: [{ type: \"text\", text }],\n\t\t...(isError && { isError: true }),\n\t};\n}\n",
|
|
12
12
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { z } from \"zod\";\nimport { type ApiRequest, apiRequest } from \"../lib/client.ts\";\nimport { jsonResponse } from \"../lib/format.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\nexport function registerAccountTools(\n\tserver: McpServer,\n\trequest: ApiRequest = apiRequest,\n) {\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"account_whoami\",\n\t\t\"Show the archive account email at api.secondlayer.tools, not the self-host instance.\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst result = await request<{ email: string }>(\n\t\t\t\t\"GET\",\n\t\t\t\t\"/api/accounts/me\",\n\t\t\t);\n\t\t\treturn jsonResponse(result);\n\t\t},\n\t);\n\n\tdefineTool<{ name?: string }>(\n\t\tserver,\n\t\t\"account_create_key\",\n\t\t\"Mint an account key (sk-sl_*) for archive credits, quote, and fetch at api.secondlayer.tools. The returned `key` is shown ONCE.\",\n\t\t{\n\t\t\tname: z.string().optional().describe(\"Optional label for the key\"),\n\t\t},\n\t\tasync ({ name }) =>\n\t\t\tjsonResponse(await request(\"POST\", \"/api/keys\", { name })),\n\t);\n}\n",
|
|
13
13
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { z } from \"zod\";\nimport { execSecondlayer } from \"../lib/exec-cli.ts\";\nimport { jsonResponse } from \"../lib/format.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\ntype ExecFn = typeof execSecondlayer;\n\nfunction cliResponse(result: {\n\tcode: number;\n\tstdout: string;\n\tstderr: string;\n}) {\n\treturn jsonResponse(result, result.code !== 0);\n}\n\n/** `archive_bootstrap` and `archive_repair`: the archive verbs that run\n * through the local CLI (`secondlayer bootstrap` / `repair`). */\nexport function registerArchiveCliTools(\n\tserver: McpServer,\n\texec: ExecFn = execSecondlayer,\n) {\n\tdefineTool<{\n\t\tagainst: string;\n\t\tfromBlock?: number;\n\t\ttoBlock?: number;\n\t}>(\n\t\tserver,\n\t\t\"archive_bootstrap\",\n\t\t\"Restore verified history into this instance (secondlayer bootstrap --against … --yes --json). Metered against the official archive; quote happens inside the CLI. After bootstrap, poll instance_status until decoders ok, then archive_verify, then codegen_index_schema. Do not download parquet.\",\n\t\t{\n\t\t\tagainst: z.string().describe(\"Archive manifest URL\"),\n\t\t\tfromBlock: z\n\t\t\t\t.number()\n\t\t\t\t.int()\n\t\t\t\t.nonnegative()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Restore from this height instead of genesis\"),\n\t\t\ttoBlock: z\n\t\t\t\t.number()\n\t\t\t\t.int()\n\t\t\t\t.nonnegative()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Stop at this height instead of the archive tip\"),\n\t\t},\n\t\tasync ({ against, fromBlock, toBlock }) => {\n\t\t\tconst args = [\"--against\", against, \"--yes\", \"--json\"];\n\t\t\tif (fromBlock !== undefined) args.push(\"--from-block\", String(fromBlock));\n\t\t\tif (toBlock !== undefined) args.push(\"--to-block\", String(toBlock));\n\t\t\treturn cliResponse(await exec(\"bootstrap\", args));\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tagainst: string;\n\t\tapply?: boolean;\n\t\tfromBlock?: number;\n\t\ttoBlock?: number;\n\t}>(\n\t\tserver,\n\t\t\"archive_repair\",\n\t\t\"Plan (default) or apply a repair of local chain data against a signed archive. Metered when apply fetches from the official archive. After apply, poll instance_status until decoders ok, then archive_verify. Do not download parquet.\",\n\t\t{\n\t\t\tagainst: z.string().describe(\"Archive manifest URL\"),\n\t\t\tapply: z\n\t\t\t\t.boolean()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Write the repair (default plan-only)\"),\n\t\t\tfromBlock: z\n\t\t\t\t.number()\n\t\t\t\t.int()\n\t\t\t\t.nonnegative()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"First height to consider\"),\n\t\t\ttoBlock: z\n\t\t\t\t.number()\n\t\t\t\t.int()\n\t\t\t\t.nonnegative()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Last height to consider\"),\n\t\t},\n\t\tasync ({ against, apply, fromBlock, toBlock }) => {\n\t\t\tconst args = [\"--against\", against, \"--json\"];\n\t\t\tif (apply) args.push(\"--apply\", \"--yes\");\n\t\t\tif (fromBlock !== undefined) args.push(\"--from-block\", String(fromBlock));\n\t\t\tif (toBlock !== undefined) args.push(\"--to-block\", String(toBlock));\n\t\t\treturn cliResponse(await exec(\"repair\", args));\n\t\t},\n\t);\n}\n",
|
|
@@ -24,6 +24,6 @@
|
|
|
24
24
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport type { SecondLayer } from \"@secondlayer/sdk\";\nimport {\n\ttype ApiRequest,\n\tapiRequest,\n\tgetArchiveOpsClient,\n\tgetClient,\n} from \"./lib/client.ts\";\nimport { registerAccountTools } from \"./tools/account.ts\";\nimport { registerArchiveCliTools } from \"./tools/archive-cli.ts\";\nimport { registerArchiveTools } from \"./tools/archive.ts\";\nimport { registerCodegenTools } from \"./tools/codegen.ts\";\nimport { registerContractTools } from \"./tools/contracts.ts\";\nimport { registerIndexTools } from \"./tools/index.ts\";\nimport { registerInstanceTools } from \"./tools/instance.ts\";\nimport { registerScaffoldTools } from \"./tools/scaffold.ts\";\nimport { registerStreamsTools } from \"./tools/streams.ts\";\nimport { registerSubgraphTools } from \"./tools/subgraphs.ts\";\nimport { registerWebhookTools } from \"./tools/webhooks.ts\";\n\n/** Where tools get their credentials. Omitted, each reads the environment\n * (the stdio and self-host servers). */\nexport interface ToolDeps {\n\tclientProvider: () => SecondLayer;\n\tarchiveOpsClientProvider: () => SecondLayer;\n\tapiRequest: ApiRequest;\n}\n\nexport const ENV_TOOL_DEPS: ToolDeps = {\n\tclientProvider: getClient,\n\tarchiveOpsClientProvider: getArchiveOpsClient,\n\tapiRequest,\n};\n\nexport interface ToolGroup {\n\tgroup: string;\n\tregister: (server: McpServer, deps?: ToolDeps) => void;\n\t/** Registered only when the base URL is the hosted archive. */\n\thostedOnly?: true;\n\t/**\n\t * Served by the hosted MCP endpoint (`api.secondlayer.tools/mcp`): `true`\n\t * for every tool in the group, `false` for none, or the exact tools that\n\t * are. A hosted tool only calls the API and returns text: nothing that\n\t * writes files, spawns a process, needs a self-host-only route, or mints a\n\t * credential. Every group must choose.\n\t */\n\thosted: boolean | readonly string[];\n}\n\n/**\n * Every tool group, in registration order. The one list `createServer()`, the\n * docs tool table generator (scripts/sync-tools.ts) and the parity extractor\n * all read, so a new group cannot reach the server without reaching the docs.\n */\nexport const TOOL_GROUPS: readonly ToolGroup[] = [\n\t{\n\t\tgroup: \"scaffold\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterScaffoldTools(s, d.clientProvider),\n\t\thosted: true,\n\t},\n\t{\n\t\tgroup: \"subgraphs\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterSubgraphTools(s, d.clientProvider),\n\t\t// Deploy/test write temp files, and hosted runs no subgraphs.\n\t\thosted: false,\n\t},\n\t{\n\t\tgroup: \"webhooks\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterWebhookTools(s, d.clientProvider),\n\t\t// Webhook routes are self-host only on this API.\n\t\thosted: false,\n\t},\n\t{\n\t\tgroup: \"index\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) => registerIndexTools(s, d.clientProvider),\n\t\thosted: true,\n\t},\n\t{\n\t\tgroup: \"streams\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterStreamsTools(s, d.clientProvider),\n\t\thosted: true,\n\t},\n\t{\n\t\tgroup: \"contracts\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterContractTools(s, d.clientProvider),\n\t\thosted: true,\n\t},\n\t{ group: \"codegen\", register: (s) => registerCodegenTools(s), hosted: false },\n\t{\n\t\tgroup: \"instance\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterInstanceTools(s, d.clientProvider),\n\t\t// Self-host diagnosis.\n\t\thosted: false,\n\t},\n\t{\n\t\tgroup: \"archive\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterArchiveTools(s, d.clientProvider, d.archiveOpsClientProvider),\n\t\thosted: false,\n\t},\n\t{\n\t\tgroup: \"archive\",\n\t\t// Spawns the local CLI.\n\t\tregister: (s) => registerArchiveCliTools(s),\n\t\thosted: false,\n\t},\n\t{\n\t\tgroup: \"account\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) => registerAccountTools(s, d.apiRequest),\n\t\thostedOnly: true,\n\t\t// Never `account_create_key`: an app must not mint a durable key.\n\t\thosted: [\"account_whoami\"],\n\t},\n];\n\n/** Whether the hosted MCP endpoint serves `tool` from `group`. */\nexport function isHostedTool(group: ToolGroup, tool: string): boolean {\n\treturn (\n\t\tgroup.hosted === true ||\n\t\t(Array.isArray(group.hosted) && group.hosted.includes(tool))\n\t);\n}\n"
|
|
25
25
|
],
|
|
26
26
|
"mappings": "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",
|
|
27
|
-
"debugId": "
|
|
27
|
+
"debugId": "AD4B9F77294108A764756E2164756E21",
|
|
28
28
|
"names": []
|
|
29
29
|
}
|
package/dist/index.js
CHANGED
|
@@ -42,7 +42,7 @@ function getArchiveOpsClient() {
|
|
|
42
42
|
});
|
|
43
43
|
}
|
|
44
44
|
function keyHint(baseUrl = resolveBaseUrl()) {
|
|
45
|
-
return isHostedApiUrl(baseUrl) ? " — set SECONDLAYER_API_KEY (an sk-sl_ key from secondlayer.tools/account
|
|
45
|
+
return isHostedApiUrl(baseUrl) ? " — set SECONDLAYER_API_KEY (an sk-sl_ key from secondlayer.tools/account/keys)" : " — set INSTANCE_TOKEN from `sl init` for writes";
|
|
46
46
|
}
|
|
47
47
|
function createApiRequest(config) {
|
|
48
48
|
const doFetch = config.fetchImpl ?? ((...args) => fetch(...args));
|
|
@@ -1268,5 +1268,5 @@ export {
|
|
|
1268
1268
|
createServer
|
|
1269
1269
|
};
|
|
1270
1270
|
|
|
1271
|
-
//# debugId=
|
|
1271
|
+
//# debugId=0279C54CD283A70B64756E2164756E21
|
|
1272
1272
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/lib/client.ts", "../src/server.ts", "../src/lib/hosted.ts", "../src/lib/tool.ts", "../src/resources.ts", "../src/lib/format.ts", "../src/tools/account.ts", "../src/tools/archive-cli.ts", "../src/lib/exec-cli.ts", "../src/tools/archive.ts", "../src/tools/codegen.ts", "../src/tools/contracts.ts", "../src/tools/index.ts", "../src/tools/instance.ts", "../src/tools/scaffold.ts", "../src/tools/streams.ts", "../src/tools/subgraphs.ts", "../src/tools/webhooks.ts", "../src/tool-groups.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import {\n\tSecondLayer,\n\tisHostedApiUrl,\n\tresolveAccountKey,\n\tresolveApiKey,\n\tresolveBaseUrl,\n} from \"@secondlayer/sdk\";\n\nlet instance: SecondLayer | null = null;\n\n/** Hosted archive ops (credits/quote/latest). Never INSTANCE_TOKEN. */\nexport const HOSTED_KEY_HINT =\n\t\"set SECONDLAYER_API_KEY (sk-sl_*) for credits; INSTANCE_TOKEN is the instance\";\n\nconst DEFAULT_ARCHIVE_OPS_URL = \"https://api.secondlayer.tools\";\n\n/**\n * Read the request credential for the resolved API host: `SECONDLAYER_API_KEY`\n * on api.secondlayer.tools, `INSTANCE_TOKEN` elsewhere. Delegated to the SDK so\n * the MCP server and SDK resolve identically.\n */\nexport function readApiKey(): string | undefined {\n\treturn resolveApiKey(undefined, resolveBaseUrl());\n}\n\n/**\n * Lazy SDK singleton. Built keyless when no key is set so read tools (list,\n * get, query, spec) work during open beta — reads are public. Write tools\n * (deploy/reindex/delete) and account tools hit the API without a key and get\n * a 401, surfaced with a key hint via `keyHint` below.\n */\nexport function getClient(): SecondLayer {\n\tif (!instance) {\n\t\tconst apiKey = readApiKey();\n\t\tconst baseUrl = resolveBaseUrl();\n\t\tconst dumpsBaseUrl = process.env.SL_STREAMS_DUMPS_URL;\n\t\tinstance = new SecondLayer({\n\t\t\t...(apiKey ? { apiKey } : {}),\n\t\t\torigin: \"mcp\",\n\t\t\tbaseUrl,\n\t\t\t...(dumpsBaseUrl ? { dumpsBaseUrl } : {}),\n\t\t});\n\t}\n\treturn instance;\n}\n\n/** `sk-sl_*` for api.secondlayer.tools. Empty/unset is missing — never fall\n * back to INSTANCE_TOKEN. Reads SECONDLAYER_API_KEY via the SDK helper. */\nexport function readArchiveApiKey(): string | undefined {\n\treturn resolveAccountKey();\n}\n\n/**\n * Separate client for hosted archive ops. `archiveOpsUrl` defaults to\n * `https://api.secondlayer.tools`. Bearer is the hosted account key.\n */\nexport function getArchiveOpsClient(): SecondLayer {\n\tconst accountKey = readArchiveApiKey();\n\tif (!accountKey) {\n\t\tthrow new Error(HOSTED_KEY_HINT);\n\t}\n\tconst archiveOpsUrl =\n\t\tprocess.env.SL_CREDITS_API_URL ||\n\t\tprocess.env.ARCHIVE_OPS_API_URL ||\n\t\tDEFAULT_ARCHIVE_OPS_URL;\n\treturn new SecondLayer({\n\t\taccountKey,\n\t\torigin: \"mcp\",\n\t\tarchiveOpsUrl,\n\t});\n}\n\n// Appended to 401/403 errors raised on keyless requests — the operation needs\n// a write/account key, so point at where to get one.\nexport function keyHint(baseUrl: string = resolveBaseUrl()): string {\n\treturn isHostedApiUrl(baseUrl)\n\t\t? \" — set SECONDLAYER_API_KEY (an sk-sl_ key from secondlayer.tools/account
|
|
5
|
+
"import {\n\tSecondLayer,\n\tisHostedApiUrl,\n\tresolveAccountKey,\n\tresolveApiKey,\n\tresolveBaseUrl,\n} from \"@secondlayer/sdk\";\n\nlet instance: SecondLayer | null = null;\n\n/** Hosted archive ops (credits/quote/latest). Never INSTANCE_TOKEN. */\nexport const HOSTED_KEY_HINT =\n\t\"set SECONDLAYER_API_KEY (sk-sl_*) for credits; INSTANCE_TOKEN is the instance\";\n\nconst DEFAULT_ARCHIVE_OPS_URL = \"https://api.secondlayer.tools\";\n\n/**\n * Read the request credential for the resolved API host: `SECONDLAYER_API_KEY`\n * on api.secondlayer.tools, `INSTANCE_TOKEN` elsewhere. Delegated to the SDK so\n * the MCP server and SDK resolve identically.\n */\nexport function readApiKey(): string | undefined {\n\treturn resolveApiKey(undefined, resolveBaseUrl());\n}\n\n/**\n * Lazy SDK singleton. Built keyless when no key is set so read tools (list,\n * get, query, spec) work during open beta — reads are public. Write tools\n * (deploy/reindex/delete) and account tools hit the API without a key and get\n * a 401, surfaced with a key hint via `keyHint` below.\n */\nexport function getClient(): SecondLayer {\n\tif (!instance) {\n\t\tconst apiKey = readApiKey();\n\t\tconst baseUrl = resolveBaseUrl();\n\t\tconst dumpsBaseUrl = process.env.SL_STREAMS_DUMPS_URL;\n\t\tinstance = new SecondLayer({\n\t\t\t...(apiKey ? { apiKey } : {}),\n\t\t\torigin: \"mcp\",\n\t\t\tbaseUrl,\n\t\t\t...(dumpsBaseUrl ? { dumpsBaseUrl } : {}),\n\t\t});\n\t}\n\treturn instance;\n}\n\n/** `sk-sl_*` for api.secondlayer.tools. Empty/unset is missing — never fall\n * back to INSTANCE_TOKEN. Reads SECONDLAYER_API_KEY via the SDK helper. */\nexport function readArchiveApiKey(): string | undefined {\n\treturn resolveAccountKey();\n}\n\n/**\n * Separate client for hosted archive ops. `archiveOpsUrl` defaults to\n * `https://api.secondlayer.tools`. Bearer is the hosted account key.\n */\nexport function getArchiveOpsClient(): SecondLayer {\n\tconst accountKey = readArchiveApiKey();\n\tif (!accountKey) {\n\t\tthrow new Error(HOSTED_KEY_HINT);\n\t}\n\tconst archiveOpsUrl =\n\t\tprocess.env.SL_CREDITS_API_URL ||\n\t\tprocess.env.ARCHIVE_OPS_API_URL ||\n\t\tDEFAULT_ARCHIVE_OPS_URL;\n\treturn new SecondLayer({\n\t\taccountKey,\n\t\torigin: \"mcp\",\n\t\tarchiveOpsUrl,\n\t});\n}\n\n// Appended to 401/403 errors raised on keyless requests — the operation needs\n// a write/account key, so point at where to get one.\nexport function keyHint(baseUrl: string = resolveBaseUrl()): string {\n\treturn isHostedApiUrl(baseUrl)\n\t\t? \" — set SECONDLAYER_API_KEY (an sk-sl_ key from secondlayer.tools/account/keys)\"\n\t\t: \" — set INSTANCE_TOKEN from `sl init` for writes\";\n}\n\n/** A raw request to an API endpoint the SDK doesn't cover. */\nexport type ApiRequest = <T>(\n\tmethod: string,\n\tpath: string,\n\tbody?: unknown,\n) => Promise<T>;\n\n/**\n * An {@link ApiRequest} against `baseUrl` with `apiKey` as the bearer. A\n * 401/403 on a keyless request gets a hint naming the key to set.\n */\nexport function createApiRequest(config: {\n\tbaseUrl: string;\n\tapiKey?: string;\n\tfetchImpl?: typeof fetch;\n}): ApiRequest {\n\tconst doFetch = config.fetchImpl ?? ((...args) => fetch(...args));\n\treturn async <T>(method: string, path: string, body?: unknown) => {\n\t\tconst { baseUrl, apiKey } = config;\n\t\tconst res = await doFetch(`${baseUrl}${path}`, {\n\t\t\tmethod,\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\t...(apiKey ? { Authorization: `Bearer ${apiKey}` } : {}),\n\t\t\t},\n\t\t\tbody: body ? JSON.stringify(body) : undefined,\n\t\t});\n\t\tif (!res.ok) {\n\t\t\tconst text = await res.text().catch(() => \"\");\n\t\t\tconst needsKey = !apiKey && (res.status === 401 || res.status === 403);\n\t\t\tlet parsed: unknown;\n\t\t\ttry {\n\t\t\t\tparsed = text ? JSON.parse(text) : undefined;\n\t\t\t} catch {\n\t\t\t\tparsed = undefined;\n\t\t\t}\n\t\t\tconst code =\n\t\t\t\tparsed &&\n\t\t\t\ttypeof parsed === \"object\" &&\n\t\t\t\ttypeof (parsed as { code?: unknown }).code === \"string\"\n\t\t\t\t\t? (parsed as { code: string }).code\n\t\t\t\t\t: undefined;\n\t\t\tthrow Object.assign(\n\t\t\t\tnew Error(\n\t\t\t\t\t(text || `HTTP ${res.status}`) + (needsKey ? keyHint(baseUrl) : \"\"),\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\tstatus: res.status,\n\t\t\t\t\t...(parsed !== undefined ? { body: parsed } : {}),\n\t\t\t\t\t...(code ? { code } : {}),\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t\tif (res.status === 204) return undefined as T;\n\t\treturn res.json() as Promise<T>;\n\t};\n}\n\n/** Raw fetch helper for API endpoints not covered by the SDK. Reads the base\n * URL and key from env on every call. */\nexport const apiRequest: ApiRequest = (method, path, body) =>\n\tcreateApiRequest({ baseUrl: resolveBaseUrl(), apiKey: readApiKey() })(\n\t\tmethod,\n\t\tpath,\n\t\tbody,\n\t);\n",
|
|
6
6
|
"import { readFileSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { resolveBaseUrl } from \"@secondlayer/sdk\";\nimport { isHostedArchiveUrl } from \"./lib/hosted.ts\";\nimport { restrictTools } from \"./lib/tool.ts\";\nimport { registerResources } from \"./resources.ts\";\nimport {\n\tENV_TOOL_DEPS,\n\tTOOL_GROUPS,\n\ttype ToolDeps,\n\tisHostedTool,\n} from \"./tool-groups.ts\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst pkg = JSON.parse(\n\treadFileSync(join(__dirname, \"../package.json\"), \"utf-8\"),\n);\n\nexport type { ToolDeps } from \"./tool-groups.ts\";\n\nexport interface CreateServerOptions extends Partial<ToolDeps> {\n\t/**\n\t * The hosted MCP endpoint's server: only the tools each group marks\n\t * `hosted`, with credentials from the options rather than the environment.\n\t * Omitted, the server is the stdio/self-host one, reading env as always.\n\t */\n\thosted?: boolean;\n}\n\nexport function createServer(options: CreateServerOptions = {}): McpServer {\n\tconst server = new McpServer({\n\t\tname: \"secondlayer\",\n\t\tversion: pkg.version,\n\t});\n\tconst deps: ToolDeps = {\n\t\tclientProvider: options.clientProvider ?? ENV_TOOL_DEPS.clientProvider,\n\t\tarchiveOpsClientProvider:\n\t\t\toptions.archiveOpsClientProvider ??\n\t\t\tENV_TOOL_DEPS.archiveOpsClientProvider,\n\t\tapiRequest: options.apiRequest ?? ENV_TOOL_DEPS.apiRequest,\n\t};\n\n\tif (options.hosted) {\n\t\tfor (const group of TOOL_GROUPS) {\n\t\t\tif (group.hosted === false) continue;\n\t\t\trestrictTools(server, (name) => isHostedTool(group, name));\n\t\t\tgroup.register(server, deps);\n\t\t}\n\t\trestrictTools(server, () => false);\n\t\tregisterResources(server, {\n\t\t\tclientProvider: deps.clientProvider,\n\t\t\thosted: true,\n\t\t});\n\t\treturn server;\n\t}\n\n\tconst hostedApi = isHostedArchiveUrl(resolveBaseUrl());\n\tfor (const { register, hostedOnly } of TOOL_GROUPS) {\n\t\tif (hostedOnly && !hostedApi) continue;\n\t\tregister(server, deps);\n\t}\n\tregisterResources(server, { clientProvider: deps.clientProvider });\n\n\treturn server;\n}\n",
|
|
7
7
|
"export const HOSTED_ARCHIVE_HOST = \"api.secondlayer.tools\";\n\nexport function isHostedArchiveUrl(url: string): boolean {\n\ttry {\n\t\treturn new URL(url).hostname === HOSTED_ARCHIVE_HOST;\n\t} catch {\n\t\treturn false;\n\t}\n}\n",
|
|
8
8
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\n\ninterface ToolResult {\n\tcontent: Array<{ type: \"text\"; text: string }>;\n\tisError?: boolean;\n}\n\n// Names of every tool registered via defineTool, in registration order. The\n// context resource generates its capability list from this so CAPABILITIES can\n// never drift behind the actual tool surface (a new tool auto-appears). A Set\n// dedupes across repeated createServer() calls in tests.\nconst registeredToolNames = new Set<string>();\n/** The same, per server: a hosted server lists only what it registered. */\nconst serverToolNames = new WeakMap<McpServer, Set<string>>();\n/** Which tools a server takes (createServer's hosted set); absent = all. */\nconst serverToolFilters = new WeakMap<McpServer, (name: string) => boolean>();\n\n/** Tool names registered so far: on `server`, or on any unrestricted server\n * in this process (see {@link defineTool}). */\nexport function getRegisteredToolNames(server?: McpServer): string[] {\n\treturn server\n\t\t? [...(serverToolNames.get(server) ?? [])]\n\t\t: [...registeredToolNames];\n}\n\n/** From now on, `server` registers only the tools `allow` accepts. */\nexport function restrictTools(\n\tserver: McpServer,\n\tallow: (name: string) => boolean,\n): void {\n\tserverToolFilters.set(server, allow);\n}\n\n/** API envelope fields worth handing back to the agent: the machine `code`,\n * the `request_id` to quote when reporting the failure, and where to report\n * it (`feedback.url`). Duck-typed: SDK errors (ApiError.body/code) and\n * apiRequest errors (body/code) both match; a plain Error yields {}. */\nexport function envelopeFields(err: unknown): {\n\tcode?: string;\n\trequest_id?: string;\n\tfeedback?: { url: string };\n} {\n\tif (!err || typeof err !== \"object\") return {};\n\tconst e = err as { code?: unknown; body?: unknown };\n\tconst body =\n\t\te.body && typeof e.body === \"object\"\n\t\t\t? (e.body as Record<string, unknown>)\n\t\t\t: {};\n\tconst code =\n\t\ttypeof e.code === \"string\"\n\t\t\t? e.code\n\t\t\t: typeof body.code === \"string\"\n\t\t\t\t? body.code\n\t\t\t\t: undefined;\n\tconst request_id =\n\t\ttypeof body.request_id === \"string\" ? body.request_id : undefined;\n\tconst fb = body.feedback as { url?: unknown } | undefined;\n\tconst feedback =\n\t\tfb && typeof fb === \"object\" && typeof fb.url === \"string\"\n\t\t\t? { url: fb.url }\n\t\t\t: undefined;\n\treturn {\n\t\t...(code ? { code } : {}),\n\t\t...(request_id ? { request_id } : {}),\n\t\t...(feedback ? { feedback } : {}),\n\t};\n}\n\n/**\n * Type-safe wrapper around McpServer.tool() that avoids TS2589.\n *\n * The MCP SDK's Zod-generic `tool()` signature recurses past TypeScript's\n * instantiation depth limit when schemas contain discriminated unions or\n * nested optionals. This helper isolates the boundary cast to one place\n * so tool files stay fully typed via the explicit `T` generic.\n *\n * Schema is typed as Record<string, unknown> to prevent TypeScript from\n * resolving the deeply recursive ZodRawShapeCompat constraint. Zod still\n * validates at runtime.\n */\nexport function defineTool<T>(\n\tserver: McpServer,\n\tname: string,\n\tdescription: string,\n\tschema: Record<string, unknown>,\n\thandler: (args: T) => Promise<ToolResult> | ToolResult,\n): void {\n\tconst wrappedHandler = async (args: T): Promise<ToolResult> => {\n\t\ttry {\n\t\t\treturn await handler(args);\n\t\t} catch (err: unknown) {\n\t\t\tconst message = err instanceof Error ? err.message : String(err);\n\t\t\tconst status =\n\t\t\t\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t\t\t\terr instanceof Error && \"status\" in err ? (err as any).status : 0;\n\t\t\tconst type =\n\t\t\t\tstatus === 401\n\t\t\t\t\t? \"unauthorized\"\n\t\t\t\t\t: status === 404\n\t\t\t\t\t\t? \"not_found\"\n\t\t\t\t\t\t: status === 429\n\t\t\t\t\t\t\t? \"rate_limited\"\n\t\t\t\t\t\t\t: status >= 500\n\t\t\t\t\t\t\t\t? \"server_error\"\n\t\t\t\t\t\t\t\t: \"error\";\n\t\t\treturn {\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: JSON.stringify({\n\t\t\t\t\t\t\terror: { type, status, message, ...envelopeFields(err) },\n\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tisError: true,\n\t\t\t};\n\t\t}\n\t};\n\tconst allow = serverToolFilters.get(server);\n\tif (allow && !allow(name)) return;\n\t// The process-wide list is the env server's; a restricted (hosted) server\n\t// keeps its own list only.\n\tif (!allow) registeredToolNames.add(name);\n\tconst names = serverToolNames.get(server) ?? new Set<string>();\n\tnames.add(name);\n\tserverToolNames.set(server, names);\n\t(server.tool as (...args: unknown[]) => unknown)(\n\t\tname,\n\t\tdescription,\n\t\tschema,\n\t\twrappedHandler,\n\t);\n}\n",
|
|
@@ -23,6 +23,6 @@
|
|
|
23
23
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport type { SecondLayer } from \"@secondlayer/sdk\";\nimport {\n\ttype ApiRequest,\n\tapiRequest,\n\tgetArchiveOpsClient,\n\tgetClient,\n} from \"./lib/client.ts\";\nimport { registerAccountTools } from \"./tools/account.ts\";\nimport { registerArchiveCliTools } from \"./tools/archive-cli.ts\";\nimport { registerArchiveTools } from \"./tools/archive.ts\";\nimport { registerCodegenTools } from \"./tools/codegen.ts\";\nimport { registerContractTools } from \"./tools/contracts.ts\";\nimport { registerIndexTools } from \"./tools/index.ts\";\nimport { registerInstanceTools } from \"./tools/instance.ts\";\nimport { registerScaffoldTools } from \"./tools/scaffold.ts\";\nimport { registerStreamsTools } from \"./tools/streams.ts\";\nimport { registerSubgraphTools } from \"./tools/subgraphs.ts\";\nimport { registerWebhookTools } from \"./tools/webhooks.ts\";\n\n/** Where tools get their credentials. Omitted, each reads the environment\n * (the stdio and self-host servers). */\nexport interface ToolDeps {\n\tclientProvider: () => SecondLayer;\n\tarchiveOpsClientProvider: () => SecondLayer;\n\tapiRequest: ApiRequest;\n}\n\nexport const ENV_TOOL_DEPS: ToolDeps = {\n\tclientProvider: getClient,\n\tarchiveOpsClientProvider: getArchiveOpsClient,\n\tapiRequest,\n};\n\nexport interface ToolGroup {\n\tgroup: string;\n\tregister: (server: McpServer, deps?: ToolDeps) => void;\n\t/** Registered only when the base URL is the hosted archive. */\n\thostedOnly?: true;\n\t/**\n\t * Served by the hosted MCP endpoint (`api.secondlayer.tools/mcp`): `true`\n\t * for every tool in the group, `false` for none, or the exact tools that\n\t * are. A hosted tool only calls the API and returns text: nothing that\n\t * writes files, spawns a process, needs a self-host-only route, or mints a\n\t * credential. Every group must choose.\n\t */\n\thosted: boolean | readonly string[];\n}\n\n/**\n * Every tool group, in registration order. The one list `createServer()`, the\n * docs tool table generator (scripts/sync-tools.ts) and the parity extractor\n * all read, so a new group cannot reach the server without reaching the docs.\n */\nexport const TOOL_GROUPS: readonly ToolGroup[] = [\n\t{\n\t\tgroup: \"scaffold\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterScaffoldTools(s, d.clientProvider),\n\t\thosted: true,\n\t},\n\t{\n\t\tgroup: \"subgraphs\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterSubgraphTools(s, d.clientProvider),\n\t\t// Deploy/test write temp files, and hosted runs no subgraphs.\n\t\thosted: false,\n\t},\n\t{\n\t\tgroup: \"webhooks\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterWebhookTools(s, d.clientProvider),\n\t\t// Webhook routes are self-host only on this API.\n\t\thosted: false,\n\t},\n\t{\n\t\tgroup: \"index\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) => registerIndexTools(s, d.clientProvider),\n\t\thosted: true,\n\t},\n\t{\n\t\tgroup: \"streams\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterStreamsTools(s, d.clientProvider),\n\t\thosted: true,\n\t},\n\t{\n\t\tgroup: \"contracts\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterContractTools(s, d.clientProvider),\n\t\thosted: true,\n\t},\n\t{ group: \"codegen\", register: (s) => registerCodegenTools(s), hosted: false },\n\t{\n\t\tgroup: \"instance\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterInstanceTools(s, d.clientProvider),\n\t\t// Self-host diagnosis.\n\t\thosted: false,\n\t},\n\t{\n\t\tgroup: \"archive\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) =>\n\t\t\tregisterArchiveTools(s, d.clientProvider, d.archiveOpsClientProvider),\n\t\thosted: false,\n\t},\n\t{\n\t\tgroup: \"archive\",\n\t\t// Spawns the local CLI.\n\t\tregister: (s) => registerArchiveCliTools(s),\n\t\thosted: false,\n\t},\n\t{\n\t\tgroup: \"account\",\n\t\tregister: (s, d = ENV_TOOL_DEPS) => registerAccountTools(s, d.apiRequest),\n\t\thostedOnly: true,\n\t\t// Never `account_create_key`: an app must not mint a durable key.\n\t\thosted: [\"account_whoami\"],\n\t},\n];\n\n/** Whether the hosted MCP endpoint serves `tool` from `group`. */\nexport function isHostedTool(group: ToolGroup, tool: string): boolean {\n\treturn (\n\t\tgroup.hosted === true ||\n\t\t(Array.isArray(group.hosted) && group.hosted.includes(tool))\n\t);\n}\n"
|
|
24
24
|
],
|
|
25
25
|
"mappings": "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",
|
|
26
|
-
"debugId": "
|
|
26
|
+
"debugId": "0279C54CD283A70B64756E2164756E21",
|
|
27
27
|
"names": []
|
|
28
28
|
}
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@secondlayer/mcp",
|
|
3
|
-
"version": "11.2.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "11.2.3",
|
|
4
|
+
"description": "MCP server for Stacks chain data: contracts, events, transfers, subgraphs. Key-authenticated.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "git+https://github.com/ryanwaits/secondlayer.git",
|
|
9
9
|
"directory": "packages/mcp"
|
|
10
10
|
},
|
|
11
|
-
"homepage": "https://
|
|
11
|
+
"homepage": "https://www.secondlayer.tools/docs/mcp",
|
|
12
12
|
"type": "module",
|
|
13
13
|
"main": "./dist/index.js",
|
|
14
14
|
"types": "./dist/index.d.ts",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"build": "bunup",
|
|
30
30
|
"dev": "bunup --watch",
|
|
31
31
|
"test": "bun test",
|
|
32
|
-
"tools": "bun scripts/sync-tools.ts",
|
|
32
|
+
"tools": "bun scripts/sync-tools.ts && bun scripts/sync-server-json.ts",
|
|
33
33
|
"typecheck": "tsc --noEmit",
|
|
34
34
|
"prepublishOnly": "bun run build"
|
|
35
35
|
},
|
|
@@ -37,11 +37,11 @@
|
|
|
37
37
|
"@modelcontextprotocol/sdk": "^1.32.1",
|
|
38
38
|
"@secondlayer/bundler": "^0.7.1",
|
|
39
39
|
"@secondlayer/scaffold": "^1.6.2",
|
|
40
|
-
"@secondlayer/sdk": "^15.5.
|
|
41
|
-
"@secondlayer/shared": "^14.0.
|
|
42
|
-
"@secondlayer/stacks": "^6.5.
|
|
43
|
-
"@secondlayer/subgraphs": "^7.7.
|
|
44
|
-
"zod": "^4.
|
|
40
|
+
"@secondlayer/sdk": "^15.5.1",
|
|
41
|
+
"@secondlayer/shared": "^14.0.2",
|
|
42
|
+
"@secondlayer/stacks": "^6.5.3",
|
|
43
|
+
"@secondlayer/subgraphs": "^7.7.3",
|
|
44
|
+
"zod": "^4.6.7"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@types/bun": "latest",
|
|
@@ -49,5 +49,14 @@
|
|
|
49
49
|
},
|
|
50
50
|
"publishConfig": {
|
|
51
51
|
"access": "public"
|
|
52
|
-
}
|
|
52
|
+
},
|
|
53
|
+
"keywords": [
|
|
54
|
+
"stacks",
|
|
55
|
+
"mcp",
|
|
56
|
+
"mcp-server",
|
|
57
|
+
"model-context-protocol",
|
|
58
|
+
"bitcoin",
|
|
59
|
+
"indexer"
|
|
60
|
+
],
|
|
61
|
+
"mcpName": "io.github.ryanwaits/secondlayer"
|
|
53
62
|
}
|