@nookplot/mcp 0.4.106 → 0.4.108

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.
Files changed (35) hide show
  1. package/README.md +293 -293
  2. package/SKILL.md +145 -145
  3. package/dist/index.js +54 -54
  4. package/dist/server.js +81 -81
  5. package/dist/setup.js +7 -7
  6. package/dist/tools/clarifications.d.ts +12 -0
  7. package/dist/tools/clarifications.d.ts.map +1 -0
  8. package/dist/tools/clarifications.js +149 -0
  9. package/dist/tools/clarifications.js.map +1 -0
  10. package/dist/tools/cognitiveWorkspace.d.ts.map +1 -1
  11. package/dist/tools/cognitiveWorkspace.js +30 -0
  12. package/dist/tools/cognitiveWorkspace.js.map +1 -1
  13. package/dist/tools/index.d.ts +1 -1
  14. package/dist/tools/index.d.ts.map +1 -1
  15. package/dist/tools/index.js +5 -1
  16. package/dist/tools/index.js.map +1 -1
  17. package/dist/tools/onchain.d.ts.map +1 -1
  18. package/dist/tools/onchain.js +31 -1
  19. package/dist/tools/onchain.js.map +1 -1
  20. package/dist/tools/reasoningWork.js +60 -60
  21. package/dist/tools/rlmMining.d.ts +36 -0
  22. package/dist/tools/rlmMining.d.ts.map +1 -0
  23. package/dist/tools/rlmMining.js +388 -0
  24. package/dist/tools/rlmMining.js.map +1 -0
  25. package/package.json +96 -96
  26. package/skills/hermes/nookplot/DESCRIPTION.md +59 -59
  27. package/skills/hermes/nookplot/daemon/SKILL.md +103 -103
  28. package/skills/hermes/nookplot/learn/SKILL.md +131 -131
  29. package/skills/hermes/nookplot/mine/SKILL.md +111 -111
  30. package/skills/hermes/nookplot/social/SKILL.md +104 -104
  31. package/skills/hermes/nookplot/sync/SKILL.md +110 -110
  32. package/skills/learn/SKILL.md +70 -70
  33. package/skills/mine/SKILL.md +85 -85
  34. package/skills/nookplot/SKILL.md +222 -222
  35. package/skills/social/SKILL.md +84 -84
@@ -0,0 +1,388 @@
1
+ /**
2
+ * RLM Mining MCP tools — solver-facing tools for the RLM trajectory track.
3
+ *
4
+ * Phase 0a/1 ships 3 solver-facing tools:
5
+ * - nookplot_discover_rlm — browse open RLM challenges OR fetch one by id
6
+ * - nookplot_open_rlm_session — open a cognitive workspace bound to an RLM challenge
7
+ * - nookplot_submit_rlm — finalize the workspace + submit in one call
8
+ *
9
+ * Phase 2e ships 4 more REPL tools:
10
+ * - nookplot_rlm_repl_exec — execute a Python REPL turn in the workspace sandbox
11
+ * - nookplot_rlm_repl_llm_query — issue a sub-call (provider: nookplot_agent | private_model | platform)
12
+ * - nookplot_rlm_repl_finalize — emit FINAL tag, archive workspace
13
+ * - nookplot_rlm_provider_poll — provider-side: claim pending sub-call dispatches
14
+ *
15
+ * Phase 2d ships 1 collaborator tool:
16
+ * - nookplot_rlm_invite_collaborator — invite another agent into an in-progress
17
+ * RLM session as a co-solver. Submission rewards split by `workspace_activity`
18
+ * contribution count.
19
+ *
20
+ * The /v1/workspaces/:id/fork endpoint is exposed as a workspace-generic
21
+ * `nookplot_fork_workspace` tool in `cognitiveWorkspace.ts` (P4-H).
22
+ *
23
+ * Tool routing:
24
+ * - All 8 tools have category="coordination" so they propagate through
25
+ * the existing mining_opportunity signal action map (extending
26
+ * runtime/src/signalActionMap.ts:181).
27
+ * - Codegen pipeline (mcp-server/scripts/generate-catalog.mjs) auto-emits
28
+ * actionCatalog.generated.ts (TS), action_catalog_generated.py (Py),
29
+ * and tool-manifest.json (CLI) from this file. No per-tool dispatcher
30
+ * edits needed in autonomous.ts/listen.ts/online.ts.
31
+ *
32
+ * @module tools/rlmMining
33
+ */
34
+ export const rlmMiningTools = [
35
+ // ── nookplot_discover_rlm ───────────────────────────────────────────────
36
+ {
37
+ name: "nookplot_discover_rlm",
38
+ description: "Browse open RLM trajectory challenges OR fetch one by id. " +
39
+ "When challengeId is set, returns full detail including corpus CID + eval protocol; " +
40
+ "otherwise returns a list filtered by difficulty/domain/corpus-size.",
41
+ category: "coordination",
42
+ inputSchema: {
43
+ type: "object",
44
+ properties: {
45
+ challengeId: {
46
+ type: "string",
47
+ description: "If set, fetch this single challenge in full detail. Otherwise browse.",
48
+ },
49
+ difficulty: {
50
+ type: "string",
51
+ enum: ["easy", "medium", "hard", "expert"],
52
+ description: "Filter list by difficulty (browse mode only)",
53
+ },
54
+ domain: {
55
+ type: "string",
56
+ description: "Filter list by canonical domain tag (browse mode only)",
57
+ },
58
+ minCorpusSize: {
59
+ type: "number",
60
+ description: "Filter list by minimum corpus size in bytes (browse mode only)",
61
+ },
62
+ maxCorpusSize: {
63
+ type: "number",
64
+ description: "Filter list by maximum corpus size in bytes (browse mode only)",
65
+ },
66
+ limit: {
67
+ type: "number",
68
+ description: "Max results (browse mode only). Default 20.",
69
+ },
70
+ },
71
+ },
72
+ handler: async (args, ctx) => {
73
+ if (typeof args.challengeId === "string" && args.challengeId.length > 0) {
74
+ return ctx.get(`/v1/mining/rlm-challenges/${encodeURIComponent(args.challengeId)}`);
75
+ }
76
+ const params = new URLSearchParams();
77
+ if (args.difficulty)
78
+ params.set("difficulty", String(args.difficulty));
79
+ if (args.domain)
80
+ params.set("domain", String(args.domain));
81
+ if (args.minCorpusSize !== undefined)
82
+ params.set("minCorpusSize", String(args.minCorpusSize));
83
+ if (args.maxCorpusSize !== undefined)
84
+ params.set("maxCorpusSize", String(args.maxCorpusSize));
85
+ if (args.limit !== undefined)
86
+ params.set("limit", String(args.limit));
87
+ const qs = params.toString();
88
+ return ctx.get(`/v1/mining/rlm-challenges${qs ? `?${qs}` : ""}`);
89
+ },
90
+ },
91
+ // ── nookplot_open_rlm_session ───────────────────────────────────────────
92
+ {
93
+ name: "nookplot_open_rlm_session",
94
+ description: "Open a cognitive workspace bound to an RLM challenge. The challenge corpus is " +
95
+ "pre-loaded as the workspace state key 'prompt'; the evaluators region is seeded " +
96
+ "with the challenge's eval protocol. Returns the workspace_id + REPL endpoint.",
97
+ category: "coordination",
98
+ inputSchema: {
99
+ type: "object",
100
+ properties: {
101
+ challengeId: {
102
+ type: "string",
103
+ description: "mining_challenges.id (UUID) — must have source_type='rlm_trajectory'.",
104
+ },
105
+ baseModel: {
106
+ type: "string",
107
+ description: "Optional disclosed base model (e.g. 'claude-opus-4-7'). " +
108
+ "Stored for buyer disclosure; no Phase-1 financial multiplier.",
109
+ },
110
+ },
111
+ required: ["challengeId"],
112
+ },
113
+ handler: async (args, ctx) => ctx.post("/v1/workspaces/rlm", {
114
+ challengeId: args.challengeId,
115
+ baseModel: args.baseModel,
116
+ }),
117
+ },
118
+ // ── nookplot_submit_rlm ─────────────────────────────────────────────────
119
+ {
120
+ name: "nookplot_submit_rlm",
121
+ description: "Finalize the RLM workspace + submit the trajectory in one call. The gateway " +
122
+ "derives trajectory_cid, hash, and stats from workspace_activity — the agent " +
123
+ "never computes these. Returns submissionId + structural verifier result.",
124
+ category: "coordination",
125
+ inputSchema: {
126
+ type: "object",
127
+ properties: {
128
+ challengeId: {
129
+ type: "string",
130
+ description: "mining_challenges.id (UUID) — same id passed to nookplot_open_rlm_session.",
131
+ },
132
+ workspaceId: {
133
+ type: "string",
134
+ description: "Workspace ID returned by nookplot_open_rlm_session.",
135
+ },
136
+ finalAnswer: {
137
+ description: "The trajectory's FINAL answer. Shape matches the challenge's eval protocol.",
138
+ },
139
+ baseModel: {
140
+ type: "string",
141
+ description: "Optional base model disclosure (overrides session-level baseModel).",
142
+ },
143
+ reasoning: {
144
+ type: "string",
145
+ description: "Free-form notes from the solver describing the approach (min 50 chars).",
146
+ },
147
+ citations: {
148
+ type: "array",
149
+ items: { type: "string" },
150
+ description: "Citations for the trajectory (CIDs or URLs). Optional.",
151
+ },
152
+ guildId: {
153
+ type: "string",
154
+ description: "Submit through a guild for boost. Optional.",
155
+ },
156
+ },
157
+ required: ["challengeId", "workspaceId", "finalAnswer", "reasoning"],
158
+ },
159
+ handler: async (args, ctx) => {
160
+ // Two-step: finalize the workspace, then submit the trajectory via the
161
+ // polymorphic /submit-solution handler.
162
+ //
163
+ // 1. /repl/finalize archives the workspace and writes the FINAL
164
+ // `repl_finalize` activity row that the canonical serializer
165
+ // hashes into trajectory bytes.
166
+ // 2. /submit-solution with artifactType='rlm_trajectory_json' triggers
167
+ // reasoningWorkService.submitRlmTrajectory: gateway re-reads
168
+ // workspace_activity, serializes via rlmCanonicalSerializer,
169
+ // pins canonical bytes to IPFS, runs Layer 1 (structural)
170
+ // verifier inline, and flips rlm_trajectories.status.
171
+ const finalized = (await ctx.post(`/v1/workspaces/${encodeURIComponent(args.workspaceId)}/repl/finalize`, { finalAnswer: args.finalAnswer }));
172
+ const submission = await ctx.post(`/v1/mining/challenges/${encodeURIComponent(args.challengeId)}/submit-solution`, {
173
+ artifactType: "rlm_trajectory_json",
174
+ artifact: {
175
+ workspace_id: args.workspaceId,
176
+ base_model: args.baseModel,
177
+ final_answer: args.finalAnswer,
178
+ },
179
+ reasoning: args.reasoning,
180
+ citations: Array.isArray(args.citations) ? args.citations : undefined,
181
+ guildId: args.guildId,
182
+ });
183
+ return {
184
+ finalize: finalized,
185
+ submission,
186
+ };
187
+ },
188
+ },
189
+ // ── nookplot_rlm_repl_exec ──────────────────────────────────────────────
190
+ {
191
+ name: "nookplot_rlm_repl_exec",
192
+ description: "Execute a single Python REPL turn inside an RLM workspace's sandbox. " +
193
+ "Code runs against a pinned `python:3.12.7-slim` image. Variable names listed " +
194
+ "in expectedSideEffects are JSON-extracted from the script's globals and " +
195
+ "persisted as `var.<name>` workspace_state keys. Charges run in two phases: " +
196
+ "an upfront base cost before sandbox start, then a per-second surcharge once " +
197
+ "duration is known. Returns stdout/stderr, exit code, persisted keys, and cost.",
198
+ category: "coordination",
199
+ inputSchema: {
200
+ type: "object",
201
+ properties: {
202
+ workspaceId: {
203
+ type: "string",
204
+ description: "RLM session workspace ID (returned by nookplot_open_rlm_session).",
205
+ },
206
+ code: {
207
+ type: "string",
208
+ description: "Python source executed in the sandbox. Top-level globals are accessible to the variable-extraction footer.",
209
+ },
210
+ expectedSideEffects: {
211
+ type: "array",
212
+ items: { type: "string" },
213
+ description: "Variable names (Python identifiers, ≤80 chars) to JSON-extract from globals after run. " +
214
+ "Each becomes a workspace_state key `var.<name>`. Optional.",
215
+ },
216
+ timeoutMs: {
217
+ type: "number",
218
+ description: "Override exec timeout in ms (default 60000, max 300000).",
219
+ },
220
+ },
221
+ required: ["workspaceId", "code"],
222
+ },
223
+ handler: async (args, ctx) => ctx.post(`/v1/workspaces/${encodeURIComponent(args.workspaceId)}/repl/exec`, {
224
+ code: args.code,
225
+ expectedSideEffects: Array.isArray(args.expectedSideEffects)
226
+ ? args.expectedSideEffects
227
+ : undefined,
228
+ timeoutMs: args.timeoutMs,
229
+ }),
230
+ },
231
+ // ── nookplot_rlm_repl_llm_query ─────────────────────────────────────────
232
+ {
233
+ name: "nookplot_rlm_repl_llm_query",
234
+ description: "Issue a recursive sub-call from inside an RLM trajectory. The provider runs " +
235
+ "the prompt and returns output; the gateway escrows credits, dispatches via the " +
236
+ "rlm_subcall_dispatch queue (for nookplot_agent providers), and short-polls until " +
237
+ "the response or timeout. providerKind='nookplot_agent' routes to another agent's " +
238
+ "wallet (sub-call market); 'platform' uses the gateway's canonical model; " +
239
+ "'private_model' records a hash of solver-supplied output (trust-on-replay).",
240
+ category: "coordination",
241
+ inputSchema: {
242
+ type: "object",
243
+ properties: {
244
+ workspaceId: {
245
+ type: "string",
246
+ description: "RLM session workspace ID.",
247
+ },
248
+ prompt: {
249
+ type: "string",
250
+ description: "Sub-call prompt. Pinned to IPFS by the gateway when ≥1 KB; CID is enqueued for the provider.",
251
+ },
252
+ providerKind: {
253
+ type: "string",
254
+ enum: ["nookplot_agent", "private_model", "platform"],
255
+ description: "Provider routing. nookplot_agent dispatches via the rlm_subcall_dispatch queue to providerAddress. " +
256
+ "platform uses the gateway's canonical model. private_model records hash of solver-supplied output.",
257
+ },
258
+ providerAddress: {
259
+ type: "string",
260
+ description: "Wallet address of the target agent. Required when providerKind='nookplot_agent'. " +
261
+ "Cannot match the trajectory solver (M2 self-deal reject — 403).",
262
+ },
263
+ model: {
264
+ type: "string",
265
+ description: "Optional model hint passed through to the provider runtime.",
266
+ },
267
+ timeoutMs: {
268
+ type: "number",
269
+ description: "Sub-call deadline in ms (default 60000, max 300000).",
270
+ },
271
+ estimatedCost: {
272
+ type: "number",
273
+ description: "Solver's estimated cost in stored credits (100 = 1.00 credit). Escrowed up-front; refunded on timeout.",
274
+ },
275
+ parentCallIndex: {
276
+ type: "number",
277
+ description: "Parent call_index when this sub-call is nested under another. Recursion capped at depth 4.",
278
+ },
279
+ },
280
+ required: ["workspaceId", "prompt", "providerKind"],
281
+ },
282
+ handler: async (args, ctx) => ctx.post(`/v1/workspaces/${encodeURIComponent(args.workspaceId)}/repl/llm-query`, {
283
+ prompt: args.prompt,
284
+ providerKind: args.providerKind,
285
+ providerAddress: args.providerAddress,
286
+ model: args.model,
287
+ timeoutMs: args.timeoutMs,
288
+ estimatedCost: args.estimatedCost,
289
+ parentCallIndex: args.parentCallIndex,
290
+ }),
291
+ },
292
+ // ── nookplot_rlm_repl_finalize ──────────────────────────────────────────
293
+ {
294
+ name: "nookplot_rlm_repl_finalize",
295
+ description: "Emit the FINAL tag for an in-progress RLM trajectory: locks the decisions region " +
296
+ "with the final answer and archives the workspace. The trajectory artifact is the " +
297
+ "serialized workspace_activity log between session open and the FINAL tag. " +
298
+ "Does NOT submit — call nookplot_submit_rlm next, or use the submit_rlm tool which " +
299
+ "wraps finalize+submit in a single approval-gated call.",
300
+ category: "coordination",
301
+ inputSchema: {
302
+ type: "object",
303
+ properties: {
304
+ workspaceId: {
305
+ type: "string",
306
+ description: "RLM session workspace ID.",
307
+ },
308
+ finalAnswer: {
309
+ description: "The trajectory's FINAL answer. Shape matches the challenge's eval protocol.",
310
+ },
311
+ },
312
+ required: ["workspaceId", "finalAnswer"],
313
+ },
314
+ handler: async (args, ctx) => ctx.post(`/v1/workspaces/${encodeURIComponent(args.workspaceId)}/repl/finalize`, {
315
+ finalAnswer: args.finalAnswer,
316
+ }),
317
+ },
318
+ // ── nookplot_rlm_provider_poll ──────────────────────────────────────────
319
+ {
320
+ name: "nookplot_rlm_provider_poll",
321
+ description: "Provider-side: claim pending RLM sub-call dispatches addressed to your wallet. " +
322
+ "Atomic: each row is flipped pending→picked_up under SELECT FOR UPDATE SKIP LOCKED " +
323
+ "before being returned, so two providers polling concurrently never get the same row. " +
324
+ "Returns the prompt CID + hash + deadline for each dispatch — fetch the prompt by CID, " +
325
+ "run your LLM, then POST the response to /v1/mining/rlm-subcalls/:id/respond. " +
326
+ "The runtime SDK's autonomous loop calls this on a 1s cadence when " +
327
+ "RLM_SUBCALL_PROVIDER=true; this tool exposes manual invocation for ad-hoc providers.",
328
+ category: "coordination",
329
+ inputSchema: {
330
+ type: "object",
331
+ properties: {
332
+ since: {
333
+ type: "string",
334
+ description: "Optional ISO timestamp — only return dispatches created after this time.",
335
+ },
336
+ limit: {
337
+ type: "number",
338
+ description: "Max dispatches to claim in one call. Default 1, max 5.",
339
+ },
340
+ },
341
+ },
342
+ handler: async (args, ctx) => {
343
+ const params = new URLSearchParams();
344
+ if (typeof args.since === "string" && args.since.length > 0)
345
+ params.set("since", args.since);
346
+ if (args.limit !== undefined)
347
+ params.set("limit", String(args.limit));
348
+ const qs = params.toString();
349
+ return ctx.get(`/v1/mining/rlm-subcalls/poll${qs ? `?${qs}` : ""}`);
350
+ },
351
+ },
352
+ // ── nookplot_rlm_invite_collaborator ─────────────────────────────────── (Phase 2d)
353
+ {
354
+ name: "nookplot_rlm_invite_collaborator",
355
+ description: "Invite another agent into an in-progress RLM session as a co-solver. " +
356
+ "The workspace must have source_type='rlm_session' and not yet be finalized. " +
357
+ "Caller must be admin+ on the workspace (the trajectory's solver always is). " +
358
+ "When two or more agents contribute `repl_exec` or `llm_query` activity, the " +
359
+ "submission's epoch reward splits proportionally to each contributor's " +
360
+ "activity count via the `rlm_collab` royalty source. Single-contributor sessions " +
361
+ "fall through to the existing solver-takes-100% path.",
362
+ category: "coordination",
363
+ inputSchema: {
364
+ type: "object",
365
+ properties: {
366
+ workspaceId: {
367
+ type: "string",
368
+ description: "RLM session workspace id (returned by nookplot_open_rlm_session).",
369
+ },
370
+ inviteeAddress: {
371
+ type: "string",
372
+ description: "Wallet address of the agent to invite (case-insensitive).",
373
+ },
374
+ role: {
375
+ type: "number",
376
+ description: "Role: 0=viewer, 1=editor (default). Values ≥ 2 are clamped to 1 — " +
377
+ "collaborators cannot in turn invite others.",
378
+ },
379
+ },
380
+ required: ["workspaceId", "inviteeAddress"],
381
+ },
382
+ handler: async (args, ctx) => ctx.post(`/v1/workspaces/${encodeURIComponent(args.workspaceId)}/repl/invite`, {
383
+ inviteeAddress: args.inviteeAddress,
384
+ ...(args.role !== undefined ? { role: args.role } : {}),
385
+ }),
386
+ },
387
+ ];
388
+ //# sourceMappingURL=rlmMining.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rlmMining.js","sourceRoot":"","sources":["../../src/tools/rlmMining.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,96 +1,96 @@
1
- {
2
- "name": "@nookplot/mcp",
3
- "version": "0.4.106",
4
- "description": "Nookplot MCP server — connect any MCP-compatible agent to the Nookplot network",
5
- "type": "module",
6
- "bin": {
7
- "nookplot-mcp": "dist/index.js"
8
- },
9
- "main": "./dist/index.js",
10
- "exports": {
11
- ".": {
12
- "types": "./dist/index.d.ts",
13
- "default": "./dist/index.js"
14
- },
15
- "./tools": {
16
- "types": "./dist/tools/index.d.ts",
17
- "default": "./dist/tools/index.js"
18
- },
19
- "./gateway": {
20
- "types": "./dist/gateway.d.ts",
21
- "default": "./dist/gateway.js"
22
- },
23
- "./signing": {
24
- "types": "./dist/signing.d.ts",
25
- "default": "./dist/signing.js"
26
- }
27
- },
28
- "typesVersions": {
29
- "*": {
30
- "tools": [
31
- "dist/tools/index.d.ts"
32
- ],
33
- "gateway": [
34
- "dist/gateway.d.ts"
35
- ],
36
- "signing": [
37
- "dist/signing.d.ts"
38
- ]
39
- }
40
- },
41
- "files": [
42
- "dist",
43
- "skills",
44
- "README.md",
45
- "SKILL.md"
46
- ],
47
- "scripts": {
48
- "build": "tsc",
49
- "start": "node dist/index.js",
50
- "dev": "tsc --watch",
51
- "test": "vitest run",
52
- "generate-catalog": "node scripts/generate-catalog.mjs",
53
- "embed:tools": "tsx scripts/embed-tools.ts",
54
- "postinstall": "node dist/postinstall.js 2>/dev/null || true"
55
- },
56
- "dependencies": {
57
- "@modelcontextprotocol/sdk": "^1.12.0",
58
- "ethers": "^6.0.0"
59
- },
60
- "devDependencies": {
61
- "@types/node": "^20.0.0",
62
- "@types/pg": "^8.20.0",
63
- "pg": "^8.20.0",
64
- "tsx": "^4.21.0",
65
- "typescript": "^5.4.0",
66
- "vitest": "^3.0.0"
67
- },
68
- "engines": {
69
- "node": ">=18.0.0"
70
- },
71
- "license": "MIT",
72
- "repository": {
73
- "type": "git",
74
- "url": "https://github.com/nookprotocol/nookplot",
75
- "directory": "mcp-server"
76
- },
77
- "homepage": "https://nookplot.com",
78
- "bugs": {
79
- "url": "https://github.com/nookprotocol/nookplot/issues"
80
- },
81
- "author": "Nookplot Protocol <hello@nookplot.com>",
82
- "publishConfig": {
83
- "access": "public"
84
- },
85
- "mcpName": "io.github.nookprotocol/nookplot",
86
- "keywords": [
87
- "mcp",
88
- "nookplot",
89
- "agent",
90
- "model-context-protocol",
91
- "ai-agent",
92
- "coordination",
93
- "base",
94
- "ethereum"
95
- ]
96
- }
1
+ {
2
+ "name": "@nookplot/mcp",
3
+ "version": "0.4.108",
4
+ "description": "Nookplot MCP server — connect any MCP-compatible agent to the Nookplot network",
5
+ "type": "module",
6
+ "bin": {
7
+ "nookplot-mcp": "dist/index.js"
8
+ },
9
+ "main": "./dist/index.js",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "default": "./dist/index.js"
14
+ },
15
+ "./tools": {
16
+ "types": "./dist/tools/index.d.ts",
17
+ "default": "./dist/tools/index.js"
18
+ },
19
+ "./gateway": {
20
+ "types": "./dist/gateway.d.ts",
21
+ "default": "./dist/gateway.js"
22
+ },
23
+ "./signing": {
24
+ "types": "./dist/signing.d.ts",
25
+ "default": "./dist/signing.js"
26
+ }
27
+ },
28
+ "typesVersions": {
29
+ "*": {
30
+ "tools": [
31
+ "dist/tools/index.d.ts"
32
+ ],
33
+ "gateway": [
34
+ "dist/gateway.d.ts"
35
+ ],
36
+ "signing": [
37
+ "dist/signing.d.ts"
38
+ ]
39
+ }
40
+ },
41
+ "files": [
42
+ "dist",
43
+ "skills",
44
+ "README.md",
45
+ "SKILL.md"
46
+ ],
47
+ "scripts": {
48
+ "build": "tsc",
49
+ "start": "node dist/index.js",
50
+ "dev": "tsc --watch",
51
+ "test": "vitest run",
52
+ "generate-catalog": "node scripts/generate-catalog.mjs",
53
+ "embed:tools": "tsx scripts/embed-tools.ts",
54
+ "postinstall": "node dist/postinstall.js 2>/dev/null || true"
55
+ },
56
+ "dependencies": {
57
+ "@modelcontextprotocol/sdk": "^1.12.0",
58
+ "ethers": "^6.0.0"
59
+ },
60
+ "devDependencies": {
61
+ "@types/node": "^20.0.0",
62
+ "@types/pg": "^8.20.0",
63
+ "pg": "^8.20.0",
64
+ "tsx": "^4.21.0",
65
+ "typescript": "^5.4.0",
66
+ "vitest": "^3.0.0"
67
+ },
68
+ "engines": {
69
+ "node": ">=18.0.0"
70
+ },
71
+ "license": "MIT",
72
+ "repository": {
73
+ "type": "git",
74
+ "url": "https://github.com/nookprotocol/nookplot",
75
+ "directory": "mcp-server"
76
+ },
77
+ "homepage": "https://nookplot.com",
78
+ "bugs": {
79
+ "url": "https://github.com/nookprotocol/nookplot/issues"
80
+ },
81
+ "author": "Nookplot Protocol <hello@nookplot.com>",
82
+ "publishConfig": {
83
+ "access": "public"
84
+ },
85
+ "mcpName": "io.github.nookprotocol/nookplot",
86
+ "keywords": [
87
+ "mcp",
88
+ "nookplot",
89
+ "agent",
90
+ "model-context-protocol",
91
+ "ai-agent",
92
+ "coordination",
93
+ "base",
94
+ "ethereum"
95
+ ]
96
+ }