Paloma DEX MCP服务器
一个模型上下文协议(MCP)服务器,使AI代理能够在7个EVM链上与Paloma DEX交互。采用FastMCP框架构建,用于现代MCP实现。
概述
该MCP服务器为AI代理提供了访问区块链数据的工具,并为Paloma DEX上的去中心化交易操作做好准备。该服务器支持跨以太坊、Arbitrum、Optimism、Base、BSC、Polygon和Gnosis链的跨链功能。
特性
可用工具
区块链数据访问
get_account_info:获取所有链上的帐户地址和本机令牌余额get_pusd_balance:获取特定链上的PUSD代币余额get_chain_info:获取特定区块链的详细信息list_supported_chains:列出所有支持的链及其配置get_address_balances:获取所有链上任何以太坊地址的余额
ETF交易工具
get_etf_tokens:在特定链上获取可用的ETF代币get_etf_price:获取ETF代币的买卖价格(按EVM地址)get_etf_price_by_symbol:按代币符号获取ETF价格(推荐)get_etf_price_by_paloma_denom:按Paloma面额获取ETF价格get_etf_balance:获取钱包地址的ETF代币余额buy_etf_token:使用输入代币购买ETF代币(模拟)sell_etf_token:将ETF代币卖回基础货币(模拟)
链支持
支持Paloma DEX使用的所有7个EVM链:
- 以太坊主网 (链ID:1)
- Arbitrum One (链ID:42161)
- 乐观主义 (链ID:10)
- 基础 (链ID:8453)
- BNB智能链 (链ID:56)
- 多边形 (链ID:137)
- 真知 (链ID:100)
关键能力
- 多链数据访问:查询所有7个支持链的余额和链信息
- ETF交易支持:与Paloma DEX API完成ETF代币生态系统集成
- FastMCP框架:采用现代MCP实现,性能更佳
- Web3集成:通过Web3客户端直接进行区块链交互
- 交易模拟:执行前交易操作的安全模拟
- 错误处理:全面的错误管理和验证
- 地址验证:以太坊地址格式验证
- 合同集成:与PUSD和ETF连接器合约集成
安装
- 克隆存储库:
git clone https://github.com/Cieloc/mcpPADEX.git
cd mcpPADEX- 安装依赖项 使用 紫外线:
uv sync配置
- 设置环境变量:
cp .env.example .env- 配置您的
.env文件 具有以下必需变量:
# REQUIRED: Your private key for transaction signing
# WARNING: Keep this secure and never commit to version control
PRIVATE_KEY=your_private_key_here
# Contract addresses for each chain (obtain from Paloma DEX)
PUSD_TOKEN_ETH=
PUSD_CONNECTOR_ETH=
ETF_CONNECTOR_ETH=
# ... (repeat for all chains)
# Optional: Moralis API key for enhanced features
MORALIS_SERVICE_API_KEY=your_moralis_api_key_here- 获取合同地址 来自Paloma DEX文档或团队:
- PUSD令牌地址 - PUSD连接器地址 - ETF连接器地址
用法
运行服务器
uv run padex.py服务器将通过stdin/stdout启动并监听MCP协议消息。
工具示例
获取帐户信息
{
"tool": "get_account_info",
"arguments": {}
}获取PUSD余额
{
"tool": "get_pusd_balance",
"arguments": {
"chain_id": "1"
}
}获取链信息
{
"tool": "get_chain_info",
"arguments": {
"chain_id": "42161"
}
}列出所有支持的链
{
"tool": "list_supported_chains",
"arguments": {}
}获取地址余额
{
"tool": "get_address_balances",
"arguments": {
"address": "0x742d35Cc6648C4532b6C4EC000e40fd94aea4966"
}
}获取可用的ETF代币
{
"tool": "get_etf_tokens",
"arguments": {
"chain_id": "1"
}
}获取ETF代币价格(按EVM地址)
{
"tool": "get_etf_price",
"arguments": {
"chain_id": "1",
"etf_token_address": "0x1234567890123456789012345678901234567890"
}
}按交易品种获取ETF价格(推荐)
{
"tool": "get_etf_price_by_symbol",
"arguments": {
"symbol": "PAGOLD"
}
}按Paloma面额获取ETF价格
{
"tool": "get_etf_price_by_paloma_denom",
"arguments": {
"paloma_denom": "factory/paloma18xrvj2ffxygkmtqwf3tr6fjqk3w0dgg7m6ucwx/palomagold"
}
}获取ETF代币余额
{
"tool": "get_etf_balance",
"arguments": {
"chain_id": "1",
"etf_token_address": "0x1234567890123456789012345678901234567890",
"wallet_address": "0x742d35Cc6648C4532b6C4EC000e40fd94aea4966"
}
}购买ETF代币(模拟)
{
"tool": "buy_etf_token",
"arguments": {
"chain_id": "1",
"etf_token_address": "0x1234567890123456789012345678901234567890",
"input_token_address": "native",
"input_amount": "1.0",
"slippage": 2.0
}
}出售ETF代币(模拟)
{
"tool": "sell_etf_token",
"arguments": {
"chain_id": "1",
"etf_token_address": "0x1234567890123456789012345678901234567890",
"etf_amount": "10.0"
}
}建筑
核心组件
padex.py:使用FastMCP框架的主MCP服务器实现main.py:简单入口点(Hello World)- FastMCP框架:具有生命周期管理的现代MCP服务器实施
- 链构型:所有7个受支持链的完整配置
- Web3客户端:每个区块链都有单独的Web3连接
体系结构模式
服务器使用FastMCP的生命周期上下文管理:
@asynccontextmanager
async def paloma_dex_lifespan(server: FastMCP) -> AsyncIterator[PalomaDEXContext]:
# Initialize Web3 clients and resources
yield context
# Cleanup resources安全考虑
⚠️ 重要安全注意事项:
- 私钥存储在环境变量中
- 确保您的
.env文件从未提交到版本控制 - 这
.gitignore文件排除.env默认情况下 - 考虑在生产环境中采用更为安全的密钥管理
依赖项
- mcp\[cli\]:使用FastMCP框架的模型上下文协议
- web3:以太坊区块链交互
- eth账户:私钥和交易签名
- eth abi:合约调用的ABI编码
- httpx:用于API交互的HTTP客户端
- python dotenv:环境变量管理
API集成
服务器与以下设备集成:
- 区块链RPC端点:直接连接到每个受支持的链
- ERC-20代币合约:用于PUSD和ETF代币余额查询
- 帕洛玛DEX API:ETF代币数据和定价的实时集成
- ETF连接器合约:ETF交易操作的智能合约
发展
项目结构
mcpPADEX/
├── padex.py # Main FastMCP server implementation
├── padex_old.py # Previous implementation (backup)
├── main.py # Simple entry point
├── pyproject.toml # Project dependencies
├── .env # Environment variables (not committed)
├── .gitignore # Git ignore rules
├── MCP_DOCUMENTATION.md # MCP protocol reference
├── MCP_PYTHON_SDK_REFERENCE.md # FastMCP SDK reference
├── mcp-llms-full-reference.txt # Complete MCP reference
└── README.md # This file添加新功能
服务器使用FastMCP装饰器以便于扩展:
@mcp.tool()
async def new_tool(ctx: Context, param: str) -> str:
"""Tool description"""
# Implementation
return result
@mcp.resource("resource://pattern/{id}")
async def new_resource(id: str) -> str:
"""Resource description"""
# Implementation
return data贡献
欢迎投稿!请随时提交拉取请求。
许可证
这个项目是开源的。请检查许可证文件以了解详细信息。
免责声明
本软件按“原样”提供,不提供保修。交易加密货币涉及损失风险。使用风险由您自行承担,并确保您在部署前了解自动交易的影响。
支持
有关Paloma DEX集成的问题,请咨询 Paloma DEX文件 或者联系Paloma团队。
有关MCP的问题,请参阅 模型上下文协议文档.
