Skip to main content
Glama

prepare_uniswap_v3_increase_liquidity

DestructiveIdempotent

Adds liquidity to an existing Uniswap V3 LP position by tokenId. Generates unsigned transaction with chained approvals for wallet-owned positions only.

Instructions

Build an unsigned Uniswap V3 LP increaseLiquidity transaction — adds liquidity to an existing position identified by tokenId. Reads the position's (token0, token1, fee, tickLower, tickUpper) on-chain via positions(tokenId), so the caller only supplies the tokenId + amounts. Hard-refuses when the tokenId is not owned by wallet (the on-chain call would still succeed and route the deposit into someone else's position — the position owner gets the new liquidity). Use get_lp_positions to enumerate the wallet's tokenIds. Up to two ERC-20 approvals are chained ahead of the increaseLiquidity() call. v1 limitation: only WETH (not native ETH) is supported as a pair side; wrap ETH first via prepare_native_send to the WETH contract. Slippage defaults to 50 bps (0.5%); soft cap at 100 bps requires acknowledgeHighSlippage: true. Pass amount0Desired: "0" (or amount1Desired) for a single-sided range deposit when the current price is outside the position's range.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
walletYes
chainNoethereum
tokenIdYesERC-721 tokenId of the Uniswap V3 LP NFT to add liquidity to. The position must be owned by `wallet` — the builder reads ownerOf(tokenId) and refuses if it doesn't match. Use `get_lp_positions` to enumerate the wallet's tokenIds.
amount0DesiredYesHuman-readable decimal amount of the position's token0 to add. NOT raw wei. Pass "0" for a single-sided range deposit when the current price is outside the position's range.
amount1DesiredYesHuman-readable decimal amount of the position's token1. Same shape as amount0Desired.
slippageBpsNoSlippage tolerance in basis points (1 bp = 0.01%). Default 50 bps (0.5%). Hard ceiling 500 bps; soft cap 100 bps requires acknowledgeHighSlippage: true.
acknowledgeHighSlippageNoRequired when slippageBps is in (100, 500]. Surface the trade-off to the user before proceeding.
deadlineSecNoSeconds from now until the on-chain `deadline` parameter expires. Default 1200 (20 min).
approvalCapNoCap on the ERC-20 approval preceding this action. Omit for "unlimited" (standard DeFi UX — fewer follow-up approvals). Pass "exact" to approve only what this action pulls. Pass a decimal string (e.g. "500") for a specific ceiling in the asset's human units; must be ≥ the action amount, otherwise the transaction would revert.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behaviors: on-chain position reading via positions(tokenId), hard refusal for non-owned tokenIds, automatic chaining of ERC-20 approvals, WETH-only limitation, slippage defaults and caps, and the ability to do single-sided deposits. Annotations already indicate readOnlyHint false, destructiveHint true, idempotentHint true, and the description adds significant context beyond these, such as the refusal mechanism and approval chaining. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is informative and well-structured, starting with the main purpose, then explaining mechanics, warnings, limitations, and parameter details. Each sentence adds value, but it is slightly lengthy (6 sentences). It could be more concise by combining some points, but it remains clear and front-loaded. No redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (9 parameters, no output schema, annotations present), the description covers all critical aspects: purpose, when to use, preconditions, limitations, parameter behaviors, defaults, side effects (approvals), and related tools. The lack of output schema explanation is acceptable since the output is an unsigned transaction implied by 'build'. It addresses potential pitfalls (non-owned tokenId, WETH only) and provides enough context for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 78% of parameters with descriptions, providing a solid baseline. The description adds extra meaning: for tokenId, it recommends get_lp_positions; for amount0Desired/amount1Desired, it explains the '0' case for single-sided deposits; for slippageBps, it states default and combination with acknowledgeHighSlippage; for deadlineSec, it gives default; for approvalCap, it details options. This additional context compensates for the missing schema descriptions on wallet and chain (which are standard).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool builds an unsigned Uniswap V3 increaseLiquidity transaction for an existing position. It specifies the verb 'Build', the resource 'unsign Uniswap V3 LP increaseLiquidity transaction', and explicitly distinguishes from siblings like prepare_uniswap_v3_mint by focusing on adding liquidity to an existing position. It mentions related tools (get_lp_positions) and sets clear context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: when to use (add liquidity to existing position), preconditions (tokenId must be owned by wallet, use get_lp_positions), limitations (only WETH, wrap native ETH via prepare_native_send), and parameter nuances (slippage defaults, soft cap requiring acknowledgeHighSlippage, single-sided deposit with amount0Desired: '0'). It effectively tells when not to use (non-owned tokenId) and directs to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/szhygulin/recon-crypto-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server