@magicblock-console/mcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +294 -0
- package/dist/index.js.map +1 -0
- package/package.json +27 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
// Type-checking disabled: MCP SDK server.tool() generics combined with Zod
|
|
4
|
+
// schemas trigger TypeScript OOM (>4 GB) during inference. This is a known
|
|
5
|
+
// issue with deep generic chains in @modelcontextprotocol/sdk + zod.
|
|
6
|
+
// Runtime behavior is unaffected — Zod validates all inputs at runtime.
|
|
7
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
8
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
9
|
+
import { z } from 'zod';
|
|
10
|
+
import { createClient, MemoryStorage, VERSION } from '@magicblock-console/core';
|
|
11
|
+
// Reusable Zod schema for Solana public key validation
|
|
12
|
+
const solanaAddress = z.string().regex(/^[1-9A-HJ-NP-Za-km-z]{32,44}$/, 'Invalid Solana public key (expected base58, 32-44 characters)');
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
// JSON Serializer
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
function jsonReplacer(_key, value) {
|
|
17
|
+
if (value instanceof Date)
|
|
18
|
+
return value.toISOString();
|
|
19
|
+
if (value instanceof Uint8Array)
|
|
20
|
+
return Buffer.from(value).toString('hex');
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
function toJson(value) {
|
|
24
|
+
return JSON.stringify(value, jsonReplacer, 2);
|
|
25
|
+
}
|
|
26
|
+
function ok(data) {
|
|
27
|
+
return { content: [{ type: 'text', text: toJson(data) }] };
|
|
28
|
+
}
|
|
29
|
+
function fail(err) {
|
|
30
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
31
|
+
return {
|
|
32
|
+
content: [{ type: 'text', text: `Error: ${msg}` }],
|
|
33
|
+
isError: true,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
// ---------------------------------------------------------------------------
|
|
37
|
+
// Client Setup
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
const rawNetwork = process.env['MB_NETWORK'] ?? 'devnet';
|
|
40
|
+
if (rawNetwork !== 'devnet' && rawNetwork !== 'mainnet') {
|
|
41
|
+
console.error(`Invalid MB_NETWORK: "${rawNetwork}". Must be "devnet" or "mainnet".`);
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
const client = createClient({
|
|
45
|
+
network: rawNetwork,
|
|
46
|
+
storage: new MemoryStorage(),
|
|
47
|
+
});
|
|
48
|
+
// Keypair connection is deferred to main() to avoid race conditions
|
|
49
|
+
// ---------------------------------------------------------------------------
|
|
50
|
+
// MCP Server
|
|
51
|
+
// ---------------------------------------------------------------------------
|
|
52
|
+
const server = new McpServer({
|
|
53
|
+
name: 'magicblock-console',
|
|
54
|
+
version: VERSION,
|
|
55
|
+
});
|
|
56
|
+
// ---------------------------------------------------------------------------
|
|
57
|
+
// Project Tools
|
|
58
|
+
// ---------------------------------------------------------------------------
|
|
59
|
+
server.tool('create_project', 'Create a new MagicBlock project for managing Ephemeral Rollups', { name: z.string(), region: z.enum(['us', 'eu', 'asia']).optional() }, async ({ name, region }) => {
|
|
60
|
+
try {
|
|
61
|
+
return ok(await client.projects.create({ name, region }));
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
return fail(err);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
server.tool('list_projects', 'List all MagicBlock projects', {}, async () => {
|
|
68
|
+
try {
|
|
69
|
+
return ok(await client.projects.list());
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
return fail(err);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
server.tool('get_project', 'Get details of a specific project', { name: z.string() }, async ({ name }) => {
|
|
76
|
+
try {
|
|
77
|
+
return ok(await client.projects.get(name));
|
|
78
|
+
}
|
|
79
|
+
catch (err) {
|
|
80
|
+
return fail(err);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
server.tool('configure_project', 'Configure project features (gasless, privacy, vrf, cranks, oracle)', {
|
|
84
|
+
name: z.string(),
|
|
85
|
+
gasless: z.boolean().optional(),
|
|
86
|
+
privacy: z.boolean().optional(),
|
|
87
|
+
vrf: z.boolean().optional(),
|
|
88
|
+
cranks: z.boolean().optional(),
|
|
89
|
+
oracle: z.boolean().optional(),
|
|
90
|
+
}, async ({ name, ...features }) => {
|
|
91
|
+
try {
|
|
92
|
+
return ok(await client.projects.configure(name, { features }));
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
return fail(err);
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
server.tool('delete_project', 'Delete a project', { name: z.string() }, async ({ name }) => {
|
|
99
|
+
try {
|
|
100
|
+
await client.projects.delete(name);
|
|
101
|
+
return ok({ message: `Project "${name}" deleted.` });
|
|
102
|
+
}
|
|
103
|
+
catch (err) {
|
|
104
|
+
return fail(err);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
// ---------------------------------------------------------------------------
|
|
108
|
+
// ER Tools
|
|
109
|
+
// ---------------------------------------------------------------------------
|
|
110
|
+
server.tool('delegate_account', 'Delegate a Solana account to an Ephemeral Rollup for high-speed execution', { account: solanaAddress, project: z.string(), ownerProgram: solanaAddress.optional() }, async ({ account, project, ownerProgram }) => {
|
|
111
|
+
try {
|
|
112
|
+
return ok(await client.er.delegate({ account, project, ownerProgram }));
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
return fail(err);
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
server.tool('undelegate_account', 'Undelegate a Solana account from an Ephemeral Rollup, returning it to the base layer', { account: solanaAddress, project: z.string(), ownerProgram: solanaAddress.optional() }, async ({ account, project, ownerProgram }) => {
|
|
119
|
+
try {
|
|
120
|
+
return ok(await client.er.undelegate({ account, project, ownerProgram }));
|
|
121
|
+
}
|
|
122
|
+
catch (err) {
|
|
123
|
+
return fail(err);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
server.tool('commit_account', 'Commit the current ER state of a delegated account back to the Solana base layer', { account: solanaAddress, project: z.string() }, async ({ account, project }) => {
|
|
127
|
+
try {
|
|
128
|
+
return ok(await client.er.commit({ account, project }));
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
return fail(err);
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
server.tool('get_delegation_status', 'Check whether a Solana account is currently delegated to an Ephemeral Rollup', { account: solanaAddress }, async ({ account }) => {
|
|
135
|
+
try {
|
|
136
|
+
return ok(await client.er.status(account));
|
|
137
|
+
}
|
|
138
|
+
catch (err) {
|
|
139
|
+
return fail(err);
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
server.tool('list_delegated_accounts', 'List all accounts currently delegated to a project', { project: z.string() }, async ({ project }) => {
|
|
143
|
+
try {
|
|
144
|
+
return ok(await client.er.accounts(project));
|
|
145
|
+
}
|
|
146
|
+
catch (err) {
|
|
147
|
+
return fail(err);
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
server.tool('get_state_diff', 'Compare the base layer and Ephemeral Rollup state of a delegated account to see what changed', { account: solanaAddress }, async ({ account }) => {
|
|
151
|
+
try {
|
|
152
|
+
return ok(await client.er.diff(account));
|
|
153
|
+
}
|
|
154
|
+
catch (err) {
|
|
155
|
+
return fail(err);
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
// ---------------------------------------------------------------------------
|
|
159
|
+
// Feature Tools
|
|
160
|
+
// ---------------------------------------------------------------------------
|
|
161
|
+
server.tool('request_vrf', 'Request verifiable randomness (VRF) for a project. Returns 32 bytes of cryptographic randomness with proof.', { project: z.string() }, async ({ project }) => {
|
|
162
|
+
try {
|
|
163
|
+
return ok(await client.vrf.request({ project }));
|
|
164
|
+
}
|
|
165
|
+
catch (err) {
|
|
166
|
+
return fail(err);
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
server.tool('create_crank', 'Create a crank (automated periodic execution) for a project. Optionally specify an account for real blockchain commits.', {
|
|
170
|
+
project: z.string(),
|
|
171
|
+
intervalMs: z.number().positive(),
|
|
172
|
+
iterations: z.number().optional(),
|
|
173
|
+
account: solanaAddress.optional().describe('Account to commit (enables real blockchain operations)'),
|
|
174
|
+
}, async ({ project, intervalMs, iterations, account }) => {
|
|
175
|
+
try {
|
|
176
|
+
return ok(await client.cranks.create({ project, intervalMs, iterations, account }));
|
|
177
|
+
}
|
|
178
|
+
catch (err) {
|
|
179
|
+
return fail(err);
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
server.tool('list_cranks', 'List all cranks for a project', { project: z.string() }, async ({ project }) => {
|
|
183
|
+
try {
|
|
184
|
+
return ok(await client.cranks.list(project));
|
|
185
|
+
}
|
|
186
|
+
catch (err) {
|
|
187
|
+
return fail(err);
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
server.tool('stop_crank', 'Stop a running crank by its ID', { crankId: z.string() }, async ({ crankId }) => {
|
|
191
|
+
try {
|
|
192
|
+
return ok(await client.cranks.stop(crankId));
|
|
193
|
+
}
|
|
194
|
+
catch (err) {
|
|
195
|
+
return fail(err);
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
server.tool('get_price_feed', 'Get a real-time price feed from the Pyth Lazer oracle (SOL/USD, BTC/USD, ETH/USD, USDC/USD). Returns simulated data when no blockchain connection is available.', { project: z.string(), feed: z.string() }, async ({ project, feed }) => {
|
|
199
|
+
try {
|
|
200
|
+
return ok(await client.oracle.getPrice({ project, feed }));
|
|
201
|
+
}
|
|
202
|
+
catch (err) {
|
|
203
|
+
return fail(err);
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
server.tool('deposit_private', 'Deposit tokens into the privacy layer via TEE confidential transfers', {
|
|
207
|
+
project: z.string(),
|
|
208
|
+
token: z.string().describe('Token symbol (SOL, USDC) or mint address'),
|
|
209
|
+
amount: z.number().positive(),
|
|
210
|
+
mint: solanaAddress.optional().describe('Explicit SPL mint address'),
|
|
211
|
+
}, async ({ project, token, amount, mint }) => {
|
|
212
|
+
try {
|
|
213
|
+
return ok(await client.privacy.deposit({ project, token, amount, mint }));
|
|
214
|
+
}
|
|
215
|
+
catch (err) {
|
|
216
|
+
return fail(err);
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
server.tool('transfer_private', 'Transfer tokens confidentially via the TEE privacy layer', {
|
|
220
|
+
project: z.string(),
|
|
221
|
+
token: z.string().describe('Token symbol (SOL, USDC) or mint address'),
|
|
222
|
+
amount: z.number().positive(),
|
|
223
|
+
to: solanaAddress.describe('Recipient wallet address'),
|
|
224
|
+
mint: solanaAddress.optional().describe('Explicit SPL mint address'),
|
|
225
|
+
}, async ({ project, token, amount, to, mint }) => {
|
|
226
|
+
try {
|
|
227
|
+
return ok(await client.privacy.transfer({ project, token, amount, to, mint }));
|
|
228
|
+
}
|
|
229
|
+
catch (err) {
|
|
230
|
+
return fail(err);
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
server.tool('withdraw_private', 'Withdraw tokens from the privacy layer back to the base layer', {
|
|
234
|
+
project: z.string(),
|
|
235
|
+
token: z.string().describe('Token symbol (SOL, USDC) or mint address'),
|
|
236
|
+
amount: z.number().positive(),
|
|
237
|
+
mint: solanaAddress.optional().describe('Explicit SPL mint address'),
|
|
238
|
+
}, async ({ project, token, amount, mint }) => {
|
|
239
|
+
try {
|
|
240
|
+
return ok(await client.privacy.withdraw({ project, token, amount, mint }));
|
|
241
|
+
}
|
|
242
|
+
catch (err) {
|
|
243
|
+
return fail(err);
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
// ---------------------------------------------------------------------------
|
|
247
|
+
// Monitor Tools
|
|
248
|
+
// ---------------------------------------------------------------------------
|
|
249
|
+
server.tool('get_project_status', 'Get operational status of a project including features, delegated accounts, uptime, and transaction count', { project: z.string() }, async ({ project }) => {
|
|
250
|
+
try {
|
|
251
|
+
return ok(await client.monitor.status(project));
|
|
252
|
+
}
|
|
253
|
+
catch (err) {
|
|
254
|
+
return fail(err);
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
server.tool('get_project_costs', 'Get cost breakdown for a project (transactions, commits, sessions) over a given period', { project: z.string(), period: z.string().optional() }, async ({ project, period }) => {
|
|
258
|
+
try {
|
|
259
|
+
return ok(await client.monitor.costs(project, period));
|
|
260
|
+
}
|
|
261
|
+
catch (err) {
|
|
262
|
+
return fail(err);
|
|
263
|
+
}
|
|
264
|
+
});
|
|
265
|
+
server.tool('get_project_logs', 'Get recent log entries for a project, newest first', { project: z.string(), limit: z.number().positive().optional() }, async ({ project, limit }) => {
|
|
266
|
+
try {
|
|
267
|
+
return ok(await client.monitor.logs(project, limit));
|
|
268
|
+
}
|
|
269
|
+
catch (err) {
|
|
270
|
+
return fail(err);
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
// ---------------------------------------------------------------------------
|
|
274
|
+
// Server Startup
|
|
275
|
+
// ---------------------------------------------------------------------------
|
|
276
|
+
async function main() {
|
|
277
|
+
// Connect with keypair if available for real blockchain operations
|
|
278
|
+
const keypairPath = process.env['MB_KEYPAIR_PATH'];
|
|
279
|
+
if (keypairPath) {
|
|
280
|
+
try {
|
|
281
|
+
await client.connectWithKeypair(keypairPath);
|
|
282
|
+
}
|
|
283
|
+
catch (err) {
|
|
284
|
+
console.error(`Warning: could not load keypair from MB_KEYPAIR_PATH: ${err instanceof Error ? err.message : String(err)}. Running in simulated mode.`);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
const transport = new StdioServerTransport();
|
|
288
|
+
await server.connect(transport);
|
|
289
|
+
}
|
|
290
|
+
main().catch((err) => {
|
|
291
|
+
console.error('MCP server failed to start:', err);
|
|
292
|
+
process.exit(1);
|
|
293
|
+
});
|
|
294
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,cAAc;AACd,2EAA2E;AAC3E,2EAA2E;AAC3E,qEAAqE;AACrE,wEAAwE;AAExE,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAGhF,uDAAuD;AACvD,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CACpC,+BAA+B,EAC/B,+DAA+D,CAChE,CAAC;AAEF,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,SAAS,YAAY,CAAC,IAAY,EAAE,KAAc;IAChD,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IACtD,IAAI,KAAK,YAAY,UAAU;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,EAAE,CAAC,IAAa;IACvB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,SAAS,IAAI,CAAC,GAAY;IACxB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7D,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC;QAC3D,OAAO,EAAE,IAAa;KACvB,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC;AACzD,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;IACxD,OAAO,CAAC,KAAK,CAAC,wBAAwB,UAAU,mCAAmC,CAAC,CAAC;IACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,MAAM,GAAG,YAAY,CAAC;IAC1B,OAAO,EAAE,UAAqB;IAC9B,OAAO,EAAE,IAAI,aAAa,EAAE;CAC7B,CAAC,CAAC;AAEH,oEAAoE;AAEpE,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,gEAAgE,EAChE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,EACrE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;IACzB,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACrC,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,eAAe,EACf,8BAA8B,EAC9B,EAAE,EACF,KAAK,IAAI,EAAE;IACT,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACrC,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,aAAa,EACb,mCAAmC,EACnC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EACpB,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACjB,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACrC,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,oEAAoE,EACpE;IACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC3B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC/B,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE;IAC9B,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACrC,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,kBAAkB,EAClB,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EACpB,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,IAAI,YAAY,EAAE,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACrC,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,2EAA2E,EAC3E,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,aAAa,CAAC,QAAQ,EAAE,EAAE,EACvF,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE;IAC3C,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACrC,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,sFAAsF,EACtF,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,aAAa,CAAC,QAAQ,EAAE,EAAE,EACvF,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE;IAC3C,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACrC,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,kFAAkF,EAClF,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EAC/C,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;IAC7B,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACrC,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,8EAA8E,EAC9E,EAAE,OAAO,EAAE,aAAa,EAAE,EAC1B,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACpB,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACrC,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,yBAAyB,EACzB,oDAAoD,EACpD,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EACvB,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACpB,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACrC,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,8FAA8F,EAC9F,EAAE,OAAO,EAAE,aAAa,EAAE,EAC1B,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACpB,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACrC,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,MAAM,CAAC,IAAI,CACT,aAAa,EACb,6GAA6G,EAC7G,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EACvB,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACpB,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACrC,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,cAAc,EACd,yHAAyH,EACzH;IACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;CACrG,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IACrD,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACtF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACrC,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,aAAa,EACb,+BAA+B,EAC/B,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EACvB,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACpB,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACrC,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,gCAAgC,EAChC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EACvB,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACpB,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACrC,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,iKAAiK,EACjK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EACzC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;IAC1B,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACrC,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,sEAAsE,EACtE;IACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IACtE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;CACrE,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;IACzC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACrC,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,0DAA0D,EAC1D;IACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IACtE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,EAAE,EAAE,aAAa,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACtD,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;CACrE,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAC7C,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACrC,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,+DAA+D,EAC/D;IACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IACtE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;CACrE,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;IACzC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACrC,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,2GAA2G,EAC3G,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EACvB,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACpB,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACrC,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,wFAAwF,EACxF,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,EACtD,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;IAC5B,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACrC,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,oDAAoD,EACpD,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,EAChE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;IAC3B,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACrC,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,KAAK,UAAU,IAAI;IACjB,mEAAmE;IACnE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnD,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CACX,yDACE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,8BAA8B,CAC/B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@magicblock-console/mcp",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "MCP server for MagicBlock Ephemeral Rollups — AI agent integration via Model Context Protocol",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"files": ["dist"],
|
|
7
|
+
"type": "module",
|
|
8
|
+
"main": "./dist/index.js",
|
|
9
|
+
"bin": {
|
|
10
|
+
"magicblock-console-mcp": "./dist/index.js"
|
|
11
|
+
},
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "tsc",
|
|
14
|
+
"dev": "tsc --watch",
|
|
15
|
+
"start": "node dist/index.js",
|
|
16
|
+
"lint": "tsc --noEmit"
|
|
17
|
+
},
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@magicblock-console/core": "*",
|
|
20
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
21
|
+
"zod": "^3.23.0"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"typescript": "^5.7.0",
|
|
25
|
+
"@types/node": "^22.0.0"
|
|
26
|
+
}
|
|
27
|
+
}
|