UniswapTrader-MCP跨链交易工具
一个MCP服务器,用于AI代理在多个区块链上的Uniswap去中心化交易所自动进行代币交换。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"Uniswap-Trader-MCP": {
"args": [
"path/to/uniswap-trader-mcp/server/index.js"
],
"command": "node",
"env": {
"INFURA_KEY": "your infura key",
"WALLET_PRIVATE_KEY": "your private key"
}
}
}
}
该服务需要配置环境变量:INFURA_KEY、WALLET_PRIVATE_KEY
服务介绍
Uniswap Trader MCP
一个用于AI代理在多个区块链上自动化Uniswap DEX代币交换的MCP服务器。
功能
- 价格报价: 获取具有多跳路线优化的实时代币交换价格报价。
- 执行交换: 在Uniswap V3上执行带有可配置滑点容忍度和截止时间的交换。
- 交换建议: 根据流动性、费用和最优路径生成交易建议。
- 多链支持: 兼容以太坊、Optimism、Polygon、Arbitrum、Celo、BNB Chain、Avalanche和Base。
前提条件
- Node.js: 版本14.x或更高。
- npm: 用于包管理。
- 钱包: 一个拥有私钥的资金充足的钱包,用于执行交换。
- RPC端点: 对于支持的链访问区块链RPC URL(例如,Infura, Alchemy)。
安装
-
克隆仓库:
git clone https://github.com/kukapay/uniswap-trader-mcp.git cd uniswap-trader-mcp -
安装依赖:
npm install
配置
{
"mcpServers": {
"Uniswap-Trader-MCP": {
"command": "node",
"args": ["path/to/uniswap-trader-mcp/server/index.js"],
"env": {
"INFURA_KEY": "your infura key",
"WALLET_PRIVATE_KEY": "your private key"
}
}
}
}
使用
支持的链
支持以下区块链。确保每条链都在chainConfigs.js中配置了有效的RPC URL、WETH地址和SwapRouter地址。
| 链ID | 名称 | 备注 |
|---|---|---|
| 1 | 以太坊 | 主网,广泛用于Uniswap交易 |
| 10 | Optimism | 第二层,需要Optimism RPC |
| 137 | Polygon | 快速且低成本,使用MATIC作为原生代币 |
| 42161 | Arbitrum | 第二层,Arbitrum One网络 |
| 42220 | Celo | 移动优先区块链,使用CELO |
| 56 | BNB Chain | Binance智能链,使用BNB |
| 43114 | Avalanche | 高吞吐量,使用AVAX |
| 8453 | Base | Coinbase的第二层,基于Optimism构建 |
工具和提示
1. getPrice
获取Uniswap交换的价格报价。
模式:
chainId: 数字 (默认: 1)tokenIn: 字符串 (例如,"NATIVE"或代币地址)tokenOut: 字符串 (例如,"NATIVE"或代币地址)amountIn: 字符串 (可选, 对于"exactIn"是必需的)amountOut: 字符串 (可选, 对于"exactOut"是必需的)tradeType:"exactIn"或"exactOut"(默认:"exactIn")
示例提示:
Get me a price quote for swapping 1 ETH to DAI on Ethereum.
输出:
{
"chainId": 1,
"tradeType": "exactIn",
"price": "3000.50",
"inputAmount": "1.000000",
"outputAmount": "3000.50",
"minimumReceived": "2985.50",
"maximumInput": "1.005000",
"route": [
{
"tokenIn": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
"tokenOut": "0x6B175474E89094C44Da98b954EedeAC495271d0F",
"fee": 3000
}
],
"estimatedGas": "150000"
}
2. executeSwap
在Uniswap上执行交换。
模式:
chainId: 数字 (默认: 1)tokenIn: 字符串tokenOut: 字符串amountIn: 字符串 (可选, 对于"exactIn"是必需的)amountOut: 字符串 (可选, 对于"exactOut"是必需的)tradeType:"exactIn"或"exactOut"(默认:"exactIn")slippageTolerance: 数字 (默认: 0.5, 百分比)deadline: 数字 (默认: 20, 分钟)
示例提示:
Swap 1 ETH for DAI on Ethereum with a 0.5% slippage tolerance and a 20-minute deadline.
输出:
{
"chainId": 1,
"txHash": "0x1234...abcd",
"tradeType": "exactIn",
"amountIn": "1.000000",
"outputAmount": "2990.75",
"minimumReceived": "2985.50",
"maximumInput": "1.005000",
"fromToken": "NATIVE",
"toToken": "0x6B175474E89094C44Da98b954EedeAC495271d0F",
"route": [
{
"tokenIn": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
"tokenOut": "0x6B175474E89094C44Da98b954EedeAC495271d0F",
"fee": 3000
}
],
"gasUsed": "145000"
}
许可证
MIT许可证。详情请参见LICENSE。