swap
Execute token swaps on the Alchemy MCP Server by providing owner and signer addresses to facilitate cryptocurrency exchanges.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ownerScaAccountAddress | Yes | The owner SCA account address. | |
| signerAddress | Yes | The signer address to send the transaction from. |
Implementation Reference
- index.ts:348-367 (handler)The execution handler for the 'swap' MCP tool, which invokes alchemyApi.swap, formats the JSON response, and handles errors.}, async (params) => { try { const result = await alchemyApi.swap(params); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }], }; } catch (error) { if (error instanceof Error) { console.error('Error in swap:', error); return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true }; } return { content: [{ type: "text", text: 'Unknown error occurred' }], isError: true }; } });
- types/types.d.ts:81-84 (schema)TypeScript interface defining the SwapParams input type for the swap tool.export interface SwapParams { ownerScaAccountAddress: string; signerAddress: string; }
- index.ts:345-348 (registration)MCP server registration of the 'swap' tool with Zod input schema validation.server.tool('swap', { ownerScaAccountAddress: z.string().describe('The owner SCA account address.'), signerAddress: z.string().describe('The signer address to send the transaction from.') }, async (params) => {
- api/alchemyApi.ts:183-211 (helper)Supporting function implementing the swap logic by POSTing to the agent wallet server endpoint.async swap(params: SwapParams) { const { ownerScaAccountAddress, signerAddress } = params; console.error('SWAPPING TOKENS'); try { const response = await fetch(`${AGENT_WALLET_SERVER}/transactions/swap`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ ownerScaAccountAddress, signerAddress }) }); console.error('SWAPPING TOKENS RESPONSE', response); if (!response.ok) { const errorData = await response.json(); throw new Error(errorData.error || `HTTP ${response.status}: ${response.statusText}`); } const result = await response.json(); return result.data; } catch (error) { console.error('Error in swap:', error); throw error; } }