dero-mcp-server 0.1.0 → 0.1.2
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/LICENSE +21 -0
- package/README.md +138 -5
- package/data/docs-index.json +5694 -0
- package/dist/docs-parse.d.ts +30 -0
- package/dist/docs-parse.d.ts.map +1 -0
- package/dist/docs-parse.js +147 -0
- package/dist/docs-parse.js.map +1 -0
- package/dist/docs.d.ts +101 -0
- package/dist/docs.d.ts.map +1 -0
- package/dist/docs.js +172 -0
- package/dist/docs.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +389 -41
- package/dist/server.js.map +1 -1
- package/package.json +16 -3
- package/src/index.ts +0 -30
- package/src/rpc.ts +0 -60
- package/src/server.ts +0 -317
- package/tsconfig.json +0 -16
package/dist/server.js
CHANGED
|
@@ -1,11 +1,52 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { deroJsonRpc, jsonRpcEndpoint } from './rpc.js';
|
|
4
|
+
import { DERO_DOC_PRODUCTS, getDeroDocPage, listDeroDocs, searchDeroDocs, } from './docs.js';
|
|
4
5
|
const scRpcArgSchema = z.object({
|
|
5
6
|
name: z.string(),
|
|
6
7
|
datatype: z.enum(['S', 'U', 'H']),
|
|
7
8
|
value: z.union([z.string(), z.number()]),
|
|
8
9
|
});
|
|
10
|
+
const hex64Schema = z
|
|
11
|
+
.string()
|
|
12
|
+
.regex(/^[0-9a-fA-F]{64}$/, 'Expected 64-character hex string');
|
|
13
|
+
const deroAddressSchema = z
|
|
14
|
+
.string()
|
|
15
|
+
.regex(/^(dero1|deto1)[0-9a-z]+$/i, 'Expected DERO address starting with dero1 or deto1');
|
|
16
|
+
const NAME_REGISTRY_SCID = '0000000000000000000000000000000000000000000000000000000000000001';
|
|
17
|
+
const DERO_TOOL_NAMES = [
|
|
18
|
+
'dero_daemon_ping',
|
|
19
|
+
'dero_daemon_echo',
|
|
20
|
+
'dero_get_info',
|
|
21
|
+
'dero_get_height',
|
|
22
|
+
'dero_get_block_count',
|
|
23
|
+
'dero_get_last_block_header',
|
|
24
|
+
'dero_get_block',
|
|
25
|
+
'dero_get_block_header_by_topo_height',
|
|
26
|
+
'dero_get_block_header_by_hash',
|
|
27
|
+
'dero_get_tx_pool',
|
|
28
|
+
'dero_get_random_address',
|
|
29
|
+
'dero_get_transaction',
|
|
30
|
+
'dero_get_encrypted_balance',
|
|
31
|
+
'dero_get_sc',
|
|
32
|
+
'dero_get_gas_estimate',
|
|
33
|
+
'dero_name_to_address',
|
|
34
|
+
'dero_get_block_template',
|
|
35
|
+
'dero_docs_search',
|
|
36
|
+
'dero_docs_get_page',
|
|
37
|
+
'dero_docs_list',
|
|
38
|
+
];
|
|
39
|
+
const DERO_RESOURCE_URIS = [
|
|
40
|
+
'dero://mcp/server-info',
|
|
41
|
+
'dero://mcp/safety-boundary',
|
|
42
|
+
'dero://mcp/example-flows',
|
|
43
|
+
];
|
|
44
|
+
const DERO_PROMPT_NAMES = [
|
|
45
|
+
'network_health_check',
|
|
46
|
+
'inspect_smart_contract',
|
|
47
|
+
'trace_transaction',
|
|
48
|
+
];
|
|
49
|
+
const deroDocProductSchema = z.enum(DERO_DOC_PRODUCTS);
|
|
9
50
|
function toolText(data) {
|
|
10
51
|
return {
|
|
11
52
|
content: [
|
|
@@ -16,39 +57,148 @@ function toolText(data) {
|
|
|
16
57
|
],
|
|
17
58
|
};
|
|
18
59
|
}
|
|
60
|
+
function classifyToolError(error) {
|
|
61
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
62
|
+
if (message.includes('Provide either hash or height')) {
|
|
63
|
+
return {
|
|
64
|
+
code: 'INVALID_INPUT',
|
|
65
|
+
hint: 'Pass exactly one of "hash" or "height".',
|
|
66
|
+
retryable: false,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
if (message.includes('DERO docs unavailable') ||
|
|
70
|
+
message.includes('bundled docs index is missing')) {
|
|
71
|
+
return {
|
|
72
|
+
code: 'DOCS_UNAVAILABLE',
|
|
73
|
+
hint: 'Bundled docs index is missing from this install. Reinstall dero-mcp-server or set DERO_DOCS_ROOT for local dev override.',
|
|
74
|
+
retryable: false,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
if (message.includes('DERO docs search requires a non-empty query')) {
|
|
78
|
+
return {
|
|
79
|
+
code: 'INVALID_INPUT',
|
|
80
|
+
hint: 'Pass a non-empty "query" string for dero_docs_search.',
|
|
81
|
+
retryable: false,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
if (message.includes('DERO docs get page requires a non-empty slug')) {
|
|
85
|
+
return {
|
|
86
|
+
code: 'INVALID_INPUT',
|
|
87
|
+
hint: 'Pass a non-empty "slug" for dero_docs_get_page.',
|
|
88
|
+
retryable: false,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
if (message.includes('Doc page not found')) {
|
|
92
|
+
return {
|
|
93
|
+
code: 'DOC_NOT_FOUND',
|
|
94
|
+
hint: 'Use dero_docs_search or dero_docs_list to discover valid slugs, then retry.',
|
|
95
|
+
retryable: false,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
if (message.includes('RPC error -32601')) {
|
|
99
|
+
return {
|
|
100
|
+
code: 'RPC_METHOD_NOT_FOUND',
|
|
101
|
+
hint: 'Your daemon may be outdated or not a Stargate endpoint. Verify DERO_DAEMON_URL.',
|
|
102
|
+
retryable: false,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
if (message.includes('RPC error -32602')) {
|
|
106
|
+
return {
|
|
107
|
+
code: 'RPC_INVALID_PARAMS',
|
|
108
|
+
hint: 'Verify argument names and types for this tool.',
|
|
109
|
+
retryable: false,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
const httpMatch = message.match(/HTTP (\d{3})/);
|
|
113
|
+
if (httpMatch) {
|
|
114
|
+
const status = Number(httpMatch[1]);
|
|
115
|
+
return {
|
|
116
|
+
code: 'RPC_HTTP_ERROR',
|
|
117
|
+
hint: status >= 500
|
|
118
|
+
? 'Daemon is reachable but errored; retry after checking node health.'
|
|
119
|
+
: 'Check DERO_DAEMON_URL and ensure /json_rpc is accessible.',
|
|
120
|
+
retryable: status >= 500,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
if (message.toLowerCase().includes('fetch failed') ||
|
|
124
|
+
message.toLowerCase().includes('network') ||
|
|
125
|
+
message.toLowerCase().includes('econnrefused') ||
|
|
126
|
+
message.toLowerCase().includes('aborted')) {
|
|
127
|
+
return {
|
|
128
|
+
code: 'RPC_UNREACHABLE',
|
|
129
|
+
hint: 'Confirm daemon is running and reachable, then rerun `npm run doctor`.',
|
|
130
|
+
retryable: true,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
if (message.includes('Invalid JSON from node')) {
|
|
134
|
+
return {
|
|
135
|
+
code: 'RPC_INVALID_RESPONSE',
|
|
136
|
+
hint: 'Daemon returned malformed JSON. Check reverse proxies or node health.',
|
|
137
|
+
retryable: true,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
return {
|
|
141
|
+
code: 'TOOL_EXECUTION_ERROR',
|
|
142
|
+
hint: 'Retry once, then inspect daemon logs and tool input values.',
|
|
143
|
+
retryable: false,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
function toolError(tool, error) {
|
|
147
|
+
const structured = classifyToolError(error);
|
|
148
|
+
const raw = error instanceof Error ? error.message : String(error);
|
|
149
|
+
return toolText({
|
|
150
|
+
ok: false,
|
|
151
|
+
tool,
|
|
152
|
+
_meta: {
|
|
153
|
+
error: {
|
|
154
|
+
...structured,
|
|
155
|
+
raw,
|
|
156
|
+
},
|
|
157
|
+
},
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
function withStructuredErrors(tool, handler) {
|
|
161
|
+
return async (args) => {
|
|
162
|
+
try {
|
|
163
|
+
return toolText(await handler(args));
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
return toolError(tool, error);
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
}
|
|
19
170
|
export function createDeroMcpServer(daemonBaseUrl) {
|
|
20
171
|
const endpoint = jsonRpcEndpoint(daemonBaseUrl);
|
|
21
172
|
const rpc = async (method, params) => deroJsonRpc(endpoint, method, params);
|
|
22
173
|
const server = new McpServer({
|
|
23
174
|
name: 'dero-daemon-mcp',
|
|
24
|
-
version: '0.1.
|
|
175
|
+
version: '0.1.2',
|
|
25
176
|
});
|
|
26
177
|
server.registerTool('dero_daemon_ping', {
|
|
27
178
|
description: 'DERO daemon connectivity check. Calls DERO.Ping. No parameters.',
|
|
28
|
-
}, async () =>
|
|
179
|
+
}, withStructuredErrors('dero_daemon_ping', async () => rpc('DERO.Ping')));
|
|
29
180
|
server.registerTool('dero_daemon_echo', {
|
|
30
181
|
description: 'Echo strings through the daemon (DERO.Echo).',
|
|
31
182
|
inputSchema: {
|
|
32
183
|
words: z.array(z.string()).describe('Strings to echo back'),
|
|
33
184
|
},
|
|
34
|
-
}, async ({ words }) =>
|
|
185
|
+
}, withStructuredErrors('dero_daemon_echo', async ({ words }) => rpc('DERO.Echo', words)));
|
|
35
186
|
server.registerTool('dero_get_info', {
|
|
36
187
|
description: 'Get daemon / chain info: height, difficulty, version, mempool size, etc. (DERO.GetInfo).',
|
|
37
|
-
}, async () =>
|
|
188
|
+
}, withStructuredErrors('dero_get_info', async () => rpc('DERO.GetInfo')));
|
|
38
189
|
server.registerTool('dero_get_height', {
|
|
39
190
|
description: 'Get top block height and stable/topo heights (DERO.GetHeight).',
|
|
40
|
-
}, async () =>
|
|
191
|
+
}, withStructuredErrors('dero_get_height', async () => rpc('DERO.GetHeight')));
|
|
41
192
|
server.registerTool('dero_get_block_count', {
|
|
42
193
|
description: 'Total block count (DERO.GetBlockCount).',
|
|
43
|
-
}, async () =>
|
|
194
|
+
}, withStructuredErrors('dero_get_block_count', async () => rpc('DERO.GetBlockCount')));
|
|
44
195
|
server.registerTool('dero_get_last_block_header', {
|
|
45
196
|
description: 'Header of the tip block (DERO.GetLastBlockHeader).',
|
|
46
|
-
}, async () =>
|
|
197
|
+
}, withStructuredErrors('dero_get_last_block_header', async () => rpc('DERO.GetLastBlockHeader')));
|
|
47
198
|
server.registerTool('dero_get_block', {
|
|
48
199
|
description: 'Fetch a full block by height or hash (DERO.GetBlock). Provide one of hash or height.',
|
|
49
200
|
inputSchema: {
|
|
50
|
-
hash:
|
|
51
|
-
.string()
|
|
201
|
+
hash: hex64Schema
|
|
52
202
|
.optional()
|
|
53
203
|
.describe('64-char hex block hash'),
|
|
54
204
|
height: z
|
|
@@ -58,7 +208,7 @@ export function createDeroMcpServer(daemonBaseUrl) {
|
|
|
58
208
|
.optional()
|
|
59
209
|
.describe('Block height'),
|
|
60
210
|
},
|
|
61
|
-
}, async (args) => {
|
|
211
|
+
}, withStructuredErrors('dero_get_block', async (args) => {
|
|
62
212
|
if (!args.hash && args.height === undefined) {
|
|
63
213
|
throw new Error('Provide either hash or height');
|
|
64
214
|
}
|
|
@@ -67,8 +217,8 @@ export function createDeroMcpServer(daemonBaseUrl) {
|
|
|
67
217
|
params.hash = args.hash;
|
|
68
218
|
if (args.height !== undefined)
|
|
69
219
|
params.height = args.height;
|
|
70
|
-
return
|
|
71
|
-
});
|
|
220
|
+
return rpc('DERO.GetBlock', params);
|
|
221
|
+
}));
|
|
72
222
|
server.registerTool('dero_get_block_header_by_topo_height', {
|
|
73
223
|
description: 'Block header by topological height (DERO.GetBlockHeaderByTopoHeight).',
|
|
74
224
|
inputSchema: {
|
|
@@ -78,30 +228,29 @@ export function createDeroMcpServer(daemonBaseUrl) {
|
|
|
78
228
|
.nonnegative()
|
|
79
229
|
.describe('Topological height'),
|
|
80
230
|
},
|
|
81
|
-
}, async ({ topoheight }) =>
|
|
231
|
+
}, withStructuredErrors('dero_get_block_header_by_topo_height', async ({ topoheight }) => rpc('DERO.GetBlockHeaderByTopoHeight', { topoheight })));
|
|
82
232
|
server.registerTool('dero_get_block_header_by_hash', {
|
|
83
233
|
description: 'Block header by hash (DERO.GetBlockHeaderByHash).',
|
|
84
234
|
inputSchema: {
|
|
85
|
-
hash:
|
|
235
|
+
hash: hex64Schema.describe('Block top hash (hex)'),
|
|
86
236
|
},
|
|
87
|
-
}, async ({ hash }) =>
|
|
237
|
+
}, withStructuredErrors('dero_get_block_header_by_hash', async ({ hash }) => rpc('DERO.GetBlockHeaderByHash', { hash })));
|
|
88
238
|
server.registerTool('dero_get_tx_pool', {
|
|
89
239
|
description: 'Pending mempool transaction hashes (DERO.GetTxPool).',
|
|
90
|
-
}, async () =>
|
|
240
|
+
}, withStructuredErrors('dero_get_tx_pool', async () => rpc('DERO.GetTxPool')));
|
|
91
241
|
server.registerTool('dero_get_random_address', {
|
|
92
242
|
description: 'Random registered addresses from chain (for ring construction); optional asset scid (DERO.GetRandomAddress).',
|
|
93
243
|
inputSchema: {
|
|
94
|
-
scid:
|
|
95
|
-
.string()
|
|
244
|
+
scid: hex64Schema
|
|
96
245
|
.optional()
|
|
97
246
|
.describe('Optional asset smart-contract id (hex)'),
|
|
98
247
|
},
|
|
99
|
-
}, async (args) =>
|
|
248
|
+
}, withStructuredErrors('dero_get_random_address', async (args) => rpc('DERO.GetRandomAddress', args.scid != null ? { scid: args.scid } : undefined)));
|
|
100
249
|
server.registerTool('dero_get_transaction', {
|
|
101
250
|
description: 'Fetch transactions by tx hashes (DERO.GetTransaction).',
|
|
102
251
|
inputSchema: {
|
|
103
252
|
txs_hashes: z
|
|
104
|
-
.array(
|
|
253
|
+
.array(hex64Schema)
|
|
105
254
|
.min(1)
|
|
106
255
|
.describe('List of transaction hashes (hex)'),
|
|
107
256
|
decode_as_json: z
|
|
@@ -110,32 +259,32 @@ export function createDeroMcpServer(daemonBaseUrl) {
|
|
|
110
259
|
.optional()
|
|
111
260
|
.describe('Optional: decode each tx as JSON when non-zero'),
|
|
112
261
|
},
|
|
113
|
-
}, async ({ txs_hashes, decode_as_json }) => {
|
|
262
|
+
}, withStructuredErrors('dero_get_transaction', async ({ txs_hashes, decode_as_json }) => {
|
|
114
263
|
const params = { txs_hashes };
|
|
115
264
|
if (decode_as_json !== undefined)
|
|
116
265
|
params.decode_as_json = decode_as_json;
|
|
117
|
-
return
|
|
118
|
-
});
|
|
266
|
+
return rpc('DERO.GetTransaction', params);
|
|
267
|
+
}));
|
|
119
268
|
server.registerTool('dero_get_encrypted_balance', {
|
|
120
269
|
description: 'Encrypted balance blob for an address at a topo height (DERO.GetEncryptedBalance). Not cleartext balance.',
|
|
121
270
|
inputSchema: {
|
|
122
|
-
address:
|
|
271
|
+
address: deroAddressSchema.describe('DERO address (dero1… or deto1…)'),
|
|
123
272
|
topoheight: z
|
|
124
273
|
.number()
|
|
125
274
|
.int()
|
|
126
275
|
.describe('Use -1 for latest chain tip'),
|
|
127
|
-
scid:
|
|
276
|
+
scid: hex64Schema.optional().describe('Asset SCID hex; omit for native DERO'),
|
|
128
277
|
},
|
|
129
|
-
}, async ({ address, topoheight, scid }) => {
|
|
278
|
+
}, withStructuredErrors('dero_get_encrypted_balance', async ({ address, topoheight, scid }) => {
|
|
130
279
|
const params = { address, topoheight };
|
|
131
280
|
if (scid)
|
|
132
281
|
params.scid = scid;
|
|
133
|
-
return
|
|
134
|
-
});
|
|
282
|
+
return rpc('DERO.GetEncryptedBalance', params);
|
|
283
|
+
}));
|
|
135
284
|
server.registerTool('dero_get_sc', {
|
|
136
285
|
description: 'Read smart contract code and/or variables by SCID (DERO.GetSC).',
|
|
137
286
|
inputSchema: {
|
|
138
|
-
scid:
|
|
287
|
+
scid: hex64Schema.describe('64-char hex Smart Contract ID'),
|
|
139
288
|
code: z
|
|
140
289
|
.boolean()
|
|
141
290
|
.optional()
|
|
@@ -150,7 +299,7 @@ export function createDeroMcpServer(daemonBaseUrl) {
|
|
|
150
299
|
.optional()
|
|
151
300
|
.describe('Topo height; omit or use -1 for latest'),
|
|
152
301
|
},
|
|
153
|
-
}, async ({ scid, code, variables, topoheight }) => {
|
|
302
|
+
}, withStructuredErrors('dero_get_sc', async ({ scid, code, variables, topoheight }) => {
|
|
154
303
|
const params = {
|
|
155
304
|
scid,
|
|
156
305
|
code: code ?? true,
|
|
@@ -158,8 +307,8 @@ export function createDeroMcpServer(daemonBaseUrl) {
|
|
|
158
307
|
};
|
|
159
308
|
if (topoheight !== undefined)
|
|
160
309
|
params.topoheight = topoheight;
|
|
161
|
-
return
|
|
162
|
-
});
|
|
310
|
+
return rpc('DERO.GetSC', params);
|
|
311
|
+
}));
|
|
163
312
|
server.registerTool('dero_get_gas_estimate', {
|
|
164
313
|
description: 'Estimate gas (compute + storage) for transfers, deploy, or SC call (DERO.GetGasEstimate).',
|
|
165
314
|
inputSchema: {
|
|
@@ -177,7 +326,7 @@ export function createDeroMcpServer(daemonBaseUrl) {
|
|
|
177
326
|
.optional()
|
|
178
327
|
.describe('Signer address used for estimation'),
|
|
179
328
|
},
|
|
180
|
-
}, async (args) => {
|
|
329
|
+
}, withStructuredErrors('dero_get_gas_estimate', async (args) => {
|
|
181
330
|
const params = {};
|
|
182
331
|
if (args.transfers)
|
|
183
332
|
params.transfers = args.transfers;
|
|
@@ -187,36 +336,235 @@ export function createDeroMcpServer(daemonBaseUrl) {
|
|
|
187
336
|
params.sc_rpc = args.sc_rpc;
|
|
188
337
|
if (args.signer)
|
|
189
338
|
params.signer = args.signer;
|
|
190
|
-
return
|
|
191
|
-
});
|
|
339
|
+
return rpc('DERO.GetGasEstimate', params);
|
|
340
|
+
}));
|
|
192
341
|
server.registerTool('dero_name_to_address', {
|
|
193
342
|
description: 'Resolve a DERO on-chain name to address (DERO.NameToAddress).',
|
|
194
343
|
inputSchema: {
|
|
195
|
-
name: z.string().describe('Registered name'),
|
|
344
|
+
name: z.string().min(1).describe('Registered name'),
|
|
196
345
|
topoheight: z
|
|
197
346
|
.number()
|
|
198
347
|
.int()
|
|
199
348
|
.describe('Use -1 for latest'),
|
|
200
349
|
},
|
|
201
|
-
}, async ({ name, topoheight }) =>
|
|
350
|
+
}, withStructuredErrors('dero_name_to_address', async ({ name, topoheight }) => rpc('DERO.NameToAddress', { name, topoheight })));
|
|
202
351
|
server.registerTool('dero_get_block_template', {
|
|
203
352
|
description: 'Mining: get block template for a miner address (DERO.GetBlockTemplate).',
|
|
204
353
|
inputSchema: {
|
|
205
|
-
wallet_address:
|
|
354
|
+
wallet_address: deroAddressSchema.describe('Miner payout DERO address'),
|
|
206
355
|
block: z
|
|
207
356
|
.boolean()
|
|
208
357
|
.optional()
|
|
209
358
|
.describe('Include block blob'),
|
|
210
359
|
miner: z.string().optional().describe('Optional miner id / label'),
|
|
211
360
|
},
|
|
212
|
-
}, async ({ wallet_address, block, miner }) => {
|
|
361
|
+
}, withStructuredErrors('dero_get_block_template', async ({ wallet_address, block, miner }) => {
|
|
213
362
|
const params = { wallet_address };
|
|
214
363
|
if (block !== undefined)
|
|
215
364
|
params.block = block;
|
|
216
365
|
if (miner)
|
|
217
366
|
params.miner = miner;
|
|
218
|
-
return
|
|
219
|
-
});
|
|
367
|
+
return rpc('DERO.GetBlockTemplate', params);
|
|
368
|
+
}));
|
|
369
|
+
server.registerTool('dero_docs_search', {
|
|
370
|
+
description: 'Search bundled DERO documentation (derod/tela/hologram/deropay). Ships with npm package; optional DERO_DOCS_ROOT overrides for local dev.',
|
|
371
|
+
inputSchema: {
|
|
372
|
+
query: z
|
|
373
|
+
.string()
|
|
374
|
+
.min(1)
|
|
375
|
+
.describe('Search text (e.g., "wallet rpc", "tela deployment", "deropay webhooks")'),
|
|
376
|
+
product: deroDocProductSchema
|
|
377
|
+
.optional()
|
|
378
|
+
.describe('Optional docs product filter: derod | tela | hologram | deropay'),
|
|
379
|
+
section: z
|
|
380
|
+
.string()
|
|
381
|
+
.optional()
|
|
382
|
+
.describe('Optional section slug prefix (e.g., "rpc-api", "guides", "dero-pay")'),
|
|
383
|
+
limit: z
|
|
384
|
+
.number()
|
|
385
|
+
.int()
|
|
386
|
+
.min(1)
|
|
387
|
+
.max(25)
|
|
388
|
+
.optional()
|
|
389
|
+
.describe('Max matches (default 8, max 25)'),
|
|
390
|
+
},
|
|
391
|
+
}, withStructuredErrors('dero_docs_search', async ({ query, product, section, limit }) => searchDeroDocs({ query, product, section, limit })));
|
|
392
|
+
server.registerTool('dero_docs_get_page', {
|
|
393
|
+
description: 'Get one docs page by slug (optionally scoped by product). Returns headings and normalized plain-text content.',
|
|
394
|
+
inputSchema: {
|
|
395
|
+
slug: z
|
|
396
|
+
.string()
|
|
397
|
+
.min(1)
|
|
398
|
+
.describe('Doc slug relative to pages/ (e.g., "rpc-api/daemon-rpc-api", "tutorials/first-app", "dero-pay/quick-start")'),
|
|
399
|
+
product: deroDocProductSchema
|
|
400
|
+
.optional()
|
|
401
|
+
.describe('Optional product scope to disambiguate duplicate slugs'),
|
|
402
|
+
},
|
|
403
|
+
}, withStructuredErrors('dero_docs_get_page', async ({ slug, product }) => getDeroDocPage({ slug, product })));
|
|
404
|
+
server.registerTool('dero_docs_list', {
|
|
405
|
+
description: 'List indexed docs pages across derod/tela/hologram/deropay with slugs and canonical URLs.',
|
|
406
|
+
inputSchema: {
|
|
407
|
+
product: deroDocProductSchema
|
|
408
|
+
.optional()
|
|
409
|
+
.describe('Optional docs product filter: derod | tela | hologram | deropay'),
|
|
410
|
+
limit: z
|
|
411
|
+
.number()
|
|
412
|
+
.int()
|
|
413
|
+
.min(1)
|
|
414
|
+
.max(500)
|
|
415
|
+
.optional()
|
|
416
|
+
.describe('Max pages returned (default 120, max 500)'),
|
|
417
|
+
},
|
|
418
|
+
}, withStructuredErrors('dero_docs_list', async ({ product, limit }) => {
|
|
419
|
+
const docsIndex = await listDeroDocs(product);
|
|
420
|
+
const capped = Math.max(1, Math.min(limit ?? 120, 500));
|
|
421
|
+
return {
|
|
422
|
+
...docsIndex,
|
|
423
|
+
returned: Math.min(capped, docsIndex.pages.length),
|
|
424
|
+
pages: docsIndex.pages.slice(0, capped),
|
|
425
|
+
};
|
|
426
|
+
}));
|
|
427
|
+
server.registerResource('dero_mcp_server_info', 'dero://mcp/server-info', {
|
|
428
|
+
description: 'Server metadata, tool list, resource list, and prompt names.',
|
|
429
|
+
mimeType: 'application/json',
|
|
430
|
+
}, async (uri) => ({
|
|
431
|
+
contents: [
|
|
432
|
+
{
|
|
433
|
+
uri: uri.toString(),
|
|
434
|
+
mimeType: 'application/json',
|
|
435
|
+
text: JSON.stringify({
|
|
436
|
+
name: 'dero-daemon-mcp',
|
|
437
|
+
version: '0.1.2',
|
|
438
|
+
mode: 'read-only',
|
|
439
|
+
endpoint: endpoint,
|
|
440
|
+
docs_products: DERO_DOC_PRODUCTS,
|
|
441
|
+
docs_delivery: 'bundled-index',
|
|
442
|
+
docs_dev_override_env: 'DERO_DOCS_ROOT',
|
|
443
|
+
tools: DERO_TOOL_NAMES,
|
|
444
|
+
resources: DERO_RESOURCE_URIS,
|
|
445
|
+
prompts: DERO_PROMPT_NAMES,
|
|
446
|
+
}, null, 2),
|
|
447
|
+
},
|
|
448
|
+
],
|
|
449
|
+
}));
|
|
450
|
+
server.registerResource('dero_mcp_safety_boundary', 'dero://mcp/safety-boundary', {
|
|
451
|
+
description: 'Explicit read-only safety boundaries and escalation guidance for write actions.',
|
|
452
|
+
mimeType: 'application/json',
|
|
453
|
+
}, async (uri) => ({
|
|
454
|
+
contents: [
|
|
455
|
+
{
|
|
456
|
+
uri: uri.toString(),
|
|
457
|
+
mimeType: 'application/json',
|
|
458
|
+
text: JSON.stringify({
|
|
459
|
+
read_only: true,
|
|
460
|
+
excluded_methods: [
|
|
461
|
+
'transfer',
|
|
462
|
+
'scinvoke',
|
|
463
|
+
'DERO.SendRawTransaction',
|
|
464
|
+
'DERO.SubmitBlock',
|
|
465
|
+
],
|
|
466
|
+
reasoning: 'These methods can move funds or mutate chain state.',
|
|
467
|
+
write_path: [
|
|
468
|
+
'Use wallet RPC tooling (curl/XSWD/Engram) for writes.',
|
|
469
|
+
'Use dero-mcp-server for live chain reads and analysis.',
|
|
470
|
+
],
|
|
471
|
+
}, null, 2),
|
|
472
|
+
},
|
|
473
|
+
],
|
|
474
|
+
}));
|
|
475
|
+
server.registerResource('dero_mcp_example_flows', 'dero://mcp/example-flows', {
|
|
476
|
+
description: 'Compact agent flow recipes for common DERO investigations.',
|
|
477
|
+
mimeType: 'text/markdown',
|
|
478
|
+
}, async (uri) => ({
|
|
479
|
+
contents: [
|
|
480
|
+
{
|
|
481
|
+
uri: uri.toString(),
|
|
482
|
+
mimeType: 'text/markdown',
|
|
483
|
+
text: [
|
|
484
|
+
'# DERO MCP Example Flows',
|
|
485
|
+
'',
|
|
486
|
+
'- Network health: `dero_daemon_ping` -> `dero_get_info` -> `dero_get_height`',
|
|
487
|
+
`- Inspect SC state: \`dero_get_sc\` with SCID (name registry: \`${NAME_REGISTRY_SCID}\`)`,
|
|
488
|
+
'- Trace transaction: `dero_get_transaction` with `decode_as_json: 1`',
|
|
489
|
+
'- Read-only boundary: no wallet writes or raw tx submission',
|
|
490
|
+
].join('\n'),
|
|
491
|
+
},
|
|
492
|
+
],
|
|
493
|
+
}));
|
|
494
|
+
server.registerPrompt('network_health_check', {
|
|
495
|
+
description: 'Guide the model through a DERO daemon sync and health check sequence.',
|
|
496
|
+
argsSchema: {
|
|
497
|
+
reference_topoheight: z
|
|
498
|
+
.number()
|
|
499
|
+
.int()
|
|
500
|
+
.positive()
|
|
501
|
+
.optional(),
|
|
502
|
+
},
|
|
503
|
+
}, async ({ reference_topoheight }) => ({
|
|
504
|
+
description: 'Prompt for sync health investigation.',
|
|
505
|
+
messages: [
|
|
506
|
+
{
|
|
507
|
+
role: 'user',
|
|
508
|
+
content: {
|
|
509
|
+
type: 'text',
|
|
510
|
+
text: [
|
|
511
|
+
'Check DERO daemon health using MCP tools.',
|
|
512
|
+
'1) Call dero_daemon_ping.',
|
|
513
|
+
'2) Call dero_get_info and dero_get_height.',
|
|
514
|
+
'3) Report topoheight, stableheight, version, and network.',
|
|
515
|
+
reference_topoheight
|
|
516
|
+
? `4) Compare topoheight against reference_topoheight=${reference_topoheight}.`
|
|
517
|
+
: '4) If no reference topoheight is provided, state that external comparison is still needed for final sync confidence.',
|
|
518
|
+
].join('\n'),
|
|
519
|
+
},
|
|
520
|
+
},
|
|
521
|
+
],
|
|
522
|
+
}));
|
|
523
|
+
server.registerPrompt('inspect_smart_contract', {
|
|
524
|
+
description: 'Inspect contract code/variables and explain likely state model.',
|
|
525
|
+
argsSchema: {
|
|
526
|
+
scid: hex64Schema,
|
|
527
|
+
},
|
|
528
|
+
}, async ({ scid }) => ({
|
|
529
|
+
description: 'Prompt for smart contract inspection.',
|
|
530
|
+
messages: [
|
|
531
|
+
{
|
|
532
|
+
role: 'user',
|
|
533
|
+
content: {
|
|
534
|
+
type: 'text',
|
|
535
|
+
text: [
|
|
536
|
+
`Inspect DERO smart contract ${scid}.`,
|
|
537
|
+
'1) Call dero_get_sc with variables=true and code=true.',
|
|
538
|
+
'2) Summarize key stringkeys and balances.',
|
|
539
|
+
'3) Explain likely data model and any assumptions.',
|
|
540
|
+
'4) Include topoheight context from response.',
|
|
541
|
+
].join('\n'),
|
|
542
|
+
},
|
|
543
|
+
},
|
|
544
|
+
],
|
|
545
|
+
}));
|
|
546
|
+
server.registerPrompt('trace_transaction', {
|
|
547
|
+
description: 'Trace one transaction and summarize confirmation + SC activity.',
|
|
548
|
+
argsSchema: {
|
|
549
|
+
tx_hash: hex64Schema,
|
|
550
|
+
},
|
|
551
|
+
}, async ({ tx_hash }) => ({
|
|
552
|
+
description: 'Prompt for transaction tracing.',
|
|
553
|
+
messages: [
|
|
554
|
+
{
|
|
555
|
+
role: 'user',
|
|
556
|
+
content: {
|
|
557
|
+
type: 'text',
|
|
558
|
+
text: [
|
|
559
|
+
`Trace DERO transaction ${tx_hash}.`,
|
|
560
|
+
'1) Call dero_get_transaction with txs_hashes=[tx_hash] and decode_as_json=1.',
|
|
561
|
+
'2) Summarize confirmation status, block height, transfers, and SC invokes.',
|
|
562
|
+
'3) If not confirmed, mention mempool status uncertainty and next check timing.',
|
|
563
|
+
].join('\n'),
|
|
564
|
+
},
|
|
565
|
+
},
|
|
566
|
+
],
|
|
567
|
+
}));
|
|
220
568
|
return server;
|
|
221
569
|
}
|
|
222
570
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAEvD,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACjC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;CACzC,CAAC,CAAA;AAEF,SAAS,QAAQ,CAAC,IAAa;IAC7B,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;aACtE;SACF;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,aAAqB;IACvD,MAAM,QAAQ,GAAG,eAAe,CAAC,aAAa,CAAC,CAAA;IAC/C,MAAM,GAAG,GAAG,KAAK,EAAK,MAAc,EAAE,MAAgB,EAAE,EAAE,CACxD,WAAW,CAAI,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAE1C,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAA;IAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EACT,iEAAiE;KACpE,EACD,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAS,WAAW,CAAC,CAAC,CACrD,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EAAE,8CAA8C;QAC3D,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;SAC5D;KACF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAS,WAAW,EAAE,KAAK,CAAC,CAAC,CACrE,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EACT,0FAA0F;KAC7F,EACD,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,cAAc,CAAC,CAAC,CAChD,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,gEAAgE;KAC9E,EACD,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAClD,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,yCAAyC;KACvD,EACD,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,oBAAoB,CAAC,CAAC,CACtD,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,4BAA4B,EAC5B;QACE,WAAW,EAAE,oDAAoD;KAClE,EACD,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAC3D,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EAAE,sFAAsF;QACnG,WAAW,EAAE;YACX,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,wBAAwB,CAAC;YACrC,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,WAAW,EAAE;iBACb,QAAQ,EAAE;iBACV,QAAQ,CAAC,cAAc,CAAC;SAC5B;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAClD,CAAC;QACD,MAAM,MAAM,GAA4B,EAAE,CAAA;QAC1C,IAAI,IAAI,CAAC,IAAI;YAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACtC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1D,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAA;IACrD,CAAC,CACF,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,sCAAsC,EACtC;QACE,WAAW,EAAE,uEAAuE;QACpF,WAAW,EAAE;YACX,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,WAAW,EAAE;iBACb,QAAQ,CAAC,oBAAoB,CAAC;SAClC;KACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CACvB,QAAQ,CAAC,MAAM,GAAG,CAAC,iCAAiC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CACzE,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,+BAA+B,EAC/B;QACE,WAAW,EAAE,mDAAmD;QAChE,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;SAClD;KACF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CACjB,QAAQ,CAAC,MAAM,GAAG,CAAC,2BAA2B,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAC7D,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EAAE,sDAAsD;KACpE,EACD,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAClD,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,WAAW,EACT,8GAA8G;QAChH,WAAW,EAAE;YACX,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,wCAAwC,CAAC;SACtD;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CACb,QAAQ,CACN,MAAM,GAAG,CACP,uBAAuB,EACvB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CACpD,CACF,CACJ,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,wDAAwD;QACrE,WAAW,EAAE;YACX,UAAU,EAAE,CAAC;iBACV,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CAAC,kCAAkC,CAAC;YAC/C,cAAc,EAAE,CAAC;iBACd,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,QAAQ,CAAC,gDAAgD,CAAC;SAC9D;KACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,EAAE;QACvC,MAAM,MAAM,GAA4B,EAAE,UAAU,EAAE,CAAA;QACtD,IAAI,cAAc,KAAK,SAAS;YAAE,MAAM,CAAC,cAAc,GAAG,cAAc,CAAA;QACxE,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAA;IAC3D,CAAC,CACF,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,4BAA4B,EAC5B;QACE,WAAW,EACT,2GAA2G;QAC7G,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YACrD,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,CAAC,6BAA6B,CAAC;YAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;SAC7E;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE;QACtC,MAAM,MAAM,GAA4B,EAAE,OAAO,EAAE,UAAU,EAAE,CAAA;QAC/D,IAAI,IAAI;YAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QAC5B,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC,CAAA;IAChE,CAAC,CACF,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,WAAW,EACT,iEAAiE;QACnE,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YAC1D,IAAI,EAAE,CAAC;iBACJ,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,wCAAwC,CAAC;YACrD,SAAS,EAAE,CAAC;iBACT,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,yCAAyC,CAAC;YACtD,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,QAAQ,CAAC,wCAAwC,CAAC;SACtD;KACF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE;QAC9C,MAAM,MAAM,GAA4B;YACtC,IAAI;YACJ,IAAI,EAAE,IAAI,IAAI,IAAI;YAClB,SAAS,EAAE,SAAS,IAAI,IAAI;SAC7B,CAAA;QACD,IAAI,UAAU,KAAK,SAAS;YAAE,MAAM,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5D,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;IAClD,CAAC,CACF,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,WAAW,EACT,2FAA2F;QAC7F,WAAW,EAAE;YACX,SAAS,EAAE,CAAC;iBACT,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;iBAC5B,QAAQ,EAAE;iBACV,QAAQ,CAAC,wBAAwB,CAAC;YACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YACzD,MAAM,EAAE,CAAC;iBACN,KAAK,CAAC,cAAc,CAAC;iBACrB,QAAQ,EAAE;iBACV,QAAQ,CAAC,mDAAmD,CAAC;YAChE,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,oCAAoC,CAAC;SAClD;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,MAAM,GAA4B,EAAE,CAAA;QAC1C,IAAI,IAAI,CAAC,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QACrD,IAAI,IAAI,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAA;QAChC,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC5C,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC5C,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAA;IAC3D,CAAC,CACF,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,+DAA+D;QAC5E,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC5C,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,CAAC,mBAAmB,CAAC;SACjC;KACF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAC7B,QAAQ,CAAC,MAAM,GAAG,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAClE,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,WAAW,EACT,yEAAyE;QAC3E,WAAW,EAAE;YACX,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YAChE,KAAK,EAAE,CAAC;iBACL,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,oBAAoB,CAAC;YACjC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;SACnE;KACF,EACD,KAAK,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QACzC,MAAM,MAAM,GAA4B,EAAE,cAAc,EAAE,CAAA;QAC1D,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;QAC7C,IAAI,KAAK;YAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;QAC/B,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC,CAAA;IAC7D,CAAC,CACF,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dero-mcp-server",
|
|
3
|
-
"
|
|
4
|
-
"
|
|
3
|
+
"mcpName": "io.github.DHEBP/dero-mcp-server",
|
|
4
|
+
"version": "0.1.2",
|
|
5
|
+
"description": "Model Context Protocol (MCP) server exposing DERO Stargate daemon JSON-RPC and bundled documentation to Claude and other MCP clients",
|
|
5
6
|
"type": "module",
|
|
6
7
|
"license": "MIT",
|
|
7
8
|
"engines": {
|
|
@@ -11,11 +12,23 @@
|
|
|
11
12
|
"bin": {
|
|
12
13
|
"dero-mcp-server": "./dist/index.js"
|
|
13
14
|
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist",
|
|
17
|
+
"data",
|
|
18
|
+
"README.md",
|
|
19
|
+
"LICENSE"
|
|
20
|
+
],
|
|
14
21
|
"scripts": {
|
|
15
22
|
"build": "tsc",
|
|
23
|
+
"build:docs": "npx tsx scripts/build-docs-index.ts",
|
|
16
24
|
"start": "node dist/index.js",
|
|
17
25
|
"dev": "node --import tsx src/index.ts",
|
|
18
|
-
"prepack": "npm run build"
|
|
26
|
+
"prepack": "npm run build:docs && npm run build",
|
|
27
|
+
"doctor": "./scripts/doctor.sh",
|
|
28
|
+
"smoke:mcp": "npx tsx scripts/mcp-smoke-probes.ts",
|
|
29
|
+
"smoke:docs": "npx tsx scripts/docs-smoke-probes.ts",
|
|
30
|
+
"test:flows": "npx tsx scripts/flow-test.ts",
|
|
31
|
+
"typecheck": "tsc --noEmit"
|
|
19
32
|
},
|
|
20
33
|
"dependencies": {
|
|
21
34
|
"@modelcontextprotocol/sdk": "^1.29.0",
|