@waiaas/mcp 2.9.0 → 2.10.0-rc
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/server.d.ts +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +4 -2
- package/dist/server.js.map +1 -1
- package/dist/tools/simulate-transaction.d.ts +14 -0
- package/dist/tools/simulate-transaction.d.ts.map +1 -0
- package/dist/tools/simulate-transaction.js +85 -0
- package/dist/tools/simulate-transaction.js.map +1 -0
- package/package.json +1 -1
package/dist/server.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* createMcpServer: factory that creates an MCP server with
|
|
2
|
+
* createMcpServer: factory that creates an MCP server with 25 tools + 4 resource groups (3 static + 1 template).
|
|
3
3
|
*
|
|
4
4
|
* Each tool/resource is registered via a dedicated register function
|
|
5
5
|
* from its own module, following Dependency Injection pattern.
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAmCjD,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CA4C9F"}
|
package/dist/server.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* createMcpServer: factory that creates an MCP server with
|
|
2
|
+
* createMcpServer: factory that creates an MCP server with 25 tools + 4 resource groups (3 static + 1 template).
|
|
3
3
|
*
|
|
4
4
|
* Each tool/resource is registered via a dedicated register function
|
|
5
5
|
* from its own module, following Dependency Injection pattern.
|
|
@@ -33,6 +33,7 @@ import { registerListIncomingTransactions } from './tools/list-incoming-transact
|
|
|
33
33
|
import { registerGetIncomingSummary } from './tools/get-incoming-summary.js';
|
|
34
34
|
import { registerGetDefiPositions } from './tools/get-defi-positions.js';
|
|
35
35
|
import { registerGetHealthFactor } from './tools/get-health-factor.js';
|
|
36
|
+
import { registerSimulateTransaction } from './tools/simulate-transaction.js';
|
|
36
37
|
// Resource registrations (Task 2)
|
|
37
38
|
import { registerWalletBalance } from './resources/wallet-balance.js';
|
|
38
39
|
import { registerWalletAddress } from './resources/wallet-address.js';
|
|
@@ -52,7 +53,7 @@ export function createMcpServer(apiClient, walletContext) {
|
|
|
52
53
|
name: serverName,
|
|
53
54
|
version: '0.0.0',
|
|
54
55
|
});
|
|
55
|
-
// Register
|
|
56
|
+
// Register 25 tools
|
|
56
57
|
registerConnectInfo(server, apiClient);
|
|
57
58
|
registerGetPolicies(server, apiClient, walletContext);
|
|
58
59
|
registerGetTokens(server, apiClient, walletContext);
|
|
@@ -77,6 +78,7 @@ export function createMcpServer(apiClient, walletContext) {
|
|
|
77
78
|
registerGetIncomingSummary(server, apiClient, walletContext);
|
|
78
79
|
registerGetDefiPositions(server, apiClient, walletContext);
|
|
79
80
|
registerGetHealthFactor(server, apiClient, walletContext);
|
|
81
|
+
registerSimulateTransaction(server, apiClient, walletContext);
|
|
80
82
|
// Register 4 resource groups (3 static + 1 template)
|
|
81
83
|
registerWalletBalance(server, apiClient, walletContext);
|
|
82
84
|
registerWalletAddress(server, apiClient, walletContext);
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,qBAAqB;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* simulate_transaction tool: Simulate a transaction without executing it.
|
|
3
|
+
*
|
|
4
|
+
* Returns policy tier, estimated fees, balance changes, and warnings.
|
|
5
|
+
* Supports all 5 transaction types (TRANSFER, TOKEN_TRANSFER, CONTRACT_CALL,
|
|
6
|
+
* APPROVE, BATCH) with the same parameter structure as send_token/call_contract etc.
|
|
7
|
+
*
|
|
8
|
+
* @see Phase 309 Plan 02 Task 2
|
|
9
|
+
*/
|
|
10
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
11
|
+
import { type ApiClient } from '../api-client.js';
|
|
12
|
+
import { type WalletContext } from '../server.js';
|
|
13
|
+
export declare function registerSimulateTransaction(server: McpServer, apiClient: ApiClient, walletContext?: WalletContext): void;
|
|
14
|
+
//# sourceMappingURL=simulate-transaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simulate-transaction.d.ts","sourceRoot":"","sources":["../../src/tools/simulate-transaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,KAAK,SAAS,EAAgB,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,KAAK,aAAa,EAAoB,MAAM,cAAc,CAAC;AAEpE,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAgExH"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* simulate_transaction tool: Simulate a transaction without executing it.
|
|
3
|
+
*
|
|
4
|
+
* Returns policy tier, estimated fees, balance changes, and warnings.
|
|
5
|
+
* Supports all 5 transaction types (TRANSFER, TOKEN_TRANSFER, CONTRACT_CALL,
|
|
6
|
+
* APPROVE, BATCH) with the same parameter structure as send_token/call_contract etc.
|
|
7
|
+
*
|
|
8
|
+
* @see Phase 309 Plan 02 Task 2
|
|
9
|
+
*/
|
|
10
|
+
import { z } from 'zod';
|
|
11
|
+
import { toToolResult } from '../api-client.js';
|
|
12
|
+
import { withWalletPrefix } from '../server.js';
|
|
13
|
+
export function registerSimulateTransaction(server, apiClient, walletContext) {
|
|
14
|
+
server.tool('simulate_transaction', withWalletPrefix('Simulate a transaction without executing it. Returns policy tier, estimated fees, balance changes, and warnings. No side effects.', walletContext?.walletName), {
|
|
15
|
+
to: z.string().describe('Destination address'),
|
|
16
|
+
amount: z.string().describe('Amount in smallest unit (lamports/wei)'),
|
|
17
|
+
type: z.enum(['TRANSFER', 'TOKEN_TRANSFER', 'CONTRACT_CALL', 'APPROVE', 'BATCH']).optional()
|
|
18
|
+
.describe('Transaction type. Default: TRANSFER'),
|
|
19
|
+
token: z.object({
|
|
20
|
+
address: z.string().describe('Token mint/contract address'),
|
|
21
|
+
decimals: z.number().describe('Token decimals'),
|
|
22
|
+
symbol: z.string().describe('Token symbol'),
|
|
23
|
+
assetId: z.string().optional().describe('CAIP-19 asset identifier'),
|
|
24
|
+
}).optional().describe('Required for TOKEN_TRANSFER'),
|
|
25
|
+
// CONTRACT_CALL fields
|
|
26
|
+
calldata: z.string().optional().describe('Hex-encoded calldata (EVM)'),
|
|
27
|
+
abi: z.array(z.record(z.unknown())).optional().describe('ABI fragment (EVM)'),
|
|
28
|
+
value: z.string().optional().describe('Native value for CONTRACT_CALL (wei)'),
|
|
29
|
+
programId: z.string().optional().describe('Solana program ID'),
|
|
30
|
+
instructionData: z.string().optional().describe('Base64-encoded instruction data (Solana)'),
|
|
31
|
+
accounts: z.array(z.object({
|
|
32
|
+
pubkey: z.string(),
|
|
33
|
+
isSigner: z.boolean(),
|
|
34
|
+
isWritable: z.boolean(),
|
|
35
|
+
})).optional().describe('Solana accounts'),
|
|
36
|
+
// APPROVE fields
|
|
37
|
+
spender: z.string().optional().describe('Spender address (APPROVE type)'),
|
|
38
|
+
// BATCH fields
|
|
39
|
+
instructions: z.array(z.record(z.unknown())).optional().describe('Batch instructions array'),
|
|
40
|
+
// Common fields
|
|
41
|
+
network: z.string().optional().describe('Target network'),
|
|
42
|
+
wallet_id: z.string().optional().describe('Wallet ID for multi-wallet sessions'),
|
|
43
|
+
gas_condition: z.object({
|
|
44
|
+
max_gas_price: z.string().optional(),
|
|
45
|
+
max_priority_fee: z.string().optional(),
|
|
46
|
+
timeout: z.number().optional(),
|
|
47
|
+
}).optional().describe('Gas price condition (included for request compatibility, ignored by simulation)'),
|
|
48
|
+
}, async (args) => {
|
|
49
|
+
const body = { to: args.to, amount: args.amount };
|
|
50
|
+
if (args.type)
|
|
51
|
+
body.type = args.type;
|
|
52
|
+
if (args.token)
|
|
53
|
+
body.token = args.token;
|
|
54
|
+
if (args.calldata !== undefined)
|
|
55
|
+
body.calldata = args.calldata;
|
|
56
|
+
if (args.abi !== undefined)
|
|
57
|
+
body.abi = args.abi;
|
|
58
|
+
if (args.value !== undefined)
|
|
59
|
+
body.value = args.value;
|
|
60
|
+
if (args.programId !== undefined)
|
|
61
|
+
body.programId = args.programId;
|
|
62
|
+
if (args.instructionData !== undefined)
|
|
63
|
+
body.instructionData = args.instructionData;
|
|
64
|
+
if (args.accounts !== undefined)
|
|
65
|
+
body.accounts = args.accounts;
|
|
66
|
+
if (args.spender !== undefined)
|
|
67
|
+
body.spender = args.spender;
|
|
68
|
+
if (args.instructions !== undefined)
|
|
69
|
+
body.instructions = args.instructions;
|
|
70
|
+
if (args.network !== undefined)
|
|
71
|
+
body.network = args.network;
|
|
72
|
+
if (args.wallet_id)
|
|
73
|
+
body.walletId = args.wallet_id;
|
|
74
|
+
if (args.gas_condition) {
|
|
75
|
+
body.gasCondition = {
|
|
76
|
+
maxGasPrice: args.gas_condition.max_gas_price,
|
|
77
|
+
maxPriorityFee: args.gas_condition.max_priority_fee,
|
|
78
|
+
timeout: args.gas_condition.timeout,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
const result = await apiClient.post('/v1/transactions/simulate', body);
|
|
82
|
+
return toToolResult(result);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=simulate-transaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simulate-transaction.js","sourceRoot":"","sources":["../../src/tools/simulate-transaction.ts"],"names":[],"mappings":"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"}
|