链上MCP

@Bankless/onchain-mcp
Hosted
3 Stars 1.6k 次浏览 Bankless 更新于 2026-08-23

实现了模型上下文协议,允许人工智能模型访问和交互区块链数据,包括读取合约状态、检索事件以及跨各种网络访问交易信息。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "bankless": {
      "args": [
        "@bankless/onchain-mcp"
      ],
      "command": "npx",
      "env": {
        "BANKLESS_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

该服务需要配置环境变量:BANKLESS_API_TOKEN

服务介绍

Bankless Onchain MCP 服务器


Version

通过 Bankless API 进行区块链数据交互的 MCP(模型上下文协议)服务器。

概述

Bankless Onchain MCP 服务器提供了一个通过 Bankless API 与链上数据交互的框架。它实现了模型上下文协议(MCP),允许 AI 模型以结构化的方式访问区块链状态和事件数据。

https://github.com/user-attachments/assets/95732dff-ae5f-45a6-928a-1ae17c0ddf9d

功能

该服务器提供了以下链上数据操作:

合约操作

  • 读取合约状态 (read_contract):从各种区块链网络上的智能合约中读取状态。

    • 参数:网络、合约地址、方法、输入、输出
    • 返回:带有类型值的合约调用结果
  • 获取代理 (get_proxy):检索代理实现合约地址。

    • 参数:网络、合约地址
    • 返回:实现合约地址
  • 获取 ABI (get_abi):获取合约的 ABI(应用程序二进制接口)。

    • 参数:网络、合约地址
    • 返回:JSON 格式的合约 ABI
  • 获取源代码 (get_source):检索已验证合约的源代码。

    • 参数:网络、合约地址
    • 返回:源代码、ABI、编译器版本和其他合约元数据

事件操作

  • 获取事件 (get_events):根据主题获取合约的事件日志。

    • 参数:网络、地址、主题、可选主题
    • 返回:过滤后的事件日志
  • 构建事件主题 (build_event_topic):从事件名称和参数类型生成事件主题签名。

    • 参数:网络、事件名称、参数类型
    • 返回:事件主题哈希

交易操作

  • 获取交易历史 (get_transaction_history):检索用户地址的交易历史。

    • 参数:网络、用户地址、可选合约、可选方法 ID、可选起始区块、包含数据标志
    • 返回:包含哈希、数据、网络和时间戳的交易列表
  • 获取交易信息 (get_transaction_info):获取特定交易的详细信息。

    • 参数:网络、交易哈希
    • 返回:包括区块号、时间戳、from/to 地址、价值、gas 信息、状态和收据数据在内的交易详情

工具


- **read_contract**
    - 从区块链读取合约状态
    - 输入:
        - `network` (字符串,必填):区块链网络(例如:"ethereum", "polygon")
        - `contract` (字符串,必填):合约地址
        - `method` (字符串,必填):要调用的合约方法
        - `inputs` (数组,必填):方法调用的输入参数,每个包含:
            - `type` (字符串):输入参数的类型(例如:"address", "uint256")
            - `value` (任意):输入参数的值
        - `outputs` (数组,必填):预期输出类型,每个包含:
            - `type` (字符串):预期输出类型
    - 返回一个包含合约调用结果的数组

- **get_proxy**
    - 获取给定网络和合约的代理地址
    - 输入:
        - `network` (字符串,必填):区块链网络(例如:"ethereum", "base")
        - `contract` (字符串,必填):合约地址
    - 返回代理合约的实现地址

- **get_events**
    - 根据给定的网络和过滤条件获取事件日志
    - 输入:
        - `network` (字符串,必填):区块链网络(例如:"ethereum", "base")
        - `addresses` (数组,必填):用于过滤事件的合约地址列表
        - `topic` (字符串,必填):主要主题以过滤事件
        - `optionalTopics` (数组,可选):可选的附加主题(可以包括 null 值)
    - 返回一个对象,其中包含符合过滤条件的事件日志

- **build_event_topic**
    - 根据事件名称和参数构建事件主题签名
    - 输入:
        - `network` (字符串,必填):区块链网络(例如:"ethereum", "base")
        - `name` (字符串,必填):事件名称(例如:"Transfer(address,address,uint256)")
        - `arguments` (数组,必填):事件参数类型,每个包含:
            - `type` (字符串):参数类型(例如:"address", "uint256")
    - 返回一个包含事件签名的 keccak256 哈希值的字符串

## 安装

#0



## 使用

### 环境设置

在使用服务器之前,请设置您的 Bankless API 令牌。有关如何获取您的 Bankless API 令牌的详细信息,请访问 [https://docs.bankless.com/bankless-api/other-services/onchain-mcp](https://link.2)

#1



### 运行服务器

可以直接从命令行运行服务器:

#2



### 与 LLM 工具一起使用

该服务器实现了模型上下文协议(MCP),使其能够作为兼容 AI 模型的工具提供者使用。以下是一些示例调用:

#### read_contract

#3



#### get_proxy

#4



#### get_events

#5



#### build_event_topic

#6



## 开发

### 从源代码构建

#7



### 调试模式

#8



### 与 AI 模型集成

要将此服务器与支持MCP的AI应用程序集成,请在您的应用程序的服务器配置中添加以下内容:

#9



## 错误处理

服务器为不同场景提供了特定的错误类型:

- `BanklessValidationError`:无效的输入参数
- `BanklessAuthenticationError`:API令牌问题
- `BanklessResourceNotFoundError`:请求的资源未找到
- `BanklessRateLimitError`:API速率限制超出

## 提示技巧

为了指导LLM模型使用Bankless Onchain MCP Server,可以使用以下提示:

#10



## 许可证

MIT

相关 MCP 服务