Token导航 LogoToken导航TokenDH.com
Rust Eth MCP logo
金融服务未说明官方级别未说明来源级核验

Rust Eth MCP

MCP Server

一个基于Rust构建的模型上下文协议(MCP)服务器,使AI代理能够查询以太坊上的余额并执行代币交换模拟。

工具数

3

提示词数

0

GitHub Stars

0

资源数

0
Rust区块链金融数据

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

uu-z

提供方

uu-z

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

以太坊交易MCP服务器

Rust内置的模型上下文协议(MCP)服务器,使AI代理能够查询以太坊上的余额并执行代币交换。

特性

  • get_balance -查询任何地址的ETH和ERC20代币余额
  • get_token_price -通过Uniswap获取美元或以太坊的实时代币价格
  • swap_tomates -使用气体估计模拟Uniswap V2代币交换(仅模拟,不在链上执行)

技术栈

  • 使用异步运行时(tokio)
  • 合金 -Rust以太坊库
  • RMCP -Rust模型上下文协议SDK
  • Uniswap V2 -DEX集成用于价格报价和掉期模拟
  • rust_decimal -用于金融计算的高精度十进制算法

设置

先决条件

  • 锈蚀1.70+(cargo --version)
  • 以太坊RPC端点(Infura、Alchemy或公共端点)

安装

  1. 克隆存储库:
git clone https://github.com/uu-z/rust-eth-mcp
cd rust-eth-mcp
  1. 设置环境变量:
cp .env.example .env
# Edit .env with your RPC URL (optional, defaults to public endpoint)
  1. 构建项目:
cargo build --release
  1. 运行服务器:
cargo run --release

服务器将于启动 http://127.0.0.1:8000/mcp

环境变量

  • ETH_RPC_URL -以太坊RPC端点(默认值:https://eth.llamarpc.com)
  • PRIVATE_KEY -用于交易签名的私钥(可选,用于未来的链上执行)
  • RUST_LOG -日志级别(默认值:info)

使用示例

MCP工具调用

1.获取ETH余额

请求:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_balance",
    "arguments": {
      "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
    }
  }
}

答复:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{\"address\":\"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\",\"balance\":\"1.234567890123456789\",\"symbol\":\"ETH\",\"raw_balance\":\"1234567890123456789\"}"
      }
    ],
    "isError": false
  }
}

2.获取ERC20代币余额

请求:

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "get_balance",
    "arguments": {
      "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
      "token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
    }
  }
}

答复:

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{\"address\":\"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\",\"token\":\"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\"symbol\":\"USDC\",\"balance\":\"1000.500000\",\"decimals\":6,\"raw_balance\":\"1000500000\"}"
      }
    ],
    "isError": false
  }
}

3.获取代币价格

请求:

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "get_token_price",
    "arguments": {
      "token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
      "quote": "ETH"
    }
  }
}

答复:

{
  "jsonrpc": "2.0",
  "id": 3,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{\"token\":\"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\"quote\":\"ETH\",\"price\":\"0.000285\",\"path\":[\"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\"]}"
      }
    ],
    "isError": false
  }
}

4.模拟代币交换

请求:

{
  "jsonrpc": "2.0",
  "id": 4,
  "method": "tools/call",
  "params": {
    "name": "swap_tokens",
    "arguments": {
      "from_token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
      "to_token": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
      "amount": "1000",
      "slippage": "0.5"
    }
  }
}

答复:

{
  "jsonrpc": "2.0",
  "id": 4,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{\"simulation\":\"success\",\"from_token\":\"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\"to_token\":\"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\",\"amount_in\":\"1000\",\"estimated_output\":\"0.285\",\"minimum_output\":\"0.283575\",\"slippage\":\"0.5%\",\"gas_estimate\":\"150000\",\"gas_cost_eth\":\"0.0045\",\"note\":\"This is a simulation only. Transaction not executed on-chain.\"}"
      }
    ],
    "isError": false
  }
}

设计决策

  1. 合金框架:因其现代、类型安全的以太坊交互方法而被选中,该方法具有出色的异步支持和编译时ABI验证,使用 sol! 宏。
  1. 仅模拟掉期:The swap_tokens 该工具通过以下方式构建真实的Uniswap V2交易和链数据查询 getAmountsOut,但使用RPC将其作为模拟执行 eth_call 语义(通过alloy的视图函数调用)。这提供了准确的估计,而无需链上执行。
  1. 十进制精度:用途 rust_decimal 用于所有余额和价格计算,以避免金融应用程序中常见的浮点精度错误。
  1. 模块化架构:以太坊交易逻辑在 ethereum 模块,使其易于扩展额外的DEX或功能,同时保持MCP服务器逻辑的整洁。
  1. 错误处理:所有错误都映射到符合MCP的错误响应,并带有详细的调试上下文。

已知限制

  • 仅限主网:当前配置为以太坊主网。测试网支持需要更新合约地址。
  • 仅限Uniswap V2:报价和掉期使用Uniswap V2。可以添加V3支持,以便更好地定价某些货币对。
  • 无链上执行:仅模拟掉期。实现了私钥管理和事务签名,但为了安全起见,故意禁用执行。
  • 公共RPC限制:默认公共RPC终结点可能有速率限制。使用Infura/炼金术进行生产。
  • 令牌白名单:价格查询假设代币有WETH对。异国情调的代币可能会失败。

测试

运行测试:

cargo test

注意:测试需要网络访问才能查询以太坊主网。由于RPC调用,某些测试可能会很慢。

项目结构

src/
├── main.rs           # MCP server setup and HTTP endpoint
├── ethereum/
│   └── mod.rs        # Ethereum trading tools (balance, price, swap)
└── common/           # Example counter (can be removed)

许可证

麻省理工学院

贡献

欢迎拉取请求。请确保:

  • 代码编译时使用 cargo build
  • 测试通过 cargo test
  • 新功能包括文档

目录标签

目录标签

Rust区块链金融数据以太坊交易本地部署AI代理代币交换金融计算

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

3

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明token部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP