模型上下文协议(MCP)是一种开放协议,旨在允许AI代理、IDE和自动化工具通过上下文感知API来消费、查询和分析结构化数据。
此服务器封装了Blockscout API,并通过MCP暴露区块链数据——余额、代币、NFT、合约元数据——使得AI代理和工具(如Claude、Cursor或IDE)能够上下文地访问和分析这些数据。
关键特性:
使用Blockscout MCP服务器最简单的方式是通过官方的桌面扩展。这提供了无缝的一键安装体验。
安装:
blockscout-mcp.dxt文件。.dxt文件以自动安装扩展。位于https://mcp.blockscout.com/mcp的官方云托管实例提供了一个可靠且始终更新的服务。
Claude Desktop 设置:
注意:此设置需要Docker
打开Claude Desktop 并点击设置。
导航到“开发者”部分。
点击“编辑配置”。
打开文件claude_desktop_config.json并配置服务器:
{
"mcpServers": {
"blockscout": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"sparfenyuk/mcp-proxy:latest",
"--transport",
"streamablehttp",
"https://mcp.blockscout.com/mcp"
]
}
}
}
保存文件并重启Claude Desktop。
在与Claude聊天时,您可以启用Blockscout MCP服务器,让Claude访问区块链数据。
Cursor 设置:
使用此深度链接在Cursor中安装Blockscout MCP服务器。
Gemini CLI 设置:
将以下配置添加到您的~/.gemini/settings.json文件中:
{
"mcpServers": {
"blockscout": {
"httpUrl": "https://mcp.blockscout.com/mcp",
"timeout": 180000
}
}
}
有关详细的Gemini CLI MCP服务器配置说明,请参阅官方文档。
通过我们的展示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了解运行单元测试和集成测试的详细说明。
__unlock_blockchain_analysis__() - 提供自定义指令供MCP主机使用服务器。这是使用其他工具前必须执行的第一步。get_chains_list() - 返回所有已知链的列表。get_address_by_ens_name(name) - 将ENS域名转换为其对应的以太坊地址。lookup_token_by_symbol(chain_id, symbol) - 通过符号或名称搜索代币地址,返回多个潜在匹配项。get_contract_abi(chain_id, address) - 获取智能合约的ABI(应用程序二进制接口)。inspect_contract_code(chain_id, address, file_name=None) - 允许获取已验证合约的源代码文件。get_address_info(chain_id, address) - 获取关于地址的全面信息,包括余额、ENS关联、合约状态、代币详情和公共标签。get_tokens_by_address(chain_id, address, cursor=None) - 返回地址的详细ERC20代币持有情况,包含丰富的元数据和市场数据。get_latest_block(chain_id) - 返回最新索引的区块号和时间戳。get_transactions_by_address(chain_id, address, age_from, age_to, methods, cursor=None) - 获取特定时间段内地址的交易记录,可选方法过滤。get_token_transfers_by_address(chain_id, address, age_from, age_to, token, cursor=None) - 返回特定时间段内地址的ERC-20代币转移记录。transaction_summary(chain_id, hash) - 使用Blockscout事务解释器提供人类可读的事务摘要。nft_tokens_by_address(chain_id, address, cursor=None) - 获取地址拥有的NFT代币,按集合分组。get_block_info(chain_id, number_or_hash, include_transactions=False) - 返回区块信息,包括时间戳、使用的gas、燃烧的费用和交易数量。可选包含交易哈希列表。get_transaction_info(chain_id, hash, include_raw_input=False) - 获取全面的交易信息,包括解码的输入参数和详细的代币转移。get_transaction_logs(chain_id, hash, cursor=None) - 返回事务日志,包含解码的事件数据。read_contract(chain_id, address, abi, function_name, args='[]', block='latest') - 执行一个只读的智能合约函数并返回其结果。abi参数是一个描述特定函数签名的JSON对象。direct_api_call(chain_id, endpoint_path, query_params=None, cursor=None) - 调用一个精选的原始Blockscout API端点,用于专门或链特定的数据。在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 build -t ghcr.io/blockscout/mcp-server:latest .
拉取预构建的镜像:
docker pull ghcr.io/blockscout/mcp-server:latest
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)。我们不收集的内容:
您可以通过设置以下环境变量随时禁用此功能:
export BLOCKSCOUT_DISABLE_COMMUNITY_TELEMETRY=true
本项目主要根据MIT许可证条款分发。详情请参见LICENSE。