@liqdlad/mcp-a2a-swap 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/dist/index.d.ts CHANGED
@@ -10,5 +10,6 @@
10
10
  * SOLANA_PRIVATE_KEY — wallet secret key as JSON byte array [n,n,...] (required for write ops)
11
11
  * SOLANA_RPC_URL — Solana RPC endpoint (default: mainnet-beta)
12
12
  */
13
- export {};
13
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
14
+ export declare function createSandboxServer(): Server;
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAyDnE,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}
package/dist/index.js CHANGED
@@ -12,6 +12,7 @@
12
12
  * SOLANA_RPC_URL — Solana RPC endpoint (default: mainnet-beta)
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.createSandboxServer = createSandboxServer;
15
16
  const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
16
17
  const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
17
18
  const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
@@ -49,372 +50,406 @@ function buildClient() {
49
50
  function fmt(v) {
50
51
  return v.toString();
51
52
  }
52
- // ─── MCP Server ───────────────────────────────────────────────────────────────
53
- const server = new index_js_1.Server({ name: 'mcp-a2a-swap', version: '0.1.0' }, { capabilities: { tools: {} } });
54
- // ─── Tool list ────────────────────────────────────────────────────────────────
55
- server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => ({
56
- tools: [
57
- {
58
- name: 'simulate_swap',
59
- description: 'Preview a token swap on A2A-Swap without spending any funds. ' +
60
- 'Returns full fee breakdown (protocol fee, LP fee, price impact) and estimated output. ' +
61
- 'Use this before execute_swap to check rates. No wallet required.',
62
- inputSchema: {
63
- type: 'object',
64
- properties: {
65
- token_in: { type: 'string', description: 'Token to sell — symbol (SOL, USDC, USDT) or mint address' },
66
- token_out: { type: 'string', description: 'Token to buy — symbol (SOL, USDC, USDT) or mint address' },
67
- amount: { type: 'string', description: 'Amount to sell in atomic units (e.g. "1000000000" for 1 SOL)' },
53
+ // ─── Server factory ───────────────────────────────────────────────────────────
54
+ //
55
+ // createSandboxServer() is exported for Smithery's tool-scanner so it can
56
+ // introspect tools/list without real credentials. The scanner never calls
57
+ // write tools so no credentials are needed.
58
+ function createSandboxServer() {
59
+ return createServer();
60
+ }
61
+ function createServer() {
62
+ const server = new index_js_1.Server({ name: 'mcp-a2a-swap', version: '0.1.0' }, { capabilities: { tools: {} } });
63
+ // ─── Tool list ──────────────────────────────────────────────────────────────
64
+ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => ({
65
+ tools: [
66
+ {
67
+ name: 'simulate_swap',
68
+ description: 'Preview a token swap on A2A-Swap without spending any funds. ' +
69
+ 'Returns full fee breakdown (protocol fee, LP fee, price impact) and estimated output. ' +
70
+ 'Use this before execute_swap to check rates. No wallet required.',
71
+ inputSchema: {
72
+ type: 'object',
73
+ properties: {
74
+ token_in: { type: 'string', description: 'Token to sell — symbol (SOL, USDC, USDT) or mint address' },
75
+ token_out: { type: 'string', description: 'Token to buy — symbol (SOL, USDC, USDT) or mint address' },
76
+ amount: { type: 'string', description: 'Amount to sell in atomic units (e.g. "1000000000" for 1 SOL)' },
77
+ },
78
+ required: ['token_in', 'token_out', 'amount'],
68
79
  },
69
- required: ['token_in', 'token_out', 'amount'],
70
80
  },
71
- },
72
- {
73
- name: 'pool_info',
74
- description: 'Fetch current state of an A2A-Swap liquidity pool: reserves, spot price, LP supply, fee rate. ' +
75
- 'Read-only — no wallet required.',
76
- inputSchema: {
77
- type: 'object',
78
- properties: {
79
- token_a: { type: 'string', description: 'First pool token — symbol or mint address' },
80
- token_b: { type: 'string', description: 'Second pool token — symbol or mint address' },
81
+ {
82
+ name: 'active_pools',
83
+ description: 'List every liquidity pool deployed on A2A-Swap with live reserves, spot price, LP supply, and fee rate. ' +
84
+ 'No arguments required. Use this for discovery call it on startup to learn which token pairs are available ' +
85
+ 'before routing a swap. Read-only — no wallet required.',
86
+ inputSchema: {
87
+ type: 'object',
88
+ properties: {},
89
+ required: [],
81
90
  },
82
- required: ['token_a', 'token_b'],
83
91
  },
84
- },
85
- {
86
- name: 'execute_swap',
87
- description: 'Execute an atomic token swap on A2A-Swap with slippage protection. ' +
88
- 'Simulates first, enforces the slippage limit, then sends the transaction. ' +
89
- 'Requires SOLANA_PRIVATE_KEY env var.',
90
- inputSchema: {
91
- type: 'object',
92
- properties: {
93
- token_in: { type: 'string', description: 'Token to sell — symbol or mint address' },
94
- token_out: { type: 'string', description: 'Token to buy — symbol or mint address' },
95
- amount: { type: 'string', description: 'Amount to sell in atomic units' },
96
- max_slippage_bps: { type: 'number', description: 'Max slippage in basis points (default: 50 = 0.5%)' },
92
+ {
93
+ name: 'pool_info',
94
+ description: 'Fetch current state of a specific A2A-Swap liquidity pool: reserves, spot price, LP supply, fee rate. ' +
95
+ 'Use active_pools first if you don\'t know which pairs exist. Read-only no wallet required.',
96
+ inputSchema: {
97
+ type: 'object',
98
+ properties: {
99
+ token_a: { type: 'string', description: 'First pool token — symbol or mint address' },
100
+ token_b: { type: 'string', description: 'Second pool token — symbol or mint address' },
101
+ },
102
+ required: ['token_a', 'token_b'],
97
103
  },
98
- required: ['token_in', 'token_out', 'amount'],
99
104
  },
100
- },
101
- {
102
- name: 'provide_liquidity',
103
- description: 'Deposit tokens into an A2A-Swap pool and receive LP shares recorded in a Position account. ' +
104
- 'For the first deposit into a new pool provide both amount_a and amount_b to set the initial price. ' +
105
- 'For subsequent deposits omit amount_b — the program computes it from live reserves. ' +
106
- 'Requires SOLANA_PRIVATE_KEY env var.',
107
- inputSchema: {
108
- type: 'object',
109
- properties: {
110
- token_a: { type: 'string', description: 'First pool token symbol or mint address' },
111
- token_b: { type: 'string', description: 'Second pool token symbol or mint address' },
112
- amount_a: { type: 'string', description: 'Amount of token A in atomic units' },
113
- amount_b: { type: 'string', description: 'Amount of token B in atomic units (omit for proportional deposit)' },
114
- auto_compound: { type: 'boolean', description: 'Reinvest accrued fees as LP shares instead of accumulating for manual claim (default: false)' },
115
- compound_threshold: { type: 'string', description: 'Minimum fee balance before auto-compounding, in atomic units (default: "0")' },
105
+ {
106
+ name: 'execute_swap',
107
+ description: 'Execute an atomic token swap on A2A-Swap with slippage protection. ' +
108
+ 'Simulates first, enforces the slippage limit, then sends the transaction. ' +
109
+ 'Requires SOLANA_PRIVATE_KEY env var.',
110
+ inputSchema: {
111
+ type: 'object',
112
+ properties: {
113
+ token_in: { type: 'string', description: 'Token to sell — symbol or mint address' },
114
+ token_out: { type: 'string', description: 'Token to buy — symbol or mint address' },
115
+ amount: { type: 'string', description: 'Amount to sell in atomic units' },
116
+ max_slippage_bps: { type: 'number', description: 'Max slippage in basis points (default: 50 = 0.5%)' },
117
+ },
118
+ required: ['token_in', 'token_out', 'amount'],
116
119
  },
117
- required: ['token_a', 'token_b', 'amount_a'],
118
120
  },
119
- },
120
- {
121
- name: 'remove_liquidity',
122
- description: 'Burn LP shares and withdraw proportional tokens from an A2A-Swap pool. ' +
123
- 'Accrued fees are synced but not transferred run claim_fees after. ' +
124
- 'Requires SOLANA_PRIVATE_KEY env var.',
125
- inputSchema: {
126
- type: 'object',
127
- properties: {
128
- token_a: { type: 'string', description: 'First pool token — symbol or mint address' },
129
- token_b: { type: 'string', description: 'Second pool token — symbol or mint address' },
130
- lp_shares: { type: 'string', description: 'Number of LP shares to burn in atomic units' },
131
- min_a: { type: 'string', description: 'Minimum token A to accept as slippage guard (default: "0")' },
132
- min_b: { type: 'string', description: 'Minimum token B to accept as slippage guard (default: "0")' },
121
+ {
122
+ name: 'provide_liquidity',
123
+ description: 'Deposit tokens into an A2A-Swap pool and receive LP shares recorded in a Position account. ' +
124
+ 'For the first deposit into a new pool provide both amount_a and amount_b to set the initial price. ' +
125
+ 'For subsequent deposits omit amount_b the program computes it from live reserves. ' +
126
+ 'Requires SOLANA_PRIVATE_KEY env var.',
127
+ inputSchema: {
128
+ type: 'object',
129
+ properties: {
130
+ token_a: { type: 'string', description: 'First pool token — symbol or mint address' },
131
+ token_b: { type: 'string', description: 'Second pool token — symbol or mint address' },
132
+ amount_a: { type: 'string', description: 'Amount of token A in atomic units' },
133
+ amount_b: { type: 'string', description: 'Amount of token B in atomic units (omit for proportional deposit)' },
134
+ auto_compound: { type: 'boolean', description: 'Reinvest accrued fees as LP shares instead of accumulating for manual claim (default: false)' },
135
+ compound_threshold: { type: 'string', description: 'Minimum fee balance before auto-compounding, in atomic units (default: "0")' },
136
+ },
137
+ required: ['token_a', 'token_b', 'amount_a'],
133
138
  },
134
- required: ['token_a', 'token_b', 'lp_shares'],
135
139
  },
136
- },
137
- {
138
- name: 'claim_fees',
139
- description: 'Collect accrued LP trading fees from an A2A-Swap pool position. ' +
140
- 'If auto_compound was enabled on the position, fees are reinvested as additional LP shares instead of transferred. ' +
141
- 'Requires SOLANA_PRIVATE_KEY env var.',
142
- inputSchema: {
143
- type: 'object',
144
- properties: {
145
- token_a: { type: 'string', description: 'First pool token — symbol or mint address' },
146
- token_b: { type: 'string', description: 'Second pool token symbol or mint address' },
140
+ {
141
+ name: 'remove_liquidity',
142
+ description: 'Burn LP shares and withdraw proportional tokens from an A2A-Swap pool. ' +
143
+ 'Accrued fees are synced but not transferred run claim_fees after. ' +
144
+ 'Requires SOLANA_PRIVATE_KEY env var.',
145
+ inputSchema: {
146
+ type: 'object',
147
+ properties: {
148
+ token_a: { type: 'string', description: 'First pool token — symbol or mint address' },
149
+ token_b: { type: 'string', description: 'Second pool token — symbol or mint address' },
150
+ lp_shares: { type: 'string', description: 'Number of LP shares to burn in atomic units' },
151
+ min_a: { type: 'string', description: 'Minimum token A to accept as slippage guard (default: "0")' },
152
+ min_b: { type: 'string', description: 'Minimum token B to accept as slippage guard (default: "0")' },
153
+ },
154
+ required: ['token_a', 'token_b', 'lp_shares'],
147
155
  },
148
- required: ['token_a', 'token_b'],
149
156
  },
150
- },
151
- {
152
- name: 'my_positions',
153
- description: 'List all LP positions owned by the agent wallet across all A2A-Swap pools. ' +
154
- 'Shows LP share balances, pool addresses, and auto-compound settings. ' +
155
- 'Requires SOLANA_PRIVATE_KEY env var (used as the identity to query).',
156
- inputSchema: {
157
- type: 'object',
158
- properties: {},
159
- required: [],
157
+ {
158
+ name: 'claim_fees',
159
+ description: 'Collect accrued LP trading fees from an A2A-Swap pool position. ' +
160
+ 'If auto_compound was enabled on the position, fees are reinvested as additional LP shares instead of transferred. ' +
161
+ 'Requires SOLANA_PRIVATE_KEY env var.',
162
+ inputSchema: {
163
+ type: 'object',
164
+ properties: {
165
+ token_a: { type: 'string', description: 'First pool token — symbol or mint address' },
166
+ token_b: { type: 'string', description: 'Second pool token — symbol or mint address' },
167
+ },
168
+ required: ['token_a', 'token_b'],
169
+ },
160
170
  },
161
- },
162
- {
163
- name: 'my_fees',
164
- description: 'Show accrued trading fees across all LP positions owned by the agent wallet. ' +
165
- 'Includes both on-chain stored fees and pending fees accrued since last sync. ' +
166
- 'Requires SOLANA_PRIVATE_KEY env var.',
167
- inputSchema: {
168
- type: 'object',
169
- properties: {},
170
- required: [],
171
+ {
172
+ name: 'my_positions',
173
+ description: 'List all LP positions owned by the agent wallet across all A2A-Swap pools. ' +
174
+ 'Shows LP share balances, pool addresses, and auto-compound settings. ' +
175
+ 'Requires SOLANA_PRIVATE_KEY env var (used as the identity to query).',
176
+ inputSchema: {
177
+ type: 'object',
178
+ properties: {},
179
+ required: [],
180
+ },
171
181
  },
172
- },
173
- {
174
- name: 'create_pool',
175
- description: 'Create a new constant-product AMM pool on A2A-Swap for a token pair. ' +
176
- 'The pool PDA controls the vaults — no human key holds authority. ' +
177
- 'After creating, call provide_liquidity with both amount_a and amount_b to seed initial reserves. ' +
178
- 'Requires SOLANA_PRIVATE_KEY env var.',
179
- inputSchema: {
180
- type: 'object',
181
- properties: {
182
- token_a: { type: 'string', description: 'First pool token — symbol or mint address' },
183
- token_b: { type: 'string', description: 'Second pool token — symbol or mint address' },
184
- fee_bps: { type: 'number', description: 'LP fee rate in basis points, 1–100 (e.g. 30 = 0.30%)' },
182
+ {
183
+ name: 'my_fees',
184
+ description: 'Show accrued trading fees across all LP positions owned by the agent wallet. ' +
185
+ 'Includes both on-chain stored fees and pending fees accrued since last sync. ' +
186
+ 'Requires SOLANA_PRIVATE_KEY env var.',
187
+ inputSchema: {
188
+ type: 'object',
189
+ properties: {},
190
+ required: [],
185
191
  },
186
- required: ['token_a', 'token_b', 'fee_bps'],
187
192
  },
188
- },
189
- ],
190
- }));
191
- // ─── Tool handlers ────────────────────────────────────────────────────────────
192
- server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
193
- const { name, arguments: args = {} } = request.params;
194
- try {
195
- switch (name) {
196
- // ── simulate_swap ──────────────────────────────────────────────────────
197
- case 'simulate_swap': {
198
- const client = buildClient();
199
- const result = await client.simulate({
200
- mintIn: resolveToken(args.token_in),
201
- mintOut: resolveToken(args.token_out),
202
- amountIn: BigInt(args.amount),
203
- });
204
- return {
205
- content: [{
206
- type: 'text',
207
- text: [
208
- `Simulate: ${args.token_in} ${args.token_out}`,
209
- ` Pool: ${result.pool.toBase58()}`,
210
- ` Direction: ${result.aToB ? 'A → B' : 'B → A'}`,
211
- ` Amount in: ${fmt(result.amountIn)}`,
212
- ` Protocol fee: ${fmt(result.protocolFee)} (0.020%)`,
213
- ` LP fee: ${fmt(result.lpFee)} (${result.feeRateBps / 100}% of net)`,
214
- ` After fees: ${fmt(result.afterFees)}`,
215
- ` Estimated out: ${fmt(result.estimatedOut)}`,
216
- ` Effective rate: ${result.effectiveRate.toFixed(8)}`,
217
- ` Price impact: ${result.priceImpactPct.toFixed(4)}%`,
218
- ` Reserve in: ${fmt(result.reserveIn)}`,
219
- ` Reserve out: ${fmt(result.reserveOut)}`,
220
- ].join('\n'),
221
- }],
222
- };
223
- }
224
- // ── pool_info ─────────────────────────────────────────────────────────
225
- case 'pool_info': {
226
- const client = buildClient();
227
- const result = await client.poolInfo(resolveToken(args.token_a), resolveToken(args.token_b));
228
- return {
229
- content: [{
230
- type: 'text',
231
- text: [
232
- `Pool: ${args.token_a} / ${args.token_b}`,
233
- ` Pool address: ${result.pool.toBase58()}`,
234
- ` Mint A: ${result.mintA.toBase58()}`,
235
- ` Mint B: ${result.mintB.toBase58()}`,
236
- ` Reserve A: ${fmt(result.reserveA)}`,
237
- ` Reserve B: ${fmt(result.reserveB)}`,
238
- ` LP supply: ${fmt(result.lpSupply)}`,
239
- ` Fee rate: ${result.feeRateBps} bps (${result.feeRateBps / 100}%)`,
240
- ` Spot price: ${result.spotPrice.toFixed(8)} (B per A)`,
241
- ].join('\n'),
242
- }],
243
- };
244
- }
245
- // ── execute_swap ──────────────────────────────────────────────────────
246
- case 'execute_swap': {
247
- const keypair = loadKeypair();
248
- const client = buildClient();
249
- const result = await client.convert(keypair, {
250
- mintIn: resolveToken(args.token_in),
251
- mintOut: resolveToken(args.token_out),
252
- amountIn: BigInt(args.amount),
253
- maxSlippageBps: args.max_slippage_bps ?? 50,
254
- });
255
- return {
256
- content: [{
257
- type: 'text',
258
- text: [
259
- `Swap executed: ${args.token_in} → ${args.token_out}`,
260
- ` Pool: ${result.pool.toBase58()}`,
261
- ` Amount in: ${fmt(result.amountIn)}`,
262
- ` Estimated out: ${fmt(result.estimatedOut)}`,
263
- ` Min accepted: ${fmt(result.minAmountOut)}`,
264
- ` Signature: ${result.signature}`,
265
- ` Explorer: https://explorer.solana.com/tx/${result.signature}`,
266
- ].join('\n'),
267
- }],
268
- };
269
- }
270
- // ── provide_liquidity ─────────────────────────────────────────────────
271
- case 'provide_liquidity': {
272
- const keypair = loadKeypair();
273
- const client = buildClient();
274
- const result = await client.provideLiquidity(keypair, {
275
- mintA: resolveToken(args.token_a),
276
- mintB: resolveToken(args.token_b),
277
- amountA: BigInt(args.amount_a),
278
- amountB: args.amount_b !== undefined ? BigInt(args.amount_b) : undefined,
279
- autoCompound: args.auto_compound ?? false,
280
- compoundThreshold: args.compound_threshold !== undefined ? BigInt(args.compound_threshold) : 0n,
281
- });
282
- return {
283
- content: [{
284
- type: 'text',
285
- text: [
286
- `Liquidity provided: ${args.token_a} / ${args.token_b}`,
287
- ` Pool: ${result.pool.toBase58()}`,
288
- ` Position: ${result.position.toBase58()}`,
289
- ` Deposited A: ${fmt(result.amountA)}`,
290
- ` Deposited B: ${fmt(result.amountB)}`,
291
- ` Signature: ${result.signature}`,
292
- ` Explorer: https://explorer.solana.com/tx/${result.signature}`,
293
- ].join('\n'),
294
- }],
295
- };
296
- }
297
- // ── remove_liquidity ──────────────────────────────────────────────────
298
- case 'remove_liquidity': {
299
- const keypair = loadKeypair();
300
- const client = buildClient();
301
- const result = await client.removeLiquidity(keypair, {
302
- mintA: resolveToken(args.token_a),
303
- mintB: resolveToken(args.token_b),
304
- lpShares: BigInt(args.lp_shares),
305
- minA: args.min_a !== undefined ? BigInt(args.min_a) : 0n,
306
- minB: args.min_b !== undefined ? BigInt(args.min_b) : 0n,
307
- });
308
- return {
309
- content: [{
310
- type: 'text',
311
- text: [
312
- `Liquidity removed: ${args.token_a} / ${args.token_b}`,
313
- ` Pool: ${result.pool.toBase58()}`,
314
- ` LP burned: ${fmt(result.lpShares)}`,
315
- ` Expected A: ${fmt(result.expectedA)}`,
316
- ` Expected B: ${fmt(result.expectedB)}`,
317
- ` Signature: ${result.signature}`,
318
- ` Explorer: https://explorer.solana.com/tx/${result.signature}`,
319
- ` Note: Run claim_fees to collect any accrued fees.`,
320
- ].join('\n'),
321
- }],
322
- };
323
- }
324
- // ── claim_fees ────────────────────────────────────────────────────────
325
- case 'claim_fees': {
326
- const keypair = loadKeypair();
327
- const client = buildClient();
328
- const result = await client.claimFees(keypair, resolveToken(args.token_a), resolveToken(args.token_b));
329
- const mode = result.autoCompound ? 'auto-compounded → LP shares' : 'transferred to wallet';
330
- return {
331
- content: [{
332
- type: 'text',
333
- text: [
334
- `Fees claimed: ${args.token_a} / ${args.token_b}`,
335
- ` Pool: ${result.pool.toBase58()}`,
336
- ` Fees A: ${fmt(result.feesA)}`,
337
- ` Fees B: ${fmt(result.feesB)}`,
338
- ` Mode: ${mode}`,
339
- ` Signature: ${result.signature}`,
340
- ` Explorer: https://explorer.solana.com/tx/${result.signature}`,
341
- ].join('\n'),
342
- }],
343
- };
344
- }
345
- // ── my_positions ──────────────────────────────────────────────────────
346
- case 'my_positions': {
347
- const keypair = loadKeypair();
348
- const client = buildClient();
349
- const positions = await client.myPositions(keypair.publicKey);
350
- if (positions.length === 0) {
351
- return { content: [{ type: 'text', text: 'No LP positions found for this wallet.' }] };
193
+ {
194
+ name: 'create_pool',
195
+ description: 'Create a new constant-product AMM pool on A2A-Swap for a token pair. ' +
196
+ 'The pool PDA controls the vaults — no human key holds authority. ' +
197
+ 'After creating, call provide_liquidity with both amount_a and amount_b to seed initial reserves. ' +
198
+ 'Requires SOLANA_PRIVATE_KEY env var.',
199
+ inputSchema: {
200
+ type: 'object',
201
+ properties: {
202
+ token_a: { type: 'string', description: 'First pool token — symbol or mint address' },
203
+ token_b: { type: 'string', description: 'Second pool token — symbol or mint address' },
204
+ fee_bps: { type: 'number', description: 'LP fee rate in basis points, 1–100 (e.g. 30 = 0.30%)' },
205
+ },
206
+ required: ['token_a', 'token_b', 'fee_bps'],
207
+ },
208
+ },
209
+ ],
210
+ }));
211
+ // ─── Tool handlers ────────────────────────────────────────────────────────────
212
+ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
213
+ const { name, arguments: args = {} } = request.params;
214
+ try {
215
+ switch (name) {
216
+ // ── simulate_swap ──────────────────────────────────────────────────────
217
+ case 'simulate_swap': {
218
+ const client = buildClient();
219
+ const result = await client.simulate({
220
+ mintIn: resolveToken(args.token_in),
221
+ mintOut: resolveToken(args.token_out),
222
+ amountIn: BigInt(args.amount),
223
+ });
224
+ return {
225
+ content: [{
226
+ type: 'text',
227
+ text: [
228
+ `Simulate: ${args.token_in} → ${args.token_out}`,
229
+ ` Pool: ${result.pool.toBase58()}`,
230
+ ` Direction: ${result.aToB ? 'A → B' : 'B → A'}`,
231
+ ` Amount in: ${fmt(result.amountIn)}`,
232
+ ` Protocol fee: ${fmt(result.protocolFee)} (0.020%)`,
233
+ ` LP fee: ${fmt(result.lpFee)} (${result.feeRateBps / 100}% of net)`,
234
+ ` After fees: ${fmt(result.afterFees)}`,
235
+ ` Estimated out: ${fmt(result.estimatedOut)}`,
236
+ ` Effective rate: ${result.effectiveRate.toFixed(8)}`,
237
+ ` Price impact: ${result.priceImpactPct.toFixed(4)}%`,
238
+ ` Reserve in: ${fmt(result.reserveIn)}`,
239
+ ` Reserve out: ${fmt(result.reserveOut)}`,
240
+ ].join('\n'),
241
+ }],
242
+ };
352
243
  }
353
- const lines = [`LP positions for ${keypair.publicKey.toBase58()}:`];
354
- for (const [i, p] of positions.entries()) {
355
- lines.push(` [${i}] Position: ${p.address.toBase58()}`, ` Pool: ${p.pool.toBase58()}`, ` LP shares: ${fmt(p.lpShares)}`, ` Auto-compound: ${p.autoCompound ? `enabled (threshold: ${fmt(p.compoundThreshold)})` : 'disabled'}`);
244
+ // ── active_pools ──────────────────────────────────────────────────────
245
+ case 'active_pools': {
246
+ const client = buildClient();
247
+ const pools = await client.activePools();
248
+ if (pools.length === 0) {
249
+ return { content: [{ type: 'text', text: 'No pools found.' }] };
250
+ }
251
+ const lines = [`Active pools (${pools.length}):`];
252
+ for (const [i, p] of pools.entries()) {
253
+ lines.push(` [${i + 1}] ${p.pool.toBase58()}`, ` Mint A: ${p.mintA.toBase58()}`, ` Mint B: ${p.mintB.toBase58()}`, ` Reserve A: ${fmt(p.reserveA)}`, ` Reserve B: ${fmt(p.reserveB)}`, ` LP supply: ${fmt(p.lpSupply)}`, ` Fee rate: ${p.feeRateBps} bps (${p.feeRateBps / 100}%)`, ` Spot price: ${p.spotPrice.toFixed(8)} (B per A)`);
254
+ }
255
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
356
256
  }
357
- return { content: [{ type: 'text', text: lines.join('\n') }] };
358
- }
359
- // ── my_fees ───────────────────────────────────────────────────────────
360
- case 'my_fees': {
361
- const keypair = loadKeypair();
362
- const client = buildClient();
363
- const summary = await client.myFees(keypair.publicKey);
364
- if (summary.positions.length === 0) {
365
- return { content: [{ type: 'text', text: 'No LP positions found — no fees to display.' }] };
257
+ // ── pool_info ─────────────────────────────────────────────────────────
258
+ case 'pool_info': {
259
+ const client = buildClient();
260
+ const result = await client.poolInfo(resolveToken(args.token_a), resolveToken(args.token_b));
261
+ return {
262
+ content: [{
263
+ type: 'text',
264
+ text: [
265
+ `Pool: ${args.token_a} / ${args.token_b}`,
266
+ ` Pool address: ${result.pool.toBase58()}`,
267
+ ` Mint A: ${result.mintA.toBase58()}`,
268
+ ` Mint B: ${result.mintB.toBase58()}`,
269
+ ` Reserve A: ${fmt(result.reserveA)}`,
270
+ ` Reserve B: ${fmt(result.reserveB)}`,
271
+ ` LP supply: ${fmt(result.lpSupply)}`,
272
+ ` Fee rate: ${result.feeRateBps} bps (${result.feeRateBps / 100}%)`,
273
+ ` Spot price: ${result.spotPrice.toFixed(8)} (B per A)`,
274
+ ].join('\n'),
275
+ }],
276
+ };
366
277
  }
367
- const lines = [`Fees for ${keypair.publicKey.toBase58()}:`];
368
- for (const [i, p] of summary.positions.entries()) {
369
- lines.push(` [${i}] Pool: ${p.pool.toBase58()}`, ` LP shares: ${fmt(p.lpShares)}`, ` Fees A: ${fmt(p.totalFeesA)} (owed: ${fmt(p.feesOwedA)} + pending: ${fmt(p.pendingFeesA)})`, ` Fees B: ${fmt(p.totalFeesB)} (owed: ${fmt(p.feesOwedB)} + pending: ${fmt(p.pendingFeesB)})`);
278
+ // ── execute_swap ──────────────────────────────────────────────────────
279
+ case 'execute_swap': {
280
+ const keypair = loadKeypair();
281
+ const client = buildClient();
282
+ const result = await client.convert(keypair, {
283
+ mintIn: resolveToken(args.token_in),
284
+ mintOut: resolveToken(args.token_out),
285
+ amountIn: BigInt(args.amount),
286
+ maxSlippageBps: args.max_slippage_bps ?? 50,
287
+ });
288
+ return {
289
+ content: [{
290
+ type: 'text',
291
+ text: [
292
+ `Swap executed: ${args.token_in} → ${args.token_out}`,
293
+ ` Pool: ${result.pool.toBase58()}`,
294
+ ` Amount in: ${fmt(result.amountIn)}`,
295
+ ` Estimated out: ${fmt(result.estimatedOut)}`,
296
+ ` Min accepted: ${fmt(result.minAmountOut)}`,
297
+ ` Signature: ${result.signature}`,
298
+ ` Explorer: https://explorer.solana.com/tx/${result.signature}`,
299
+ ].join('\n'),
300
+ }],
301
+ };
370
302
  }
371
- lines.push(` ─────────────────────────────`, ` Total fees A: ${fmt(summary.totalFeesA)}`, ` Total fees B: ${fmt(summary.totalFeesB)}`);
372
- return { content: [{ type: 'text', text: lines.join('\n') }] };
373
- }
374
- // ── create_pool ───────────────────────────────────────────────────────
375
- case 'create_pool': {
376
- const keypair = loadKeypair();
377
- const client = buildClient();
378
- const result = await client.createPool(keypair, {
379
- mintA: resolveToken(args.token_a),
380
- mintB: resolveToken(args.token_b),
381
- feeRateBps: args.fee_bps,
382
- });
383
- return {
384
- content: [{
385
- type: 'text',
386
- text: [
387
- `Pool created: ${args.token_a} / ${args.token_b}`,
388
- ` Pool: ${result.pool.toBase58()}`,
389
- ` Authority: ${result.poolAuthority.toBase58()} (PDA — no human key)`,
390
- ` Vault A: ${result.vaultA.toBase58()}`,
391
- ` Vault B: ${result.vaultB.toBase58()}`,
392
- ` Fee rate: ${result.feeRateBps} bps (${result.feeRateBps / 100}%)`,
393
- ` Signature: ${result.signature}`,
394
- ` Explorer: https://explorer.solana.com/tx/${result.signature}`,
395
- ` Next step: call provide_liquidity with both amount_a and amount_b to seed the pool.`,
396
- ].join('\n'),
397
- }],
398
- };
303
+ // ── provide_liquidity ─────────────────────────────────────────────────
304
+ case 'provide_liquidity': {
305
+ const keypair = loadKeypair();
306
+ const client = buildClient();
307
+ const result = await client.provideLiquidity(keypair, {
308
+ mintA: resolveToken(args.token_a),
309
+ mintB: resolveToken(args.token_b),
310
+ amountA: BigInt(args.amount_a),
311
+ amountB: args.amount_b !== undefined ? BigInt(args.amount_b) : undefined,
312
+ autoCompound: args.auto_compound ?? false,
313
+ compoundThreshold: args.compound_threshold !== undefined ? BigInt(args.compound_threshold) : 0n,
314
+ });
315
+ return {
316
+ content: [{
317
+ type: 'text',
318
+ text: [
319
+ `Liquidity provided: ${args.token_a} / ${args.token_b}`,
320
+ ` Pool: ${result.pool.toBase58()}`,
321
+ ` Position: ${result.position.toBase58()}`,
322
+ ` Deposited A: ${fmt(result.amountA)}`,
323
+ ` Deposited B: ${fmt(result.amountB)}`,
324
+ ` Signature: ${result.signature}`,
325
+ ` Explorer: https://explorer.solana.com/tx/${result.signature}`,
326
+ ].join('\n'),
327
+ }],
328
+ };
329
+ }
330
+ // ── remove_liquidity ──────────────────────────────────────────────────
331
+ case 'remove_liquidity': {
332
+ const keypair = loadKeypair();
333
+ const client = buildClient();
334
+ const result = await client.removeLiquidity(keypair, {
335
+ mintA: resolveToken(args.token_a),
336
+ mintB: resolveToken(args.token_b),
337
+ lpShares: BigInt(args.lp_shares),
338
+ minA: args.min_a !== undefined ? BigInt(args.min_a) : 0n,
339
+ minB: args.min_b !== undefined ? BigInt(args.min_b) : 0n,
340
+ });
341
+ return {
342
+ content: [{
343
+ type: 'text',
344
+ text: [
345
+ `Liquidity removed: ${args.token_a} / ${args.token_b}`,
346
+ ` Pool: ${result.pool.toBase58()}`,
347
+ ` LP burned: ${fmt(result.lpShares)}`,
348
+ ` Expected A: ${fmt(result.expectedA)}`,
349
+ ` Expected B: ${fmt(result.expectedB)}`,
350
+ ` Signature: ${result.signature}`,
351
+ ` Explorer: https://explorer.solana.com/tx/${result.signature}`,
352
+ ` Note: Run claim_fees to collect any accrued fees.`,
353
+ ].join('\n'),
354
+ }],
355
+ };
356
+ }
357
+ // ── claim_fees ────────────────────────────────────────────────────────
358
+ case 'claim_fees': {
359
+ const keypair = loadKeypair();
360
+ const client = buildClient();
361
+ const result = await client.claimFees(keypair, resolveToken(args.token_a), resolveToken(args.token_b));
362
+ const mode = result.autoCompound ? 'auto-compounded → LP shares' : 'transferred to wallet';
363
+ return {
364
+ content: [{
365
+ type: 'text',
366
+ text: [
367
+ `Fees claimed: ${args.token_a} / ${args.token_b}`,
368
+ ` Pool: ${result.pool.toBase58()}`,
369
+ ` Fees A: ${fmt(result.feesA)}`,
370
+ ` Fees B: ${fmt(result.feesB)}`,
371
+ ` Mode: ${mode}`,
372
+ ` Signature: ${result.signature}`,
373
+ ` Explorer: https://explorer.solana.com/tx/${result.signature}`,
374
+ ].join('\n'),
375
+ }],
376
+ };
377
+ }
378
+ // ── my_positions ──────────────────────────────────────────────────────
379
+ case 'my_positions': {
380
+ const keypair = loadKeypair();
381
+ const client = buildClient();
382
+ const positions = await client.myPositions(keypair.publicKey);
383
+ if (positions.length === 0) {
384
+ return { content: [{ type: 'text', text: 'No LP positions found for this wallet.' }] };
385
+ }
386
+ const lines = [`LP positions for ${keypair.publicKey.toBase58()}:`];
387
+ for (const [i, p] of positions.entries()) {
388
+ lines.push(` [${i}] Position: ${p.address.toBase58()}`, ` Pool: ${p.pool.toBase58()}`, ` LP shares: ${fmt(p.lpShares)}`, ` Auto-compound: ${p.autoCompound ? `enabled (threshold: ${fmt(p.compoundThreshold)})` : 'disabled'}`);
389
+ }
390
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
391
+ }
392
+ // ── my_fees ───────────────────────────────────────────────────────────
393
+ case 'my_fees': {
394
+ const keypair = loadKeypair();
395
+ const client = buildClient();
396
+ const summary = await client.myFees(keypair.publicKey);
397
+ if (summary.positions.length === 0) {
398
+ return { content: [{ type: 'text', text: 'No LP positions found — no fees to display.' }] };
399
+ }
400
+ const lines = [`Fees for ${keypair.publicKey.toBase58()}:`];
401
+ for (const [i, p] of summary.positions.entries()) {
402
+ lines.push(` [${i}] Pool: ${p.pool.toBase58()}`, ` LP shares: ${fmt(p.lpShares)}`, ` Fees A: ${fmt(p.totalFeesA)} (owed: ${fmt(p.feesOwedA)} + pending: ${fmt(p.pendingFeesA)})`, ` Fees B: ${fmt(p.totalFeesB)} (owed: ${fmt(p.feesOwedB)} + pending: ${fmt(p.pendingFeesB)})`);
403
+ }
404
+ lines.push(` ─────────────────────────────`, ` Total fees A: ${fmt(summary.totalFeesA)}`, ` Total fees B: ${fmt(summary.totalFeesB)}`);
405
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
406
+ }
407
+ // ── create_pool ───────────────────────────────────────────────────────
408
+ case 'create_pool': {
409
+ const keypair = loadKeypair();
410
+ const client = buildClient();
411
+ const result = await client.createPool(keypair, {
412
+ mintA: resolveToken(args.token_a),
413
+ mintB: resolveToken(args.token_b),
414
+ feeRateBps: args.fee_bps,
415
+ });
416
+ return {
417
+ content: [{
418
+ type: 'text',
419
+ text: [
420
+ `Pool created: ${args.token_a} / ${args.token_b}`,
421
+ ` Pool: ${result.pool.toBase58()}`,
422
+ ` Authority: ${result.poolAuthority.toBase58()} (PDA — no human key)`,
423
+ ` Vault A: ${result.vaultA.toBase58()}`,
424
+ ` Vault B: ${result.vaultB.toBase58()}`,
425
+ ` Fee rate: ${result.feeRateBps} bps (${result.feeRateBps / 100}%)`,
426
+ ` Signature: ${result.signature}`,
427
+ ` Explorer: https://explorer.solana.com/tx/${result.signature}`,
428
+ ` Next step: call provide_liquidity with both amount_a and amount_b to seed the pool.`,
429
+ ].join('\n'),
430
+ }],
431
+ };
432
+ }
433
+ default:
434
+ return {
435
+ content: [{ type: 'text', text: `Unknown tool: ${name}` }],
436
+ isError: true,
437
+ };
399
438
  }
400
- default:
401
- return {
402
- content: [{ type: 'text', text: `Unknown tool: ${name}` }],
403
- isError: true,
404
- };
405
439
  }
406
- }
407
- catch (err) {
408
- return {
409
- content: [{ type: 'text', text: `Error: ${err.message}` }],
410
- isError: true,
411
- };
412
- }
413
- });
440
+ catch (err) {
441
+ return {
442
+ content: [{ type: 'text', text: `Error: ${err.message}` }],
443
+ isError: true,
444
+ };
445
+ }
446
+ });
447
+ return server;
448
+ } // end createServer
414
449
  // ─── Start server ─────────────────────────────────────────────────────────────
415
450
  async function main() {
416
451
  const transport = new stdio_js_1.StdioServerTransport();
417
- await server.connect(transport);
452
+ await createServer().connect(transport);
418
453
  // Server runs until process exits — no console output here (stdio is used for MCP)
419
454
  }
420
455
  main().catch((err) => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@liqdlad/mcp-a2a-swap",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "MCP server for A2A-Swap — exposes swap, liquidity, and pool tools for AI agents on Solana",
5
5
  "author": "A2A-Swap Contributors",
6
6
  "license": "MIT",
7
7
  "homepage": "https://github.com/liqdlad-rgb/a2a-swap#readme",
8
8
  "repository": {
9
9
  "type": "git",
10
- "url": "https://github.com/liqdlad-rgb/a2a-swap.git",
10
+ "url": "git+https://github.com/liqdlad-rgb/a2a-swap.git",
11
11
  "directory": "mcp-a2a-swap"
12
12
  },
13
13
  "bugs": {