Uniswap交易API服务器

一个基于Rust的MCP服务器,为AI客户端提供Uniswap交易API的报价服务。

  • by CJ42
  • Rust
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 CJ42/uniswap-mcp-server-rust

使用说明

🦄 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检查器。

  1. 输入以下值作为示例
"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)
  1. 点击“运行工具”按钮

学习步骤

  • [x] 带RMCP的stdio上的MCP服务器
  • [x] 通过Uniswap Trade API的异步报价工具
  • []让它运行时我可以输入不同的命令 (start, stop, unicorns)
  • []尝试使用 允许 web3图书馆 生锈。
  • []使用更多工具进行扩展(例如支持的链、令牌元数据)

许可证

看 LICENSE 在存储库中。