1scan - Blockchain Explorer API Gateway & MCP Server

1scan - Blockchain Explorer API Gateway & MCP Server

一个统一的 API 网关,用于集成多个类似 Etherscan 的区块链浏览器 API,并支持 AI 助手的模型上下文协议 (MCP)。

huahuayu

研究与数据
访问服务器

README

1scan - 区块链浏览器 API 网关 & MCP 服务器

一个统一的 API 网关,用于集成多个类似 Etherscan 的区块链浏览器 API,并支持 AI 助手的模型上下文协议 (MCP)。

概述

1scan 提供两个主要组件:

  1. API 网关: 用于访问多个区块链浏览器 API 的统一端点
  2. MCP 服务器: 允许 AI 模型(如 Cursor IDE 中的 Claude)直接查询区块链数据

支持的区块链网络

从相应的区块链浏览器申请您自己的 API 密钥

网络名称 链 ID 浏览器链接 浏览器 API 端点
Ethereum 1 https://etherscan.io api.etherscan.io
Binance Smart Chain 56 https://bscscan.com api.bscscan.com
Arbitrum One 42161 https://arbiscan.io api.arbiscan.io
Polygon 137 https://polygonscan.com api.polygonscan.com
Optimism 10 https://optimistic.etherscan.io api-optimistic.etherscan.io
Avalanche C-Chain 43114 https://snowtrace.io api.snowtrace.io
Base 8453 https://basescan.org api.basescan.org
zkSync Era 324 https://explorer.zksync.io block-explorer-api.mainnet.zksync.io
Gnosis 100 https://gnosisscan.io api.gnosisscan.io
Fantom 250 https://ftmscan.com api.ftmscan.com
Mantle 5000 https://mantlescan.info api.mantlescan.info
Cronos 25 https://cronoscan.com api.cronoscan.com
Polygon ZkEVM 1101 https://zkevm.polygonscan.com api-zkevm.polygonscan.com
Linea 59144 https://lineascan.build api.lineascan.build
Moonbeam 1284 https://moonscan.io api.moonscan.io
Celo 42220 https://celoscan.io api.celoscan.io
Scroll 534352 https://scrollscan.com api.scrollscan.com
OpBNB 204 https://opbnbscan.com api.opbnbscan.com
Moonriver 1285 https://moonriver.moonscan.io api-moonriver.moonscan.io
Arbitrum Nova 42170 https://nova.arbiscan.io api-nova.arbiscan.io
Blast 81457 https://blastscan.io api.blastscan.io
Fraxtal 252 https://fraxscan.com api.fraxscan.com
Wemix 1111 https://wemixscan.com api.wemixscan.com
Xai 660279 https://xaiscan.io api.xaiscan.io
World Chain 480 https://worldscan.org api.worldscan.org
Ape 33139 https://apescan.io/ api.apescan.io
Kroma 255 https://kromascan.com api.kromascan.com
Taiko 167000 https://taikoscan.io api.taikoscan.io
Bittorrent 199 https://bttcscan.com api.bttcscan.com
Xdc 50 https://xdcscan.io api.xdcscan.io

特性

  • 🔄 多个区块链浏览器的统一 API 端点
  • ⚖️ API 负载均衡
  • 🔑 API 速率限制管理
  • 🎯 通过 URL 参数支持自定义 API 密钥
  • 🤖 MCP 服务器,供 AI 助手查询区块链数据

安装

从 Go 安装

go install github.com/huahuayu/1scan@latest

从源码安装

# 克隆仓库
git clone https://github.com/huahuayu/1scan.git
cd 1scan

# 构建 1scan API 服务器和 MCP 服务器
make build

快速开始

1. 创建配置文件

创建一个包含您的 API 密钥的 config.json 文件:

{
  "1": {
    "endpoint": "api.etherscan.io",
    "keys": {
      "YOUR_ETHERSCAN_API_KEY_1": 5,
      "YOUR_ETHERSCAN_API_KEY_2": 10
    }
  },
  "56": {
    "endpoint": "api.bscscan.com",
    "keys": {
      "YOUR_BSCSCAN_API_KEY": 5
    }
  }
}

每个链条目包含:

  • chainID: 区块链网络 ID
  • endpoint: 区块链浏览器的 API 端点
  • keys: API 密钥及其速率限制(每秒请求数)的映射

2. 运行 API 服务器

# 使用默认设置运行
1scan -config /path/to/config.json

# 或者使用 make
make run-1scan

3. 运行 MCP 服务器

# 使用默认设置运行
1scanmcp -config /path/to/config.json # 默认在端口 3000 上提供服务

# 或者使用 make
make run-1scanmcp

# 使用自定义设置
1scanmcp -config /path/to/config.json -port 3000 -path /mcp

与 Cursor IDE 集成

要在 Cursor IDE 中使用 1scan MCP:

  1. 启动 API 服务器和 MCP 服务器

    # 终端 1
    make run-1scan
    
    # 终端 2
    make run-1scanmcp
    
  2. 在 Cursor IDE 中,转到 Settings → AI → MCP Servers

  3. 添加一个新的 MCP 服务器,URL 为:

{
  "mcpServers": {
    "1scan": {
      "url": "http://localhost:3000/mcp/sse"
    }
  }
}
  1. 如果需要,重启 Cursor IDE

  2. 现在您可以在 AI 对话中使用区块链数据了:

    你能检查一下以太坊上地址 0x742d35Cc6634C0532925a3b844Bc454e4438f44e 的余额吗?
    

MCP 服务器配置

运行 MCP 服务器时,您可以使用以下参数进行自定义:

  • -port: MCP 服务器运行的端口(默认值:"3000")
  • -path: MCP 服务器端点的路径(默认值:"/mcp")
  • -config: 配置文件的路径(默认值:"config.json")
  • -transport: 传输类型 (sse 或 stdio) (默认: "sse")

示例:

1scanmcp -port 3000 -config /path/to/config.json

可用的 MCP 工具

MCP 服务器向 AI 模型公开以下工具:

  • getAccountBalance - 获取特定区块链上帐户的余额
  • getTokenBalance - 获取特定区块链上帐户的代币余额
  • getTransactionByHash - 按哈希获取交易详情
  • getBlockByNumber - 按区块号获取区块信息
  • getContractABI - 获取已验证合约的 ABI
  • getContractSourceCode - 获取已验证合约的源代码
  • getTokenInfo - 获取有关 ERC20 代币的信息
  • getGasPrice - 获取特定区块链上的当前 gas 价格
  • getLogs - 获取与指定参数匹配的事件日志
  • getTransaction - 按哈希获取交易详情
  • getTransactionCount - 获取从地址发送的交易数量
  • getTransactionReceipt - 按交易哈希获取交易回执
  • getBlockTransactionCountByNumber - 获取区块中的交易数量
  • getBlockTransactionCountByHash - 按区块哈希获取区块中的交易数量
  • getBlockByHash - 按哈希获取区块信息
  • getNormalTransactions - 按地址获取普通交易
  • getInternalTransactions - 按地址或交易哈希获取内部交易
  • getERC20Transfers - 按地址或合约获取 ERC-20 代币转移事件
  • getERC721Transfers - 按地址或合约获取 ERC-721 NFT 转移事件
  • getValidators - 获取验证器信息(对于具有验证器集的网络)
  • getContractCreation - 获取合约创建信息
  • getContractVerificationStatus - 检查合约验证状态

MCP 交互示例

以下是通过 MCP 接口与区块链数据交互的示例:

# 获取账户余额
vitalik.eth (0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045) 在以太坊上的 ETH 余额是多少?

# 检查代币余额
以太坊上地址 0x28C6c06298d514Db089934071355E5743bf21d60 的 USDC 余额是多少?

# 检查交易
你能分析一下以太坊上交易 0xdd6d7f687c9821404ae8c2ea7de5cfb5a23fc4c01ef1e7f535748cb147aa76dd 吗?

# 查找区块信息
以太坊区块 18700000 中有哪些交易?

# 获取合约 ABI
你能给我展示一下以太坊上 USDC 合约 (0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48) 的 ABI 吗?

# 分析合约源代码
我需要了解 Uniswap V3 路由器的工作原理。你能给我展示一下以太坊上 0xE592427A0AEce92De3Edee1F18E0157C05861564 的源代码吗?

# 检查多个链
现在以太坊和 Arbitrum 之间的 gas 费用有什么区别?

# 检查代币信息
告诉我以太坊上 APE 代币的代币经济学。

MCP 工具的完整列表

MCP 服务器向 AI 模型公开以下工具:

  • getAccountBalance - 获取特定区块链上帐户的余额
  • getTokenBalance - 获取特定区块链上帐户的代币余额
  • getTransactionByHash - 按哈希获取交易详情
  • getBlockByNumber - 按区块号获取区块信息
  • getContractABI - 获取已验证合约的 ABI
  • getContractSourceCode - 获取已验证合约的源代码
  • getTokenInfo - 获取有关 ERC20 代币的信息
  • getGasPrice - 获取特定区块链上的当前 gas 价格
  • getLogs - 获取与指定参数匹配的事件日志
  • getTransaction - 按哈希获取交易详情
  • getTransactionCount - 获取从地址发送的交易数量
  • getTransactionReceipt - 按交易哈希获取交易回执
  • getBlockTransactionCountByNumber - 获取区块中的交易数量
  • getBlockTransactionCountByHash - 按区块哈希获取区块中的交易数量
  • getBlockByHash - 按哈希获取区块信息
  • getNormalTransactions - 按地址获取普通交易
  • getInternalTransactions - 按地址或交易哈希获取内部交易
  • getERC20Transfers - 按地址或合约获取 ERC-20 代币转移事件
  • getERC721Transfers - 按地址或合约获取 ERC-721 NFT 转移事件
  • getValidators - 获取验证器信息(对于具有验证器集的网络)
  • getContractCreation - 获取合约创建信息
  • getContractVerificationStatus - 检查合约验证状态

解决 MCP 集成问题

如果您在从 Cursor 连接到 MCP 服务器时遇到问题:

  1. 验证两个服务器是否都在运行:

    # 检查服务器是否正在运行
    ps aux | grep 1scanmcp
    
  2. 确保在 Cursor 中配置了正确的 URL

许可证

MIT 许可证

推荐服务器

Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Nefino MCP Server

Nefino MCP Server

为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。

官方
Python
Vectorize

Vectorize

将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

官方
JavaScript
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python
kb-mcp-server

kb-mcp-server

一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。

本地
Python
Research MCP Server

Research MCP Server

这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

本地
Python
Cryo MCP Server

Cryo MCP Server

一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。

本地
Python