Skip to content

Add Comprehensive Uniswap DEX MCP Server with Routing, Quoting, NLP Intents, and Transaction GenerationΒ #347

@WuodOdhis

Description

@WuodOdhis

🏷️ MCP Server Name

uniswap-mcp-server

πŸ—οΈ MCP Category

DeFi Protocol Integration

πŸ“ MCP Description

The uniswap-mcp-server provides a complete Uniswap DEX interface within the Vibekit MCP ecosystem. It enables token-to-token swap quoting, multi-hop route discovery, transaction generation, and natural-language intent processing. This MCP server is needed to allow agents and bots to programmatically interact with Uniswap pools, construct safe swap transactions, and automate trading workflows without manually handling routing, pool selection, or calldata generation.

🌐 Data Source/API

Data Source/API:

Uniswap v3/v4 Subgraph for pool and token data

Ethereum Mainnet RPC / Arbitrum RPC for on-chain state and transaction simulation

Uniswap Universal Router Contract for swap execution and multi-hop routing

πŸ”§ MCP Tools to Implement

MCP Tools to Implement:

getSwapQuote β€” Fetches swap quotes for token pairs (single-hop and multi-hop)

getBestRoute β€” Determines optimal swap route across pools and fee tiers

generateSwapTransaction β€” Builds transaction calldata for ExactIn / ExactOut swaps

processSwapIntent β€” Converts natural-language swap requests into executable intents

validateSwapFeasibility β€” Checks route availability, liquidity, and user balance before execution

πŸ€– Agent Integration Examples

  • An agent can call getSwapQuote to fetch the estimated output for a token swap before executing a trade.

  • Using getBestRoute, an agent can determine the most efficient multi-hop path to minimize slippage and fees.

  • generateSwapTransaction allows an agent to construct the exact calldata required for the swap, ready for submission to the blockchain.

  • Agents can leverage processSwapIntent to interpret user instructions like β€œSwap 1 ETH to USDC with minimal slippage” and execute the corresponding transaction automatically.

  • Before submitting a swap, agents can use validateSwapFeasibility to ensure sufficient liquidity, correct token addresses, and sufficient balance, preventing failed transactions.

πŸ” Authentication Requirements

No authentication required

βš™οΈ Configuration Options

ETHEREUM_RPC_URL β€” RPC endpoint for Ethereum Mainnet access

ARBITRUM_RPC_URL β€” RPC endpoint for Arbitrum L2 access

PRIVATE_KEY β€” Wallet private key for transaction signing

DEFAULT_SLIPPAGE_TOLERANCE β€” Slippage percentage for swaps

GAS_MULTIPLIER β€” Safety multiplier for gas estimation

SUPPORTED_TOKENS β€” List of token addresses the MCP server can quote and swap

MAX_TRANSACTION_AMOUNT β€” Optional cap on single-swap amounts for safety

πŸ§ͺ Testing Strategy

Unit Tests:

  • Verify getSwapQuote returns correct amounts for various token pairs

  • Validate route construction in getBestRoute for single-hop and multi-hop swaps

  • Test generateSwapTransaction outputs correct calldata for ExactIn/ExactOut swaps

  • Ensure processSwapIntent correctly parses natural-language intents

  • Confirm validateSwapFeasibility catches invalid tokens, insufficient balances, or low liquidity

Integration Tests:

  • Execute end-to-end swaps against testnet or forked mainnet to verify quotes, routes, and transaction generation

  • Simulate multi-hop swaps and check output matches expected results

  • Test wallet signing and transaction submission in a controlled environment

Performance Tests:

  • Measure latency for quote retrieval and route computation

  • Benchmark multi-hop route generation under different pool and token combinations

  • Ensure server handles multiple simultaneous agent requests without errors or slowdowns

βœ… Pre-submission Checklist

  • I have searched existing issues to avoid duplicates
  • I have clearly described the MCP server's functionality
  • I have identified the data source and API requirements
  • I will wait for the Vibekit team to approve this issue before continuing to implementation

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions