uniswap-poolspy-mcp
# 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.



## 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.
## Prerequisites
- Python 3.10 or higher
- [uv](https://github.com/astral-sh/uv) for package management
- A valid [The Graph API key](https://thegraph.com/studio/apikeys/)
- MCP-compatible environment (e.g., Claude Desktop) for full functionality
## Installation
1. **Clone the Repository**:
```bash
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:
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
3. **Install Dependencies**:
Use `uv` to sync dependencies from `pyproject.toml`:
```bash
uv sync
```
4. **Configure API Key**:
Create a `.env` file in the project root:
```bash
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:
```bash
uv run main.py
```
For development with MCP Inspector:
```bash
uv run mcp dev main.py
```
### Integrating with Claude Desktop
Install the server as an MCP plugin:
```bash
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:
```json
{
"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](LICENSE) file for details.
TDQS
Scored across 1 tool
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.
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.
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.
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.