@mcp-dockmaster/mcp-cryptowallet-evm 1.0.4 → 1.0.6

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/build/tools.js CHANGED
@@ -1,5 +1,16 @@
1
- import { createWalletHandler, fromPrivateKeyHandler, fromMnemonicHandler, fromEncryptedJsonHandler, encryptWalletHandler, getAddressHandler, getPublicKeyHandler, getPrivateKeyHandler, getBalanceHandler, getChainIdHandler, getGasPriceHandler, getTransactionCountHandler, callHandler, sendTransactionHandler, signTransactionHandler, populateTransactionHandler, signMessageHandler, signTypedDataHandler, verifyMessageHandler, verifyTypedDataHandler, getBlockHandler, getTransactionHandler, getTransactionReceiptHandler, getCodeHandler, getStorageAtHandler, estimateGasHandler, getLogsHandler, getEnsResolverHandler, lookupAddressHandler, resolveNameHandler, getNetworkHandler, getBlockNumberHandler, getFeeDataHandler, createMnemonicPhraseHandler } from "./handlers/wallet.js";
1
+ import { createWalletHandler, fromPrivateKeyHandler, fromMnemonicHandler, fromEncryptedJsonHandler, encryptWalletHandler, getAddressHandler, getPublicKeyHandler, getPrivateKeyHandler, getBalanceHandler, getChainIdHandler, getGasPriceHandler, getTransactionCountHandler, callHandler, sendTransactionHandler, signTransactionHandler, populateTransactionHandler, signMessageHandler, signTypedDataHandler, verifyMessageHandler, verifyTypedDataHandler, getBlockHandler, getTransactionHandler, getTransactionReceiptHandler, getCodeHandler, getStorageAtHandler, estimateGasHandler, getLogsHandler, getEnsResolverHandler, lookupAddressHandler, resolveNameHandler, getNetworkHandler, getBlockNumberHandler, getFeeDataHandler, createMnemonicPhraseHandler, setProviderHandler } from "./handlers/wallet.js";
2
2
  export const tools = [
3
+ {
4
+ name: "wallet_provider_set",
5
+ description: "Set the provider URL. By default, the provider URL is set to the ETH mainnet or the URL set in the PROVIDER_URL environment variable.",
6
+ inputSchema: {
7
+ type: "object",
8
+ properties: {
9
+ providerURL: { type: "string", description: "The provider RPC URL" }
10
+ },
11
+ required: ["providerURL"]
12
+ }
13
+ },
3
14
  // Wallet Creation and Management
4
15
  {
5
16
  name: "wallet_create_random",
@@ -20,8 +31,7 @@ export const tools = [
20
31
  inputSchema: {
21
32
  type: "object",
22
33
  properties: {
23
- privateKey: { type: "string", description: "The private key" },
24
- provider: { type: "string", description: "Optional JSON RPC provider URL" }
34
+ privateKey: { type: "string", description: "The private key" }
25
35
  },
26
36
  required: ["privateKey"]
27
37
  }
@@ -46,8 +56,7 @@ export const tools = [
46
56
  properties: {
47
57
  mnemonic: { type: "string", description: "The mnemonic phrase" },
48
58
  path: { type: "string", description: "Optional HD path" },
49
- locale: { type: "string", description: "Optional locale for the wordlist" },
50
- provider: { type: "string", description: "Optional JSON RPC provider URL" }
59
+ locale: { type: "string", description: "Optional locale for the wordlist" }
51
60
  },
52
61
  required: ["mnemonic"]
53
62
  }
@@ -59,8 +68,7 @@ export const tools = [
59
68
  type: "object",
60
69
  properties: {
61
70
  json: { type: "string", description: "The encrypted JSON wallet" },
62
- password: { type: "string", description: "The password to decrypt the wallet" },
63
- provider: { type: "string", description: "Optional JSON RPC provider URL" }
71
+ password: { type: "string", description: "The password to decrypt the wallet" }
64
72
  },
65
73
  required: ["json", "password"]
66
74
  }
@@ -134,10 +142,9 @@ export const tools = [
134
142
  type: "object",
135
143
  properties: {
136
144
  wallet: { type: "string", description: "The wallet (private key, mnemonic, or JSON). If not provided, uses PRIVATE_KEY environment variable if set." },
137
- provider: { type: "string", description: "Optional JSON RPC provider URL" },
138
145
  blockTag: { type: "string", description: "Optional block tag (latest, pending, etc.)" }
139
146
  },
140
- required: ["provider"]
147
+ required: []
141
148
  }
142
149
  },
143
150
  {
@@ -146,8 +153,7 @@ export const tools = [
146
153
  inputSchema: {
147
154
  type: "object",
148
155
  properties: {
149
- wallet: { type: "string", description: "The wallet (private key, mnemonic, or JSON). If not provided, uses PRIVATE_KEY environment variable if set." },
150
- provider: { type: "string", description: "Optional JSON RPC provider URL" }
156
+ wallet: { type: "string", description: "The wallet (private key, mnemonic, or JSON). If not provided, uses PRIVATE_KEY environment variable if set." }
151
157
  },
152
158
  required: []
153
159
  }
@@ -158,8 +164,7 @@ export const tools = [
158
164
  inputSchema: {
159
165
  type: "object",
160
166
  properties: {
161
- wallet: { type: "string", description: "The wallet (private key, mnemonic, or JSON). If not provided, uses PRIVATE_KEY environment variable if set." },
162
- provider: { type: "string", description: "Optional JSON RPC provider URL" }
167
+ wallet: { type: "string", description: "The wallet (private key, mnemonic, or JSON). If not provided, uses PRIVATE_KEY environment variable if set." }
163
168
  },
164
169
  required: []
165
170
  }
@@ -171,7 +176,6 @@ export const tools = [
171
176
  type: "object",
172
177
  properties: {
173
178
  wallet: { type: "string", description: "The wallet (private key, mnemonic, or JSON). If not provided, uses PRIVATE_KEY environment variable if set." },
174
- provider: { type: "string", description: "Optional JSON RPC provider URL" },
175
179
  blockTag: { type: "string", description: "Optional block tag (latest, pending, etc.)" }
176
180
  },
177
181
  required: []
@@ -184,7 +188,6 @@ export const tools = [
184
188
  type: "object",
185
189
  properties: {
186
190
  wallet: { type: "string", description: "The wallet (private key, mnemonic, or JSON). If not provided, uses PRIVATE_KEY environment variable if set." },
187
- provider: { type: "string", description: "Optional JSON RPC provider URL" },
188
191
  transaction: {
189
192
  type: "object",
190
193
  description: "The transaction to call",
@@ -211,7 +214,6 @@ export const tools = [
211
214
  type: "object",
212
215
  properties: {
213
216
  wallet: { type: "string", description: "The wallet (private key, mnemonic, or JSON). If not provided, uses PRIVATE_KEY environment variable if set." },
214
- provider: { type: "string", description: "Optional JSON RPC provider URL" },
215
217
  transaction: {
216
218
  type: "object",
217
219
  description: "The transaction to send",
@@ -240,7 +242,6 @@ export const tools = [
240
242
  type: "object",
241
243
  properties: {
242
244
  wallet: { type: "string", description: "The wallet (private key, mnemonic, or JSON). If not provided, uses PRIVATE_KEY environment variable if set." },
243
- provider: { type: "string", description: "Optional JSON RPC provider URL" },
244
245
  transaction: {
245
246
  type: "object",
246
247
  description: "The transaction to sign",
@@ -269,7 +270,6 @@ export const tools = [
269
270
  type: "object",
270
271
  properties: {
271
272
  wallet: { type: "string", description: "The wallet (private key, mnemonic, or JSON). If not provided, uses PRIVATE_KEY environment variable if set." },
272
- provider: { type: "string", description: "Optional JSON RPC provider URL" },
273
273
  transaction: {
274
274
  type: "object",
275
275
  description: "The transaction to populate",
@@ -353,11 +353,10 @@ export const tools = [
353
353
  inputSchema: {
354
354
  type: "object",
355
355
  properties: {
356
- provider: { type: "string", description: "JSON RPC provider URL" },
357
356
  blockHashOrBlockTag: { type: "string", description: "Block hash or block tag (latest, pending, etc.)" },
358
357
  includeTransactions: { type: "boolean", description: "Whether to include full transactions or just hashes" }
359
358
  },
360
- required: ["provider", "blockHashOrBlockTag"]
359
+ required: ["blockHashOrBlockTag"]
361
360
  }
362
361
  },
363
362
  {
@@ -366,10 +365,9 @@ export const tools = [
366
365
  inputSchema: {
367
366
  type: "object",
368
367
  properties: {
369
- provider: { type: "string", description: "JSON RPC provider URL" },
370
368
  transactionHash: { type: "string", description: "The transaction hash" }
371
369
  },
372
- required: ["provider", "transactionHash"]
370
+ required: ["transactionHash"]
373
371
  }
374
372
  },
375
373
  {
@@ -378,10 +376,9 @@ export const tools = [
378
376
  inputSchema: {
379
377
  type: "object",
380
378
  properties: {
381
- provider: { type: "string", description: "JSON RPC provider URL" },
382
379
  transactionHash: { type: "string", description: "The transaction hash" }
383
380
  },
384
- required: ["provider", "transactionHash"]
381
+ required: ["transactionHash"]
385
382
  }
386
383
  },
387
384
  {
@@ -390,11 +387,10 @@ export const tools = [
390
387
  inputSchema: {
391
388
  type: "object",
392
389
  properties: {
393
- provider: { type: "string", description: "JSON RPC provider URL" },
394
390
  address: { type: "string", description: "The address to get code from" },
395
391
  blockTag: { type: "string", description: "Optional block tag (latest, pending, etc.)" }
396
392
  },
397
- required: ["provider", "address"]
393
+ required: ["address"]
398
394
  }
399
395
  },
400
396
  {
@@ -403,12 +399,11 @@ export const tools = [
403
399
  inputSchema: {
404
400
  type: "object",
405
401
  properties: {
406
- provider: { type: "string", description: "JSON RPC provider URL" },
407
402
  address: { type: "string", description: "The address to get storage from" },
408
403
  position: { type: "string", description: "The storage position" },
409
404
  blockTag: { type: "string", description: "Optional block tag (latest, pending, etc.)" }
410
405
  },
411
- required: ["provider", "address", "position"]
406
+ required: ["address", "position"]
412
407
  }
413
408
  },
414
409
  {
@@ -417,7 +412,6 @@ export const tools = [
417
412
  inputSchema: {
418
413
  type: "object",
419
414
  properties: {
420
- provider: { type: "string", description: "JSON RPC provider URL" },
421
415
  transaction: {
422
416
  type: "object",
423
417
  description: "The transaction to estimate gas for",
@@ -429,7 +423,7 @@ export const tools = [
429
423
  }
430
424
  }
431
425
  },
432
- required: ["provider", "transaction"]
426
+ required: ["transaction"]
433
427
  }
434
428
  },
435
429
  {
@@ -438,7 +432,6 @@ export const tools = [
438
432
  inputSchema: {
439
433
  type: "object",
440
434
  properties: {
441
- provider: { type: "string", description: "JSON RPC provider URL" },
442
435
  filter: {
443
436
  type: "object",
444
437
  description: "The filter to apply",
@@ -450,7 +443,7 @@ export const tools = [
450
443
  }
451
444
  }
452
445
  },
453
- required: ["provider", "filter"]
446
+ required: ["filter"]
454
447
  }
455
448
  },
456
449
  {
@@ -459,10 +452,9 @@ export const tools = [
459
452
  inputSchema: {
460
453
  type: "object",
461
454
  properties: {
462
- provider: { type: "string", description: "JSON RPC provider URL" },
463
455
  name: { type: "string", description: "The ENS name" }
464
456
  },
465
- required: ["provider", "name"]
457
+ required: ["name"]
466
458
  }
467
459
  },
468
460
  {
@@ -471,10 +463,9 @@ export const tools = [
471
463
  inputSchema: {
472
464
  type: "object",
473
465
  properties: {
474
- provider: { type: "string", description: "JSON RPC provider URL" },
475
466
  address: { type: "string", description: "The address to lookup" }
476
467
  },
477
- required: ["provider", "address"]
468
+ required: ["address"]
478
469
  }
479
470
  },
480
471
  {
@@ -483,10 +474,9 @@ export const tools = [
483
474
  inputSchema: {
484
475
  type: "object",
485
476
  properties: {
486
- provider: { type: "string", description: "JSON RPC provider URL" },
487
477
  name: { type: "string", description: "The ENS name to resolve" }
488
478
  },
489
- required: ["provider", "name"]
479
+ required: ["name"]
490
480
  }
491
481
  },
492
482
  // Network Methods
@@ -495,10 +485,8 @@ export const tools = [
495
485
  description: "Get the current network information",
496
486
  inputSchema: {
497
487
  type: "object",
498
- properties: {
499
- provider: { type: "string", description: "JSON RPC provider URL" }
500
- },
501
- required: ["provider"]
488
+ properties: {},
489
+ required: []
502
490
  }
503
491
  },
504
492
  {
@@ -506,10 +494,8 @@ export const tools = [
506
494
  description: "Get the current block number",
507
495
  inputSchema: {
508
496
  type: "object",
509
- properties: {
510
- provider: { type: "string", description: "JSON RPC provider URL" }
511
- },
512
- required: ["provider"]
497
+ properties: {},
498
+ required: []
513
499
  }
514
500
  },
515
501
  {
@@ -517,14 +503,14 @@ export const tools = [
517
503
  description: "Get the current fee data (base fee, max priority fee, etc.)",
518
504
  inputSchema: {
519
505
  type: "object",
520
- properties: {
521
- provider: { type: "string", description: "JSON RPC provider URL" }
522
- },
523
- required: ["provider"]
506
+ properties: {},
507
+ required: []
524
508
  }
525
509
  }
526
510
  ];
527
511
  export const handlers = {
512
+ // Provider Methods
513
+ "wallet_provider_set": setProviderHandler,
528
514
  // Wallet Creation and Management
529
515
  "wallet_create_random": createWalletHandler,
530
516
  "wallet_from_private_key": fromPrivateKeyHandler,
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-dockmaster/mcp-cryptowallet-evm",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "MCP server for EVM crypto wallet operations using ethers.js v5",
5
5
  "main": "build/index.js",
6
6
  "type": "module",
@@ -10,7 +10,7 @@
10
10
  "scripts": {
11
11
  "build": "tsc",
12
12
  "start": "node build/index.js",
13
- "test": "jest",
13
+ "test": "node --test ./tests/**/*.test.ts",
14
14
  "lint": "eslint src/**/*.ts"
15
15
  },
16
16
  "repository": {
@@ -0,0 +1,53 @@
1
+ # Required Methods for EVM Crypto Wallet MCP Server
2
+
3
+ Based on the ethers.js v5 documentation and the example MCP servers, the following methods should be implemented for our crypto wallet MCP server:
4
+
5
+ ## Wallet Creation and Management
6
+ - `wallet_create_random` - Create a new wallet with a random private key
7
+ - `wallet_from_private_key` - Create a wallet from a private key
8
+ - `wallet_from_mnemonic` - Create a wallet from a mnemonic phrase
9
+ - `wallet_from_encrypted_json` - Create a wallet by decrypting an encrypted JSON wallet
10
+ - `wallet_encrypt` - Encrypt a wallet with a password
11
+
12
+ ## Wallet Properties
13
+ - `wallet_get_address` - Get the wallet address
14
+ - `wallet_get_public_key` - Get the wallet public key
15
+ - `wallet_get_private_key` - Get the wallet private key (with appropriate security warnings)
16
+ - `wallet_get_mnemonic` - Get the wallet mnemonic phrase (if available)
17
+
18
+ ## Blockchain Methods
19
+ - `wallet_get_balance` - Get the balance of the wallet
20
+ - `wallet_get_chain_id` - Get the chain ID the wallet is connected to
21
+ - `wallet_get_gas_price` - Get the current gas price
22
+ - `wallet_get_transaction_count` - Get the number of transactions sent from this account (nonce)
23
+ - `wallet_call` - Call a contract method without sending a transaction
24
+
25
+ ## Transaction Methods
26
+ - `wallet_send_transaction` - Send a transaction
27
+ - `wallet_sign_transaction` - Sign a transaction without sending it
28
+ - `wallet_populate_transaction` - Populate a transaction with missing fields
29
+
30
+ ## Signing Methods
31
+ - `wallet_sign_message` - Sign a message
32
+ - `wallet_sign_typed_data` - Sign typed data (EIP-712)
33
+ - `wallet_verify_message` - Verify a signed message
34
+ - `wallet_verify_typed_data` - Verify signed typed data
35
+
36
+ ## Provider Methods
37
+ - `provider_get_block` - Get a block by number or hash
38
+ - `provider_get_transaction` - Get a transaction by hash
39
+ - `provider_get_transaction_receipt` - Get a transaction receipt
40
+ - `provider_get_code` - Get the code at an address
41
+ - `provider_get_storage_at` - Get the storage at a position for an address
42
+ - `provider_estimate_gas` - Estimate the gas required for a transaction
43
+ - `provider_get_logs` - Get logs that match a filter
44
+ - `provider_get_ens_resolver` - Get the ENS resolver for a name
45
+ - `provider_lookup_address` - Lookup the ENS name for an address
46
+ - `provider_resolve_name` - Resolve an ENS name to an address
47
+
48
+ ## Network Methods
49
+ - `network_get_network` - Get the current network information
50
+ - `network_get_block_number` - Get the current block number
51
+ - `network_get_fee_data` - Get the current fee data (base fee, max priority fee, etc.)
52
+
53
+ These methods cover the core functionality needed for a comprehensive EVM crypto wallet implementation using ethers.js v5.
@@ -1,13 +1,22 @@
1
1
  import { ethers } from "ethers";
2
2
  import { ToolResultSchema } from "../types.js";
3
3
 
4
+
5
+ let provider: ethers.providers.Provider | undefined;
6
+ try {
7
+ provider = process.env.PROVIDER_URL ?
8
+ ethers.providers.getDefaultProvider(process.env.PROVIDER_URL) :
9
+ ethers.providers.getDefaultProvider('https://eth.llamarpc.com');
10
+ } catch (error) {
11
+ console.error("Error initializing provider:", error);
12
+ }
13
+
4
14
  /**
5
- * Creates a success response with the given result
6
- * @param result The result to include in the response
15
+ * Creates a success response with the given message
7
16
  * @param message Optional message to include in the response
8
- * @returns A ToolResultSchema with the result and message
17
+ * @returns A ToolResultSchema with the message
9
18
  */
10
- export const createSuccessResponse = <T>(result: T, message?: string): ToolResultSchema<T> => {
19
+ export const createSuccessResponse = (message?: string): ToolResultSchema => {
11
20
  return {
12
21
  content: [
13
22
  {
@@ -16,7 +25,6 @@ export const createSuccessResponse = <T>(result: T, message?: string): ToolResul
16
25
  }
17
26
  ],
18
27
  isError: false,
19
- toolResult: result
20
28
  };
21
29
  };
22
30
 
@@ -25,7 +33,7 @@ export const createSuccessResponse = <T>(result: T, message?: string): ToolResul
25
33
  * @param message The error message
26
34
  * @returns A ToolResultSchema with the error message
27
35
  */
28
- export const createErrorResponse = (message: string): ToolResultSchema<any> => {
36
+ export const createErrorResponse = (message: string): ToolResultSchema => {
29
37
  return {
30
38
  content: [
31
39
  {
@@ -33,26 +41,26 @@ export const createErrorResponse = (message: string): ToolResultSchema<any> => {
33
41
  text: message
34
42
  }
35
43
  ],
36
- isError: true,
37
- toolResult: { error: message }
44
+ isError: true
38
45
  };
39
46
  };
40
47
 
41
48
  /**
42
- * Gets a provider from a provider URL
43
- * @param providerUrl The provider URL
49
+ * Gets the provider setup in memory
44
50
  * @returns An ethers.js provider
45
51
  */
46
- export const getProvider = (providerUrl?: string): ethers.providers.Provider => {
47
- if (!providerUrl) {
48
- // Default to Ethereum mainnet if no provider URL is specified
49
- return ethers.getDefaultProvider();
52
+ export const getProvider = (): ethers.providers.Provider => {
53
+ if (!provider) {
54
+ throw new Error(`Invalid provider URL: ${process.env.PROVIDER_URL}`);
50
55
  }
51
-
56
+ return provider
57
+ };
58
+
59
+ export const setProvider = (providerURL: string) => {
52
60
  try {
53
- return new ethers.providers.JsonRpcProvider(providerUrl);
61
+ provider = ethers.providers.getDefaultProvider(providerURL);
54
62
  } catch (error) {
55
- throw new Error(`Invalid provider URL: ${providerUrl}`);
63
+ throw new Error(`Invalid provider URL: ${providerURL}`);
56
64
  }
57
65
  };
58
66
 
@@ -66,10 +74,8 @@ export const getProvider = (providerUrl?: string): ethers.providers.Provider =>
66
74
  export const getWallet = async (
67
75
  walletData?: string,
68
76
  password?: string,
69
- providerUrl?: string
70
77
  ): Promise<ethers.Wallet> => {
71
- const provider = providerUrl ? getProvider(providerUrl) : undefined;
72
-
78
+ const provider = getProvider()
73
79
  // If walletData is not provided, check for PRIVATE_KEY environment variable
74
80
  if (!walletData && process.env.PRIVATE_KEY) {
75
81
  const wallet = new ethers.Wallet(process.env.PRIVATE_KEY);