Aerodrome Swap MCP Server
This is a Model Context Protocol (MCP) server that provides integration with the Aerodrome Swap API. It allows users to interact with Aerodrome's decentralized exchange functionality through the MCP framework.
Features
- Interact with Aerodrome Swap API
- Support for token swaps
- Pool information retrieval
- Price information retrieval
- Quote generation
Prerequisites
- Python 3.8+
- Conda environment activated
Installation
# Clone the repository
git clone <repository-url>
cd aerodrome-swap-mcp
# Install dependencies
pip install -r requirements.txt
Usage
# Start the MCP server
uvx aerodrome-swap-mcp
Or alternatively, you can install and run it locally:
# Install the package
pip install -e .
# Start the MCP server
aerodrome-swap-mcp
API Reference
This MCP server provides the following tools for interacting with the Aerodrome Swap API:
Token Operations
-
get_tokens - Get all tokens with optional filtering
target(str, optional): The target blockchain, "base", "aero", "optimistic-ethereum", "velo". Defaults to "aero".limit(int, optional): Max tokens to return (1-1000, default: 100). Defaults to 100.offset(int, optional): Skip tokens for pagination (default: 0). Defaults to 0.listed_only(bool, optional): Only return listed tokens. Defaults to False.
-
get_token_by_address - Get detailed information about a specific token.
address(str): The token address.target(str, optional): The target blockchain, "base", "aero", "optimistic-ethereum", "velo". Defaults to "aero".
-
get_tokens_batch - Get information for multiple tokens in a single request. Useful for efficiently fetching data for token lists.
addresses(List[str]): The list of token addresses to retrieve information for.target(str, optional): The target blockchain, "base", "aero", "optimistic-ethereum", "velo". Defaults to "aero".
-
search_tokens - Search for tokens by symbol or address. This is useful for token selection in UI components.
query(str): Search term (symbol or address).target(str, optional): The target blockchain, "base", "aero", "optimistic-ethereum", "velo". Defaults to "aero".limit(int, optional): Max results (1-50, default: 10)
Price Operations
-
get_prices - Get current token prices. This endpoint is optimized for high-frequency price queries with intelligent caching.
target(str, optional): The target blockchain, "base", "aero", "optimistic-ethereum", "velo". Defaults to "aero".limit(int, optional): limit (int, optional): Max pools to return (1-1000, default: 100). Only worked when "symbols" is empty. Defaults to 50.offset(int, optional): Skip pools for pagination (default: 0). Only worked when "symbols" is empty. Defaults to 0.symbols(Optional[List[str]], optional): The token symbols to filter prices by. When "symbols" is set, "limit" and "offset" are ignored. Exp, "AERO,USDC". Defaults to None.
-
get_price_by_address - Get price for a specific token.
address(str): The token address.target(str, optional): The target blockchain, "base", "aero", "optimistic-ethereum", "velo". Defaults to "aero".
Pool Operations
-
get_pools - Get a list of Aerodrome pools
target(str, optional): The target blockchain, "base", "aero", "optimistic-ethereum", "velo". Defaults to "aero".limit(int, optional): Max pools to return (1-1000, default: 100). Defaults to 100.offset(int, optional): Skip pools for pagination (default: 0). Defaults to 0.token(Optional[str], optional): The token address to filter pools by. Defaults to None.
-
get_pools_detailed - Get detailed pool information with TVL, APR, volume, fees, and voting rewards
target(str, optional): The target blockchain, "base", "aero", "optimistic-ethereum", "velo". Defaults to "aero".limit(int, optional): Max pools to return (1-1000, default: 100). Defaults to 100.offset(int, optional): Skip pools for pagination (default: 0). Defaults to 0.sort_by(str, optional): The field to sort by, must be one of: tvl, apr, volume, fees. Defaults to "tvl".symbol(Optional[str], optional): The pool symbol. Defaults to None.min_tvl(Optional[int], optional): The minimum TVL to filter pools by. Defaults to None.
-
get_pool_by_address - Get detailed information about a specific pool by address.
address(str): The address of the pool.token0(Optional[str], optional): The token0 address to filter pools by. Defaults to None.target(str, optional): The target blockchain, "base", "aero", "optimistic-ethereum", "velo". Defaults to "aero".
-
search_pools - Search for pools by token pair and other criteria. At least one token address is required.
token0(Optional[str], optional): The token0 address to filter pools by. Defaults to None.token1(Optional[str], optional): The token1 address to filter pools by. Defaults to None.target(str, optional): The target blockchain, "base", "aero", "optimistic-ethereum", "velo". Defaults to "aero".
Swap Operations
-
get_quote - Get quotes for Aerodrome
from_token(str): Token to swap from (contract address)to_token(str): Token to swap to (contract address)amount(int): Amount to swap (in token units, not wei)target(str, optional): The target blockchain, "base", "aero", "optimistic-ethereum", "velo". Defaults to "aero".
-
build_swap - Simulates transaction (customer needs to approve on their end)
from_token(str): Token to swap from (contract address)to_token(str): Token to swap to (contract address)amount(str): Amount to swap (in token units, not wei)wallet_address(str): Wallet address to execute swap.target(str, optional): The target blockchain, "base", "aero", "optimistic-ethereum", "velo". Defaults to "aero".slippage(float, optional): Slippage tolerance (0.001-0.5, default: 0.005)
-
get_transaction - Get transaction after swap.
tx_hash(str): Transaction hash.target(str, optional): The target blockchain. Defaults to "aero".
Development
To contribute to this project:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
Metadata
Release files for aerodrome-swap-mcp 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aerodrome_swap_mcp-0.1.1.tar.gz | 11.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aerodrome_swap_mcp-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.5 kB
Release files / aerodrome_swap_mcp-0.1.1.tar.gz
| Download URL | aerodrome_swap_mcp-0.1.1.tar.gz |
|---|---|
| Size | 11.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
810de5c328e89c9964a01d070f5b8c4ac70d0e54c7bad71a59914e90d8f8fc14
|
|
BLAKE2b-256 checksum How to use checksums |
2e49667f478b7e97e486df9e6322ec7acbe9a5e1a3bb32ad81e7ad308fcfefd5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.0
|
Release files / aerodrome_swap_mcp-0.1.1-py3-none-any.whl
| Download URL | aerodrome_swap_mcp-0.1.1-py3-none-any.whl |
|---|---|
| Size | 9.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ff4f75ce6f26bc7ccf70a95fb8a7cae4401716a59766e5ee8d3c00b9d447cd3a
|
|
BLAKE2b-256 checksum How to use checksums |
d08772c148fff5f3eee23c21095940b03eb46d41de1ea79b284134a909595a94
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.0
|