Skip to main content
Glama

Uniswap PoolSpy MCP Server

An MCP server that tracks newly created liquidity pools on Uniswap across nine blockchain networks — Ethereum, Base, Optimism, Arbitrum, Polygon, BNB Smart Chain (BSC), Avalanche, Celo, and Blast — providing real-time data for DeFi analysts, traders, and developers.

Python License Status

Features

  • Monitors Uniswap V3 pool creation across 9 blockchain networks.

  • Customizable time range and result limits for querying new pools.

  • Supports sorting by timestamp, transaction count, volume, or TVL.

Related MCP server: uniswap-trader-mcp

Prerequisites

  • Python 3.10 or higher

  • uv for package management

  • A valid The Graph API key

  • MCP-compatible environment (e.g., Claude Desktop) for full functionality

Installation

  1. Clone the Repository:

    git clone https://github.com/yourusername/uniswap-poolspy-mcp.git
    cd uniswap-poolspy-mcp
  2. Set Up Environment: Install uv if you haven't already:

    curl -LsSf https://astral.sh/uv/install.sh | sh
  3. Install Dependencies: Use uv to sync dependencies from pyproject.toml:

    uv sync
  4. Configure API Key: Create a .env file in the project root:

    echo "THEGRAPH_API_KEY=your-api-key-here" > .env

    Replace your-api-key-here with your actual The Graph API key.

Usage

Running the Server

Start the MCP server:

uv run main.py

For development with MCP Inspector:

uv run mcp dev main.py

Integrating with Claude Desktop

Install the server as an MCP plugin:

uv run mcp install main.py --name "UniswapPoolSpy"

Configuration

To make the server discoverable by MCP clients (e.g., Claude Desktop), configure it in an mcpServers file:

{
  "mcpServers": {
    "Uniswap-PoolSpy": {
      "command": "uv",
      "args": ["--directory", "path/to/uniswap-poolspy-mcp", "run", "main.py"],
      "env": {
        "THEGRAPH_API_KEY": "your api key from The Graph"
      }
    }
  }
}

Querying New Pools

Use the get_new_pools tool in Claude Desktop with natural language queries like:

  • "Show me new pools on Ethereum from the last 10 minutes"

  • "List pools on Base sorted by volume, limit to 50"

  • "What pools were created on Polygon in the past hour, ordered by TVL?"

The tool accepts these parameters:

  • chain: Blockchain network (e.g., "ethereum", "base", "optimism")

  • order_by: Sort field ("timestamp", "txcount", "volume", "tvl")

  • time_range_seconds: Lookback period in seconds (default: 300)

  • limit: Maximum number of pools to return (default: 100)

Example Output

Newly Created Trading Pools (Last 5 Minutes, Limit: 100):
Pool Address: 0x1234...abcd
Tokens: WETH/USDC
Created At: 2025-03-18 12:34:56
Block Number: 12345678
Transaction Count: 5
Volume (USD): 15000.25
Total Value Locked (USD): 50000.75

Pool Address: 0x5678...efgh
Tokens: DAI/USDT
Created At: 2025-03-18 12:33:45
Block Number: 12345670
Transaction Count: 3
Volume (USD): 8000.50
Total Value Locked (USD): 25000.00

Supported Chains

  • Ethereum

  • Base

  • Optimism

  • Arbitrum

  • Polygon

  • BNB Smart Chain (BSC)

  • Avalanche

  • Celo

  • Blast

License

This project is licensed under the MIT License - see the LICENSE file for details.

Available Tools

1 tool
get_new_poolsB

Returns a list of trading pools created in the specified time range on Uniswap V3.

Parameters: chain (str): The blockchain on which Uniswap is deployed. Default is 'ethereum'. Supported options include: 'ethereum', 'base', 'optimism', 'arbitrum', 'polygon', 'bsc', 'avalanche', 'celo' and 'blast'. order_by (str): The field to sort data in descending order before returning to the user. Default is 'timestamp'. Supported options include: - timestamp: Sort by Timestamp - txcount: Sort by Transaction Count - tvl: Sort by Total Value Locked - volume: Sort by Volume time_range_seconds (int): The time range in seconds to look back for new pools. Default is 300 seconds (5 minutes). limit (int): The maximum number of pools to return. Default is 100 pools.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainNoethereum
limitNo
order_byNotimestamp
time_range_secondsNo

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes a read-only operation ('returns a list') but lacks details on permissions, rate limits, error handling, or response format. For a tool with 4 parameters and no annotation coverage, this leaves significant behavioral gaps, though it minimally indicates a safe read operation.

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 well-structured and appropriately sized, with a clear purpose statement followed by a parameter breakdown. Each sentence adds value, and there is no redundant information. However, it could be slightly more front-loaded with key usage notes, preventing a perfect score.

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

Completeness3/5

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

Given 4 parameters, no annotations, and no output schema, the description is moderately complete. It covers parameter semantics thoroughly but lacks behavioral context (e.g., response format, error cases) and usage guidelines. For a read-only tool with moderate complexity, this is adequate but has clear gaps, aligning with a minimum viable description.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates by detailing all 4 parameters: 'chain', 'order_by', 'time_range_seconds', and 'limit'. It provides clear semantics, default values, supported options for 'chain' and 'order_by', and explanations of each parameter's role, adding substantial value beyond the bare schema.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Returns a list of trading pools created in the specified time range on Uniswap V3.' It specifies the verb ('returns'), resource ('trading pools'), and scope ('created in the specified time range on Uniswap V3'). However, with no sibling tools mentioned, it cannot demonstrate differentiation from alternatives, preventing a score of 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, prerequisites, or exclusions. It only lists parameters without contextual usage advice. While no sibling tools are specified, the description still lacks general usage context, such as typical scenarios or limitations.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool updatev1.0.0
    • First observedget_new_pools

TDQS

B3.4/5.0
Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The tool 'get_new_pools' has a single, clearly defined purpose: retrieving newly created Uniswap V3 pools within a specified time range.

Naming Consistency5/5

Since there is only one tool, naming consistency is inherently perfect. The tool name 'get_new_pools' follows a clear verb_noun pattern (get + new_pools), which would be consistent if more tools were added.

Tool Count2/5

A single tool is too few for a server named 'uniswap-poolspy-mcp', which suggests broader monitoring or analysis of Uniswap pools. This minimal toolset limits functionality to only retrieving new pools, lacking operations like querying existing pools, analyzing pool metrics, or tracking pool changes over time.

Completeness2/5

The tool surface is severely incomplete for the implied domain of Uniswap pool monitoring. While 'get_new_pools' covers discovery of new pools, there are significant gaps: no tools for getting pool details, tracking liquidity or volume trends, analyzing historical data, or performing CRUD-like operations on pool information, which agents would need for comprehensive analysis.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/kukapay/uniswap-poolspy-mcp'

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