返回市场
MCP服务器

MCP服务器

作者:blockscout24 星标更新:2025-10-16

项目介绍

技术文档摘要

Blockscout MCP Server

smithery 徽章

<a href="https://glama.ai/mcp/servers/@blockscout/mcp-server"> <img width="380" height="200" src="https://gips1.baidu.com/it/u=1018916627,2454867343&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Blockscout Server MCP 服务器" /> </a>

模型上下文协议(MCP)是一种开放协议,旨在允许AI代理、IDE和自动化工具通过上下文感知API来消费、查询和分析结构化数据。

此服务器封装了Blockscout API,并通过MCP暴露区块链数据——余额、代币、NFT、合约元数据——使得AI代理和工具(如Claude、Cursor或IDE)能够上下文地访问和分析这些数据。

关键特性:

  • 针对AI工具的上下文区块链数据访问
  • 通过从Chainscout获取Blockscout实例URL实现多链支持
  • 版本化的REST API:为所有MCP工具提供标准且友好的Web接口。详情参见API.md
  • 为MCP主机提供的自定义指令
  • 智能上下文优化以节省LLM令牌同时保持数据可访问性
  • 可配置分页大小的智能响应切片以防止上下文溢出
  • 使用Base64URL编码字符串进行不透明游标分页,而不是复杂的参数
  • 自动截断大数据字段并提供清晰指示和访问指南
  • 标准化的ToolResponse模型,带有结构化的JSON响应和后续指令
  • 增强的可观测性,包括MCP进度通知和长时间运行操作的定期更新

配置MCP客户端

使用Claude桌面扩展(.dxt) - 推荐

使用Blockscout MCP服务器最简单的方式是通过官方的桌面扩展。这提供了无缝的一键安装体验。

安装:

  1. 发布页面下载最新的blockscout-mcp.dxt文件。
  2. 打开Claude Desktop。
  3. 双击打开.dxt文件以自动安装扩展。
  4. 如果遇到任何问题,请检查设置 -> 扩展。您也可以将.DXT文件拖放到扩展窗口中查看和安装。

使用官方Blockscout MCP服务器

位于https://mcp.blockscout.com/mcp的官方云托管实例提供了一个可靠且始终更新的服务。

Claude Desktop 设置:

注意:此设置需要Docker

  1. 打开Claude Desktop 并点击设置。

  2. 导航到“开发者”部分。

  3. 点击“编辑配置”。

  4. 打开文件claude_desktop_config.json并配置服务器:

    {
      "mcpServers": {
        "blockscout": {
          "command": "docker",
          "args": [
            "run",
            "--rm",
            "-i",
            "sparfenyuk/mcp-proxy:latest",
            "--transport",
            "streamablehttp",
            "https://mcp.blockscout.com/mcp"
          ]
        }
      }
    }
    
  5. 保存文件并重启Claude Desktop。

  6. 在与Claude聊天时,您可以启用Blockscout MCP服务器,让Claude访问区块链数据。

Cursor 设置:

使用此深度链接在Cursor中安装Blockscout MCP服务器。

Gemini CLI 设置:

  1. 将以下配置添加到您的~/.gemini/settings.json文件中:

    {
      "mcpServers": {
        "blockscout": {
          "httpUrl": "https://mcp.blockscout.com/mcp",
          "timeout": 180000
        }
      }
    }
    
  2. 有关详细的Gemini CLI MCP服务器配置说明,请参阅官方文档

尝试Blockscout X-Ray GPT

通过我们的展示GPT体验Blockscout MCP服务器的强大功能:Blockscout X-Ray

这个GPT展示了MCP服务器的全部能力,提供智能的区块链分析和见解。这是一个探索当AI代理具有上下文访问区块链数据时可能实现的功能的好方法。

本地开发设置(针对开发者)

如果您想为了开发目的在本地运行服务器:

{
  "mcpServers": {
    "blockscout": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "ghcr.io/blockscout/mcp-server:latest"
      ]
    }
  }
}

技术细节

参见SPEC.md了解技术细节。

仓库结构

参见AGENTS.md了解仓库结构。

测试

参见TESTING.md了解运行单元测试和集成测试的详细说明。

工具描述

  1. __unlock_blockchain_analysis__() - 提供自定义指令供MCP主机使用服务器。这是使用其他工具前必须执行的第一步。
  2. get_chains_list() - 返回所有已知链的列表。
  3. get_address_by_ens_name(name) - 将ENS域名转换为其对应的以太坊地址。
  4. lookup_token_by_symbol(chain_id, symbol) - 通过符号或名称搜索代币地址,返回多个潜在匹配项。
  5. get_contract_abi(chain_id, address) - 获取智能合约的ABI(应用程序二进制接口)。
  6. inspect_contract_code(chain_id, address, file_name=None) - 允许获取已验证合约的源代码文件。
  7. get_address_info(chain_id, address) - 获取关于地址的全面信息,包括余额、ENS关联、合约状态、代币详情和公共标签。
  8. get_tokens_by_address(chain_id, address, cursor=None) - 返回地址的详细ERC20代币持有情况,包含丰富的元数据和市场数据。
  9. get_latest_block(chain_id) - 返回最新索引的区块号和时间戳。
  10. get_transactions_by_address(chain_id, address, age_from, age_to, methods, cursor=None) - 获取特定时间段内地址的交易记录,可选方法过滤。
  11. get_token_transfers_by_address(chain_id, address, age_from, age_to, token, cursor=None) - 返回特定时间段内地址的ERC-20代币转移记录。
  12. transaction_summary(chain_id, hash) - 使用Blockscout事务解释器提供人类可读的事务摘要。
  13. nft_tokens_by_address(chain_id, address, cursor=None) - 获取地址拥有的NFT代币,按集合分组。
  14. get_block_info(chain_id, number_or_hash, include_transactions=False) - 返回区块信息,包括时间戳、使用的gas、燃烧的费用和交易数量。可选包含交易哈希列表。
  15. get_transaction_info(chain_id, hash, include_raw_input=False) - 获取全面的交易信息,包括解码的输入参数和详细的代币转移。
  16. get_transaction_logs(chain_id, hash, cursor=None) - 返回事务日志,包含解码的事件数据。
  17. read_contract(chain_id, address, abi, function_name, args='[]', block='latest') - 执行一个只读的智能合约函数并返回其结果。abi参数是一个描述特定函数签名的JSON对象。
  18. direct_api_call(chain_id, endpoint_path, query_params=None, cursor=None) - 调用一个精选的原始Blockscout API端点,用于专门或链特定的数据。

AI代理示例提示

在Optimism链上,`zeaver.eth`是否设置了OP代币的任何批准?
计算地址`0xcafe...cafe`在2025年5月支付的总gas费用。
在`Nov 08 2024 04:21:35 AM (-06:00 UTC)`之前,`0xFe89cc7aBB2C4183683ab71653C4cdc9B02D44b7`发出的最近10个日志是什么?
告诉我更多关于Redstone rollup上的事务`0xf8a55721f7e2dcf85690aaf81519f7bc820bc58a878fa5f81b12aef5ccda0efb`的信息。
Arbitrum One上的USDT代币是否有黑名单功能?
Gnosis Chain上的最新区块是谁挖掘的?最近是否有资金从该挖掘者处转出?
Kinto链上的钱包`0x7D467D99028199D99B1c91850C4dea0c82aDDF52`最近一次获得Kinto代币奖励是什么时候?
在以太坊主网上,`0x1c479675ad559DC151F6Ec7ed3FbF8ceE79582B6`的哪些方法可以触发`SequencerBatchDelivered`?
最近从Arbitrum Sepolia rollup发送到基础层的跨链消息是什么?

开发与部署

本地安装

克隆仓库并安装依赖:

git clone https://github.com/blockscout/mcp-server.git
cd mcp-server
uv pip install -e . # 或 `pip install -e .`

要自定义RPC请求中使用的User-Agent头部的前缀部分,设置环境变量BLOCKSCOUT_MCP_USER_AGENT(默认为"Blockscout MCP")。服务器版本会自动附加。

运行服务器

服务器默认以stdio模式运行:

python -m blockscout_mcp_server

HTTP模式(仅MCP):

要在HTTP流式模式下运行服务器(无状态,JSON响应):

python -m blockscout_mcp_server --http

您可以指定HTTP服务器的主机和端口:

python -m blockscout_mcp_server --http --http-host 0.0.0.0 --http-port 8080

HTTP模式带REST API:

要启用版本化的REST API以及MCP端点,使用--rest标志(需要--http)。

python -m blockscout_mcp_server --http --rest

自定义主机和端口:

python -m blockscout_mcp_server --http --rest --http-host 0.0.0.0 --http-port 8080

CLI选项:

  • --http:启用HTTP流式模式。
  • --http-host TEXT:绑定HTTP服务器的主机(默认:127.0.0.1)。
  • --http-port INTEGER:HTTP服务器的端口(默认:8000)。
  • --rest:启用REST API(需要--http)。

本地构建Docker镜像

使用官方标签构建Docker镜像:

docker build -t ghcr.io/blockscout/mcp-server:latest .

从GitHub容器注册表拉取

拉取预构建的镜像:

docker pull ghcr.io/blockscout/mcp-server:latest

使用Docker运行

HTTP模式(仅MCP):

要在HTTP模式下运行Docker容器并映射端口:

docker run --rm -p 8000:8000 ghcr.io/blockscout/mcp-server:latest python -m blockscout_mcp_server --http --http-host 0.0.0.0

自定义端口:

docker run --rm -p 8080:8080 ghcr.io/blockscout/mcp-server:latest python -m blockscout_mcp_server --http --http-host 0.0.0.0 --http-port 8080

HTTP模式带REST API:

要启用REST API:

docker run --rm -p 8000:8000 ghcr.io/blockscout/mcp-server:latest python -m blockscout_mcp_server --http --rest --http-host 0.0.0.0

注意: 当在HTTP模式下使用Docker运行时,使用--http-host 0.0.0.0绑定到所有接口,以便服务器可以从容器外部访问。

Stdio模式: 默认的Stdio模式设计用于与MCP主机/客户端(如Claude Desktop、Cursor)一起使用,直接使用Docker运行而没有MCP客户端管理通信是没有意义的。

隐私和匿名遥测

为了帮助我们改进Blockscout MCP服务器,社区运行的服务器实例默认收集匿名使用数据。这有助于我们了解哪些工具最受欢迎,并指导我们的开发工作。

我们收集的内容:

  • 被调用的工具名称(例如,get_latest_block)。
  • 提供给工具的参数。
  • 使用的Blockscout MCP服务器版本。

我们不收集的内容:

  • 我们不会收集任何个人数据、IP地址(中央服务器使用发送者的IP进行地理定位并通过Mixpanel丢弃),秘密或私钥。

如何选择退出

您可以通过设置以下环境变量随时禁用此功能:

export BLOCKSCOUT_DISABLE_COMMUNITY_TELEMETRY=true

许可证

本项目主要根据MIT许可证条款分发。详情请参见LICENSE