build_lp_claim_fees
Build the calldata to claim accumulated trading fees from a V3 or V4 LP position. POSTs to `/v1/lp/claim_fees` with the wallet, protocol, and the position's NFT token id. Returns the raw `/lp/claim_fees` response — the unsigned transaction fields the caller's wallet signs and submits. The integration spec called the path `/lp/claim`; the actual Uniswap API endpoint is `/lp/claim_fees`, so the tool follows the docs. V2 positions are not supported (V2 fees auto-compound into the LP token balance). The Putty dashboard signs through the user's Privy embedded wallet in the sign-request modal; external agents sign with their own wallet. The tool never holds a signing key.
Build the calldata to claim accumulated trading fees from a V3 or V4 LP position. POSTs to /v1/lp/claim_fees with the wallet, protocol, and the position's NFT token id.
Input
The tool takes a single JSON object. Every field, its type, and an example are on the generated reference at GET /mcp/tools, under this tool's name.
Calling it
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": { "name": "build_lp_claim_fees", "arguments": {} }
}Put your arguments in place of the empty object. A call that fails comes back as a normal result carrying isError: true and a message naming what went wrong, not as a JSON-RPC protocol error.
Notes
Returns the raw /lp/claim_fees response — the unsigned transaction fields the caller's wallet signs and submits. The integration spec called the path /lp/claim; the actual Uniswap API endpoint is /lp/claim_fees, so the tool follows the docs. V2 positions are not supported (V2 fees auto-compound into the LP token balance). The Putty dashboard signs through the user's Privy embedded wallet in the sign-request modal; external agents sign with their own wallet. The tool never holds a signing key.
The full request and response shape, and a live playground, live on the generated reference at GET /mcp/tools.
build_lp_decrease_position
Build the calldata to remove liquidity from an existing V2, V3, or V4 LP position. POSTs to `/v1/lp/decrease` with the wallet, position identifier (NFT token id for V3/V4, token pair for V2), and the percentage of liquidity to remove. The server derives all position state from on-chain data. Returns the raw `/lp/decrease` response — the unsigned transaction fields the caller's wallet signs and submits. The Putty dashboard signs through the user's Privy embedded wallet in the sign-request modal; external agents sign with their own wallet. The tool never holds a signing key.
get_token_price
Fetch a token's spot price by asking the Uniswap API for a 100 USDC -> token quote and dividing. The Uniswap API does not expose a direct price endpoint, so the /quote derivation is the only path. Returns `{ pricePerToken, quoteToken, amountIn: 100, currency: USD }`. The derivation has known limits: a token with less than ~100 USDC of liquidity may return a partial price; UniswapX routes have a minimum swap value (300 USDC on Ethereum, 1000 USDC on L2s) and the call may fail below those thresholds. Defaults `quoteToken` to canonical USDC on Ethereum and Base; Robinhood does not have a canonical USDC, so callers on Robinhood must pass `quoteToken` explicitly. The `currency` label is `USD` because the helper assumes the quote token is a USD-pegged stablecoin.