# Uniswap V3 > On-chain contract: Uniswap V3. 17 functions, 0 events. MCP endpoint: https://uniswap.mcp.junct.dev/mcp Domain: dex Auth: none ## Tools ### WETH9 Calls WETH9(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns address. _No parameters required._ ### exactInput Calls exactInput(params: { path: string, recipient: string, deadline: string, amountIn: string, amountOutMinimum: string }). Requires ETH value to be sent with the transaction. Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. Returns amountOut (uint256). **Parameters:** - `params` (object, required): tuple. Fields: path, recipient, deadline, amountIn, amountOutMinimum. ### exactInputSingle Calls exactInputSingle(params: { tokenIn: string, tokenOut: string, fee: string, recipient: string, deadline: string, amountIn: string, amountOutMinimum: string, sqrtPriceLimitX96: string }). Requires ETH value to be sent with the transaction. Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. Returns amountOut (uint256). **Parameters:** - `params` (object, required): tuple. Fields: tokenIn, tokenOut, fee, recipient, deadline, amountIn, amountOutMinimum, sqrtPriceLimitX96. ### exactOutput Calls exactOutput(params: { path: string, recipient: string, deadline: string, amountOut: string, amountInMaximum: string }). Requires ETH value to be sent with the transaction. Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. Returns amountIn (uint256). **Parameters:** - `params` (object, required): tuple. Fields: path, recipient, deadline, amountOut, amountInMaximum. ### exactOutputSingle Calls exactOutputSingle(params: { tokenIn: string, tokenOut: string, fee: string, recipient: string, deadline: string, amountOut: string, amountInMaximum: string, sqrtPriceLimitX96: string }). Requires ETH value to be sent with the transaction. Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. Returns amountIn (uint256). **Parameters:** - `params` (object, required): tuple. Fields: tokenIn, tokenOut, fee, recipient, deadline, amountOut, amountInMaximum, sqrtPriceLimitX96. ### factory Calls factory(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns address. _No parameters required._ ### multicall Calls multicall(data: string[]). Requires ETH value to be sent with the transaction. Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. Returns results (bytes[]). **Parameters:** - `data` (array, required): bytes[] (hex-encoded bytes, 0x-prefixed). ### refundETH Calls refundETH(). Requires ETH value to be sent with the transaction. Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value. _No parameters required._ ### selfPermit Calls selfPermit(token: string, value: string, deadline: string, v: string, r: string, s: string). Requires ETH value to be sent with the transaction. Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value. **Parameters:** - `token` (string, required): address (Ethereum address, 0x-prefixed). - `value` (string, required): uint256 (uint256, pass as decimal string). - `deadline` (string, required): uint256 (uint256, pass as decimal string). - `v` (string, required): uint8 (uint8, pass as decimal string). - `r` (string, required): bytes32 (32-byte hex string, 0x-prefixed). - `s` (string, required): bytes32 (32-byte hex string, 0x-prefixed). ### selfPermitAllowed Calls selfPermitAllowed(token: string, nonce: string, expiry: string, v: string, r: string, s: string). Requires ETH value to be sent with the transaction. Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value. **Parameters:** - `token` (string, required): address (Ethereum address, 0x-prefixed). - `nonce` (string, required): uint256 (uint256, pass as decimal string). - `expiry` (string, required): uint256 (uint256, pass as decimal string). - `v` (string, required): uint8 (uint8, pass as decimal string). - `r` (string, required): bytes32 (32-byte hex string, 0x-prefixed). - `s` (string, required): bytes32 (32-byte hex string, 0x-prefixed). ### selfPermitAllowedIfNecessary Calls selfPermitAllowedIfNecessary(token: string, nonce: string, expiry: string, v: string, r: string, s: string). Requires ETH value to be sent with the transaction. Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value. **Parameters:** - `token` (string, required): address (Ethereum address, 0x-prefixed). - `nonce` (string, required): uint256 (uint256, pass as decimal string). - `expiry` (string, required): uint256 (uint256, pass as decimal string). - `v` (string, required): uint8 (uint8, pass as decimal string). - `r` (string, required): bytes32 (32-byte hex string, 0x-prefixed). - `s` (string, required): bytes32 (32-byte hex string, 0x-prefixed). ### selfPermitIfNecessary Calls selfPermitIfNecessary(token: string, value: string, deadline: string, v: string, r: string, s: string). Requires ETH value to be sent with the transaction. Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value. **Parameters:** - `token` (string, required): address (Ethereum address, 0x-prefixed). - `value` (string, required): uint256 (uint256, pass as decimal string). - `deadline` (string, required): uint256 (uint256, pass as decimal string). - `v` (string, required): uint8 (uint8, pass as decimal string). - `r` (string, required): bytes32 (32-byte hex string, 0x-prefixed). - `s` (string, required): bytes32 (32-byte hex string, 0x-prefixed). ### sweepToken Calls sweepToken(token: string, amountMinimum: string, recipient: string). Requires ETH value to be sent with the transaction. Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value. **Parameters:** - `token` (string, required): address (Ethereum address, 0x-prefixed). - `amountMinimum` (string, required): uint256 (uint256, pass as decimal string). - `recipient` (string, required): address (Ethereum address, 0x-prefixed). ### sweepTokenWithFee Calls sweepTokenWithFee(token: string, amountMinimum: string, recipient: string, feeBips: string, feeRecipient: string). Requires ETH value to be sent with the transaction. Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value. **Parameters:** - `token` (string, required): address (Ethereum address, 0x-prefixed). - `amountMinimum` (string, required): uint256 (uint256, pass as decimal string). - `recipient` (string, required): address (Ethereum address, 0x-prefixed). - `feeBips` (string, required): uint256 (uint256, pass as decimal string). - `feeRecipient` (string, required): address (Ethereum address, 0x-prefixed). ### uniswapV3SwapCallback Calls uniswapV3SwapCallback(amount0Delta: string, amount1Delta: string, _data: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value. **Parameters:** - `amount0Delta` (string, required): int256 (int256, pass as decimal string). - `amount1Delta` (string, required): int256 (int256, pass as decimal string). - `_data` (string, required): bytes (hex-encoded bytes, 0x-prefixed). ### unwrapWETH9 Calls unwrapWETH9(amountMinimum: string, recipient: string). Requires ETH value to be sent with the transaction. Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value. **Parameters:** - `amountMinimum` (string, required): uint256 (uint256, pass as decimal string). - `recipient` (string, required): address (Ethereum address, 0x-prefixed). ### unwrapWETH9WithFee Calls unwrapWETH9WithFee(amountMinimum: string, recipient: string, feeBips: string, feeRecipient: string). Requires ETH value to be sent with the transaction. Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value. **Parameters:** - `amountMinimum` (string, required): uint256 (uint256, pass as decimal string). - `recipient` (string, required): address (Ethereum address, 0x-prefixed). - `feeBips` (string, required): uint256 (uint256, pass as decimal string). - `feeRecipient` (string, required): address (Ethereum address, 0x-prefixed). ## Usage Connect to this MCP server at `https://uniswap.mcp.junct.dev/mcp`. All tools are callable via the MCP protocol. Call `WETH9` first to query current state before any write operations. Write operations like `exactInput` return data or calldata for agent use.