@moonpay/cli 0.4.3 → 0.5.1

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.
@@ -1,245 +0,0 @@
1
- import { createRequire as __createRequire } from "module"; const require = __createRequire(import.meta.url);
2
- import {
3
- bitcoinBalanceRetrieve,
4
- callTool,
5
- createTool,
6
- defineToolSchema,
7
- messageSign,
8
- resolveBaseUrl,
9
- resolveSigningKey,
10
- schemas_default,
11
- transactionSign,
12
- walletCreate,
13
- walletDelete,
14
- walletImport,
15
- walletList,
16
- walletLock,
17
- walletRetrieve,
18
- walletUnlock
19
- } from "./chunk-BSUHFW7I.js";
20
- import {
21
- loadWallet
22
- } from "./chunk-AGDVU2O5.js";
23
- import "./chunk-Z33PSOPD.js";
24
- import "./chunk-EEBB5MQP.js";
25
-
26
- // src/mcp.ts
27
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
28
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
29
- import {
30
- CallToolRequestSchema,
31
- ListToolsRequestSchema
32
- } from "@modelcontextprotocol/sdk/types.js";
33
- import { zodToJsonSchema } from "zod-to-json-schema";
34
-
35
- // src/tools/x402/request/tool.ts
36
- import { Keypair, VersionedTransaction, VersionedMessage } from "@solana/web3.js";
37
- import axios from "axios";
38
- import { wrapAxiosWithPayment } from "@x402/axios";
39
- import { x402Client } from "@x402/core/client";
40
- import { ExactSvmScheme } from "@x402/svm";
41
-
42
- // src/tools/x402/request/schema.ts
43
- import { z } from "zod";
44
- var x402RequestSchema = defineToolSchema({
45
- name: "x402_request",
46
- description: "Make an HTTP request to an x402-protected endpoint. Automatically handles payment when a 402 Payment Required response is received, signing the payment transaction with the local wallet.",
47
- input: z.object({
48
- method: z.enum(["GET", "POST", "PUT", "PATCH", "DELETE"]).describe("HTTP method"),
49
- url: z.string().url().describe(
50
- "Full URL of the x402-protected endpoint (e.g., 'https://agents.moonpay.com/api/x402/tools/market_digest_retrieve')"
51
- ),
52
- body: z.record(z.any()).nullable().describe("Request body (for POST, PUT, PATCH)"),
53
- params: z.record(z.any()).nullable().describe("Query parameters"),
54
- wallet: z.string().describe("Wallet name or address to pay with")
55
- }),
56
- output: z.object({
57
- status: z.number().describe("HTTP status code"),
58
- data: z.any().describe("Response data"),
59
- headers: z.record(z.string()).describe("Response headers")
60
- })
61
- });
62
-
63
- // src/tools/x402/request/tool.ts
64
- var SOLANA_NETWORK = "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp";
65
- function createLocalX402Client(walletAddress, secretKey) {
66
- const keypair = Keypair.fromSecretKey(secretKey);
67
- const signer = {
68
- address: walletAddress,
69
- signTransactions: async (transactions) => {
70
- return transactions.map((transaction) => {
71
- const messageBytes = new Uint8Array(transaction.messageBytes);
72
- const message = VersionedMessage.deserialize(messageBytes);
73
- const numSigs = Object.keys(transaction.signatures).length;
74
- const tx = new VersionedTransaction(
75
- message,
76
- new Array(numSigs).fill(new Uint8Array(64))
77
- );
78
- tx.sign([keypair]);
79
- const signerIndex = message.staticAccountKeys.findIndex(
80
- (key) => key.toBase58() === walletAddress
81
- );
82
- if (signerIndex === -1) {
83
- throw new Error(
84
- `Wallet ${walletAddress} is not a signer for this transaction`
85
- );
86
- }
87
- return {
88
- [walletAddress]: tx.signatures[signerIndex]
89
- };
90
- });
91
- }
92
- };
93
- const client = new x402Client();
94
- const svmScheme = new ExactSvmScheme(signer);
95
- client.register(SOLANA_NETWORK, svmScheme);
96
- client.registerV1("solana", svmScheme);
97
- return wrapAxiosWithPayment(axios.create(), client);
98
- }
99
- var x402Request = createTool(
100
- x402RequestSchema,
101
- async ({ method, url, body, params, wallet: walletNameOrAddress }) => {
102
- const walletMetadata = loadWallet(walletNameOrAddress);
103
- const { privateKey, address } = resolveSigningKey(walletMetadata, "solana");
104
- const client = createLocalX402Client(address, privateKey);
105
- let response;
106
- switch (method) {
107
- case "GET":
108
- response = await client.get(url, { params });
109
- break;
110
- case "POST":
111
- response = await client.post(url, body || {}, { params });
112
- break;
113
- case "PUT":
114
- response = await client.put(url, body || {}, { params });
115
- break;
116
- case "PATCH":
117
- response = await client.patch(url, body || {}, { params });
118
- break;
119
- case "DELETE":
120
- response = await client.delete(url, { params });
121
- break;
122
- default:
123
- throw new Error(`Unsupported HTTP method: ${method}`);
124
- }
125
- return {
126
- status: response.status,
127
- data: response.data,
128
- headers: response.headers
129
- };
130
- }
131
- );
132
-
133
- // src/mcp.ts
134
- var LOCAL_TOOLS = [
135
- walletCreate,
136
- walletImport,
137
- walletList,
138
- walletRetrieve,
139
- walletDelete,
140
- walletLock,
141
- walletUnlock,
142
- transactionSign,
143
- messageSign,
144
- bitcoinBalanceRetrieve,
145
- x402Request
146
- ];
147
- var localToolMap = new Map(LOCAL_TOOLS.map((t) => [t.schema.name, t]));
148
- function resolveRemoteSchema(schema) {
149
- const input = schema.inputSchema;
150
- if (input.$ref && input.definitions) {
151
- const defName = input.$ref.replace("#/definitions/", "");
152
- return input.definitions[defName] ?? input;
153
- }
154
- return input;
155
- }
156
- async function startMcpServer() {
157
- const server = new Server(
158
- { name: "moonpay", version: "1.0.0" },
159
- { capabilities: { tools: { listChanged: true } } }
160
- );
161
- const toolDefs = LOCAL_TOOLS.map((tool) => ({
162
- name: tool.schema.name,
163
- description: tool.schema.description,
164
- inputSchema: zodToJsonSchema(tool.schema.input)
165
- }));
166
- const remotePropsMap = /* @__PURE__ */ new Map();
167
- for (const schema of schemas_default) {
168
- if (localToolMap.has(schema.name)) continue;
169
- const resolved = resolveRemoteSchema(schema);
170
- remotePropsMap.set(
171
- schema.name,
172
- resolved.properties ?? {}
173
- );
174
- toolDefs.push({
175
- name: schema.name,
176
- description: schema.description,
177
- inputSchema: {
178
- type: "object",
179
- properties: resolved.properties ?? {},
180
- ...resolved.required ? { required: resolved.required } : {},
181
- ...resolved.additionalProperties !== void 0 ? { additionalProperties: resolved.additionalProperties } : {}
182
- }
183
- });
184
- }
185
- const toolDefMap = new Map(toolDefs.map((t) => [t.name, t]));
186
- server.setRequestHandler(ListToolsRequestSchema, async () => ({
187
- tools: toolDefs.map((t) => ({
188
- name: t.name,
189
- description: t.description,
190
- inputSchema: t.inputSchema
191
- }))
192
- }));
193
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
194
- const { name, arguments: params = {} } = request.params;
195
- if (!toolDefMap.has(name)) {
196
- return {
197
- content: [{ type: "text", text: `Unknown tool: ${name}` }],
198
- isError: true
199
- };
200
- }
201
- const localTool = localToolMap.get(name);
202
- if (localTool) {
203
- const shape = localTool.schema.input.shape ?? {};
204
- for (const [key, field] of Object.entries(shape)) {
205
- if (params[key] === void 0 && field._def.typeName === "ZodNullable") {
206
- params[key] = null;
207
- }
208
- }
209
- const result2 = await localTool.handler(params);
210
- return {
211
- content: [
212
- { type: "text", text: JSON.stringify(result2, null, 2) }
213
- ]
214
- };
215
- }
216
- const props = remotePropsMap.get(name) ?? {};
217
- for (const [key, prop] of Object.entries(props)) {
218
- if (params[key] === void 0) {
219
- const nullable = Array.isArray(prop.type) ? prop.type.includes("null") : prop.anyOf?.some((t) => t.type === "null");
220
- if (nullable) params[key] = null;
221
- }
222
- const isNum = prop.type === "number" || prop.type === "integer" || Array.isArray(prop.type) && prop.type.some(
223
- (t) => t === "number" || t === "integer"
224
- ) || prop.anyOf?.some(
225
- (t) => t.type === "number" || t.type === "integer"
226
- );
227
- if (isNum && typeof params[key] === "string") {
228
- params[key] = Number(params[key]);
229
- }
230
- }
231
- const baseUrl = resolveBaseUrl();
232
- const result = await callTool(baseUrl, name, params);
233
- return {
234
- content: [
235
- { type: "text", text: JSON.stringify(result, null, 2) }
236
- ]
237
- };
238
- });
239
- const transport = new StdioServerTransport();
240
- await server.connect(transport);
241
- }
242
- export {
243
- startMcpServer
244
- };
245
- //# sourceMappingURL=mcp-7A6UP5CV.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/mcp.ts","../src/tools/x402/request/tool.ts","../src/tools/x402/request/schema.ts"],"sourcesContent":["import { Server } from \"@modelcontextprotocol/sdk/server/index.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport {\n CallToolRequestSchema,\n ListToolsRequestSchema,\n} from \"@modelcontextprotocol/sdk/types.js\";\nimport { z } from \"zod\";\nimport { zodToJsonSchema } from \"zod-to-json-schema\";\nimport { callTool } from \"./client\";\nimport { resolveBaseUrl } from \"./auth\";\nimport type { Tool } from \"./tools/shared\";\nimport { walletCreate } from \"./tools/wallet/create/tool\";\nimport { walletImport } from \"./tools/wallet/import/tool\";\nimport { walletList } from \"./tools/wallet/list/tool\";\nimport { walletRetrieve } from \"./tools/wallet/retrieve/tool\";\nimport { walletDelete } from \"./tools/wallet/delete/tool\";\nimport { transactionSign } from \"./tools/transaction/sign/tool\";\nimport { messageSign } from \"./tools/message/sign/tool\";\nimport { walletLock } from \"./tools/wallet/lock/tool\";\nimport { walletUnlock } from \"./tools/wallet/unlock/tool\";\nimport { bitcoinBalanceRetrieve } from \"./tools/bitcoin/balance/tool\";\nimport { x402Request } from \"./tools/x402/request/tool\";\nimport schemas from \"./generated/schemas.json\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst LOCAL_TOOLS: Tool<any>[] = [\n walletCreate,\n walletImport,\n walletList,\n walletRetrieve,\n walletDelete,\n walletLock,\n walletUnlock,\n transactionSign,\n messageSign,\n bitcoinBalanceRetrieve,\n x402Request,\n];\n\nconst localToolMap = new Map(LOCAL_TOOLS.map((t) => [t.schema.name, t]));\n\n/**\n * Resolve a remote schema's $ref to the actual properties object.\n */\nfunction resolveRemoteSchema(schema: (typeof schemas)[number]) {\n const input = schema.inputSchema as any;\n if (input.$ref && input.definitions) {\n const defName = input.$ref.replace(\"#/definitions/\", \"\");\n return input.definitions[defName] ?? input;\n }\n return input;\n}\n\nexport async function startMcpServer() {\n const server = new Server(\n { name: \"moonpay\", version: \"1.0.0\" },\n { capabilities: { tools: { listChanged: true } } },\n );\n\n // Build tool definitions — local tools use Zod→JSON, remote use JSON directly\n const toolDefs: Array<{\n name: string;\n description: string;\n inputSchema: Record<string, unknown>;\n }> = LOCAL_TOOLS.map((tool) => ({\n name: tool.schema.name,\n description: tool.schema.description,\n inputSchema: zodToJsonSchema(tool.schema.input) as Record<string, unknown>,\n }));\n\n const remotePropsMap = new Map<string, Record<string, any>>();\n for (const schema of schemas) {\n if (localToolMap.has(schema.name)) continue;\n const resolved = resolveRemoteSchema(schema);\n remotePropsMap.set(\n schema.name,\n (resolved.properties ?? {}) as Record<string, any>,\n );\n toolDefs.push({\n name: schema.name,\n description: schema.description,\n inputSchema: {\n type: \"object\",\n properties: resolved.properties ?? {},\n ...(resolved.required ? { required: resolved.required } : {}),\n ...(resolved.additionalProperties !== undefined\n ? { additionalProperties: resolved.additionalProperties }\n : {}),\n },\n });\n }\n\n const toolDefMap = new Map(toolDefs.map((t) => [t.name, t]));\n\n // tools/list — return raw JSON schemas directly\n server.setRequestHandler(ListToolsRequestSchema, async () => ({\n tools: toolDefs.map((t) => ({\n name: t.name,\n description: t.description,\n inputSchema: t.inputSchema,\n })),\n }));\n\n // tools/call\n server.setRequestHandler(CallToolRequestSchema, async (request) => {\n const { name, arguments: params = {} } = request.params;\n\n if (!toolDefMap.has(name)) {\n return {\n content: [{ type: \"text\" as const, text: `Unknown tool: ${name}` }],\n isError: true,\n };\n }\n\n // Local tool — coerce nullable fields then run handler\n const localTool = localToolMap.get(name);\n if (localTool) {\n // Fill missing nullable fields with null (MCP clients may omit them)\n const shape = (localTool.schema.input as z.ZodObject<z.ZodRawShape>).shape ?? {};\n for (const [key, field] of Object.entries(shape)) {\n if (\n params[key] === undefined &&\n (field as z.ZodTypeAny)._def.typeName === \"ZodNullable\"\n ) {\n params[key] = null;\n }\n }\n\n const result = await localTool.handler(params);\n return {\n content: [\n { type: \"text\" as const, text: JSON.stringify(result, null, 2) },\n ],\n };\n }\n\n // Remote tool — coerce types then call API\n const props = remotePropsMap.get(name) ?? {};\n for (const [key, prop] of Object.entries(props)) {\n if (params[key] === undefined) {\n const nullable = Array.isArray(prop.type)\n ? prop.type.includes(\"null\")\n : prop.anyOf?.some((t: any) => t.type === \"null\");\n if (nullable) params[key] = null;\n }\n const isNum =\n prop.type === \"number\" ||\n prop.type === \"integer\" ||\n (Array.isArray(prop.type) &&\n prop.type.some(\n (t: string) => t === \"number\" || t === \"integer\",\n )) ||\n prop.anyOf?.some(\n (t: any) => t.type === \"number\" || t.type === \"integer\",\n );\n if (isNum && typeof params[key] === \"string\") {\n params[key] = Number(params[key]);\n }\n }\n\n const baseUrl = resolveBaseUrl();\n const result = await callTool(baseUrl, name, params);\n return {\n content: [\n { type: \"text\" as const, text: JSON.stringify(result, null, 2) },\n ],\n };\n });\n\n const transport = new StdioServerTransport();\n await server.connect(transport);\n}\n","import { Keypair, VersionedTransaction, VersionedMessage } from \"@solana/web3.js\";\nimport axios from \"axios\";\nimport { wrapAxiosWithPayment } from \"@x402/axios\";\nimport { x402Client } from \"@x402/core/client\";\nimport { ExactSvmScheme } from \"@x402/svm\";\nimport type { Address } from \"@solana/addresses\";\nimport type { SignatureDictionary } from \"@solana/signers\";\nimport type { Transaction } from \"@solana/transactions\";\nimport { createTool } from \"../../shared\";\nimport { loadWallet } from \"../../wallet/server\";\nimport { resolveSigningKey } from \"../../wallet/vault\";\nimport { x402RequestSchema } from \"./schema\";\n\nconst SOLANA_NETWORK = \"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp\" as const;\n\nfunction createLocalX402Client(walletAddress: string, secretKey: Uint8Array) {\n const keypair = Keypair.fromSecretKey(secretKey);\n\n const signer = {\n address: walletAddress as Address,\n signTransactions: async (\n transactions: readonly Transaction[],\n ): Promise<readonly SignatureDictionary[]> => {\n return transactions.map((transaction) => {\n const messageBytes = new Uint8Array(transaction.messageBytes);\n const message = VersionedMessage.deserialize(messageBytes);\n const numSigs = Object.keys(transaction.signatures).length;\n const tx = new VersionedTransaction(\n message,\n new Array(numSigs).fill(new Uint8Array(64)),\n );\n\n tx.sign([keypair]);\n\n const signerIndex = message.staticAccountKeys.findIndex(\n (key) => key.toBase58() === walletAddress,\n );\n if (signerIndex === -1) {\n throw new Error(\n `Wallet ${walletAddress} is not a signer for this transaction`,\n );\n }\n\n return {\n [walletAddress]: tx.signatures[signerIndex],\n } as SignatureDictionary;\n });\n },\n };\n\n const client = new x402Client();\n const svmScheme = new ExactSvmScheme(signer);\n client.register(SOLANA_NETWORK, svmScheme);\n client.registerV1(\"solana\", svmScheme);\n\n return wrapAxiosWithPayment(axios.create(), client);\n}\n\nexport const x402Request = createTool(\n x402RequestSchema,\n async ({ method, url, body, params, wallet: walletNameOrAddress }) => {\n const walletMetadata = loadWallet(walletNameOrAddress);\n const { privateKey, address } = resolveSigningKey(walletMetadata, \"solana\");\n const client = createLocalX402Client(address, privateKey);\n\n let response;\n switch (method) {\n case \"GET\":\n response = await client.get(url, { params });\n break;\n case \"POST\":\n response = await client.post(url, body || {}, { params });\n break;\n case \"PUT\":\n response = await client.put(url, body || {}, { params });\n break;\n case \"PATCH\":\n response = await client.patch(url, body || {}, { params });\n break;\n case \"DELETE\":\n response = await client.delete(url, { params });\n break;\n default:\n throw new Error(`Unsupported HTTP method: ${method}`);\n }\n\n return {\n status: response.status,\n data: response.data,\n headers: response.headers as Record<string, string>,\n };\n },\n);\n","import { z } from \"zod\";\nimport { defineToolSchema } from \"../../shared\";\n\nexport const x402RequestSchema = defineToolSchema({\n name: \"x402_request\",\n description:\n \"Make an HTTP request to an x402-protected endpoint. Automatically handles payment when a 402 Payment Required response is received, signing the payment transaction with the local wallet.\",\n input: z.object({\n method: z\n .enum([\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\"])\n .describe(\"HTTP method\"),\n url: z\n .string()\n .url()\n .describe(\n \"Full URL of the x402-protected endpoint (e.g., 'https://agents.moonpay.com/api/x402/tools/market_digest_retrieve')\",\n ),\n body: z\n .record(z.any())\n .nullable()\n .describe(\"Request body (for POST, PUT, PATCH)\"),\n params: z.record(z.any()).nullable().describe(\"Query parameters\"),\n wallet: z.string().describe(\"Wallet name or address to pay with\"),\n }),\n output: z.object({\n status: z.number().describe(\"HTTP status code\"),\n data: z.any().describe(\"Response data\"),\n headers: z.record(z.string()).describe(\"Response headers\"),\n }),\n});\n"],"mappings":"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","names":["result"]}
@@ -1,21 +0,0 @@
1
- import { createRequire as __createRequire } from "module"; const require = __createRequire(import.meta.url);
2
- import {
3
- deleteWalletFile,
4
- ensureWalletsDir,
5
- getWalletPath,
6
- getWalletsDir,
7
- loadAllWallets,
8
- loadWallet,
9
- saveWalletMetadata
10
- } from "./chunk-AGDVU2O5.js";
11
- import "./chunk-EEBB5MQP.js";
12
- export {
13
- deleteWalletFile,
14
- ensureWalletsDir,
15
- getWalletPath,
16
- getWalletsDir,
17
- loadAllWallets,
18
- loadWallet,
19
- saveWalletMetadata
20
- };
21
- //# sourceMappingURL=server-IUOCZFT7.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}