tapp_remove_single_amm_liquidity
Remove liquidity from a specified AMM position by burning share tokens and withdrawing tokens, ensuring minimum token amounts are met. Part of the Tapp Exchange MCP Server for decentralized exchange operations.
Instructions
Remove liquidity from a single AMM position
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| minAmount0 | Yes | Minimum amount of token0 | |
| minAmount1 | Yes | Minimum amount of token1 | |
| mintedShare | Yes | The amount of share tokens to burn | |
| poolId | Yes | The ID of the AMM pool | |
| positionAddr | Yes | The address of the liquidity position |
Implementation Reference
- src/mcp/tapp/liquidity-tools.ts:162-174 (handler)The handler function for the 'tapp_remove_single_amm_liquidity' MCP tool. It parses the input parameters and delegates to the TappAgent's removeSingleAMMLiquidity method, returning the transaction response.handler: async (agent: TappAgent, input: Record<string, any>) => { const result = await agent.removeSingleAMMLiquidity({ poolId: input.poolId, positionAddr: input.positionAddr, mintedShare: input.mintedShare, minAmount0: input.minAmount0, minAmount1: input.minAmount1 }); return { status: "success", transaction: result }; },
- Zod input schema defining the parameters for removing single AMM liquidity: poolId, positionAddr, mintedShare, minAmount0, minAmount1.schema: { poolId: z.string().describe("The ID of the AMM pool"), positionAddr: z.string().describe("The address of the liquidity position"), mintedShare: z.number().describe("The amount of share tokens to burn"), minAmount0: z.number().describe("Minimum amount of token0"), minAmount1: z.number().describe("Minimum amount of token1") },
- src/mcp/index.ts:48-48 (registration)Registration of the RemoveSingleAMMLiquidityTool (named 'tapp_remove_single_amm_liquidity') in the central TappExchangeMcpTools object used for MCP tool list."RemoveSingleAMMLiquidityTool": RemoveSingleAMMLiquidityTool,
- src/agent/index.ts:443-462 (helper)Supporting TappAgent method that generates the transaction payload via the Tapp SDK's Position.removeSingleAMMLiquidity and submits it using Aptos SDK.async removeSingleAMMLiquidity(params: RemoveSingleAMMLiquidityParams): Promise<TransactionResponse> { try { const data = this.sdk.Position.removeSingleAMMLiquidity(params); const response = await this.aptos.transaction.submit.simple({ sender: this.account.accountAddress, data: data } as any); return { hash: response.hash, success: true }; } catch (error) { return { hash: '', success: false, error: error instanceof Error ? error.message : 'Unknown error' }; } }