🦄 Uniswap MCP服务器生锈🦀
Rust中的MCP(模型上下文协议)服务器,它公开 Uniswap Trade API 报价作为AI客户的工具。使用官方Rust SDK构建 RMCP (rmcp 在crates.io上)。
先决条件
- 防锈工具链(
cargo,rustc) - Uniswap 贸易API 密钥为
UNISWAP_API_KEY(参见 Uniswap文档)
配置
创建一个 .env 文件旁边 Cargo.toml (或导出shell中的变量):
UNISWAP_API_KEY=your_key_here服务器加载 .env 在启动时使用crate manifest目录,因此当MCP主机从另一个工作目录运行二进制文件时,它可以工作。
构建
cargo build --release运作原理
- 运输: stdio(本地MCP的标准:主机生成此进程,并通过stdin/stdout发出JSON-RPC)。
- SDK:
rmcp和server+transport-io. - 工具:
uniswap_swap_quote--电话POST https://trade-api.gateway.uniswap.org/v1/quote使用API键,并返回JSON引号(打印前的文本)。使用token_in_preset选择您在以太坊主网上出售的资产,而无需键入地址:native_eth,usdc,usdt,wbtc,dai,weth。如果设置了预设,它将覆盖token_in;否则通过一个完整的token_in地址。
异步运行时: 东京 (RMCP和 reqwest).
与MCP客户端一起使用
将MCP主机指向已编译的二进制文件。示例 光标 (.cursor/mcp.json 或全局MCP设置):
{
"mcpServers": {
"uniswap": {
"command": "/absolute/path/to/uniswap-api-rust/target/release/uniswap-mcp-server-rust",
"env": {
"UNISWAP_API_KEY": "your_key_here"
}
}
}
}你可以省略 env 如果 UNISWAP_API_KEY 已经在环境中了。
要使用官方检查器进行调试(请参阅RMCP示例):
npx @modelcontextprotocol/inspector /absolute/path/to/target/debug/uniswap-mcp-server-rust测试示例
运行上一节中的命令,并在浏览器中打开MCP检查器。
- 输入以下值作为示例
"tokenIn": "0x0000000000000000000000000000000000000000", // ETH
"tokenOut": "0xdAC17F958D2ee523a2206206994597C13D831ec7", // USDT
"tokenInChainId": 1,
"tokenOutChainId": 1,
"type": "EXACT_INPUT",
"amount": "1000000000000000000", // 1 ETH in wei
"swapper": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", // User's wallet address (vitalik.eth)- 点击“运行工具”按钮
学习步骤
- \[x\] 带RMCP的stdio上的MCP服务器
- \[x\] 通过Uniswap Trade API的异步报价工具
- \[\]让它运行时我可以输入不同的命令
(start, stop, unicorns)
- \[\]尝试使用 [允许 web3图书馆
生锈。](https://github.com/alloy-rs)
- \[\]使用更多工具进行扩展(例如支持的链、令牌元数据)
许可证
看 LICENSE 在存储库中。
