Cryo MCP 使用说明
项目简介
Cryo MCP 是一个基于 Model Context Protocol (MCP) 构建的服务器,它将 Cryo 这个强大的区块链数据提取工具的能力通过标准化的 MCP 协议暴露出来。这使得兼容 MCP 协议的 LLM 客户端能够轻松地查询和分析以太坊区块链数据。
主要功能点
- 区块链数据访问: 通过 API 服务器访问 Cryo 的所有数据集,包括区块、交易、日志等。
- MCP 协议集成: 完全兼容 MCP 协议,可以与任何 MCP 客户端无缝集成。
- 灵活的数据查询: 支持各种 Cryo 过滤和输出选项,包括区块范围、合约地址过滤、列选择等。
- SQL 查询能力: 支持对下载的区块链数据执行强大的 SQL 查询,进行复杂的数据分析。
- 多种数据格式: 支持 JSON, CSV 和 Parquet 等多种输出格式,Parquet 格式特别优化了 SQL 查询性能。
- 模式信息: 提供详细的数据集模式信息和示例数据,方便用户理解数据结构。
安装步骤
Cryo MCP 可以直接通过 'uvx' 运行,无需额外安装步骤。如果需要将 'cryo-mcp' 工具安装到 uvx 环境中,可以执行以下命令(可选):
uv tool install cryo-mcp
服务器配置
为了让 MCP 客户端(例如 Claude)连接到 Cryo MCP 服务器,您需要配置客户端的服务器启动命令和参数。以下是 Cryo MCP 服务器的典型配置信息,请根据您的实际需求进行调整。
{ "server_name": "cryo-mcp", "command": "uvx", "args": [ "cryo-mcp", "--rpc-url", "<ETH_RPC_URL>", "--data-dir", "<DATA_DIR>" ], "description": "Cryo MCP Server for accessing Ethereum blockchain data" }
参数注释:
- 'server_name': 服务器名称,可以自定义。
- 'command': 运行服务器的命令,这里使用 'uvx' 来运行 'cryo-mcp'。
- 'args': 传递给 'cryo-mcp' 命令的参数列表。
- '--rpc-url <ETH_RPC_URL>': 必填。以太坊 RPC URL,用于连接到以太坊节点。请将 '<ETH_RPC_URL>' 替换为您的实际 RPC URL (例如 Infura, Alchemy 等)。您也可以将 'ETH_RPC_URL' 设置为环境变量。
- '--data-dir <DATA_DIR>': 可选。数据存储目录,用于存放下载的区块链数据。 默认路径为 '~/.cryo-mcp/data/'。您可以将 '<DATA_DIR>' 替换为您希望使用的目录,或者将 'CRYO_DATA_DIR' 设置为环境变量。
基本环境变量:
- 'ETH_RPC_URL': 默认以太坊 RPC URL。
- 'CRYO_DATA_DIR': 默认数据存储目录。
基本使用方法
-
列出可用数据集: 使用 'list_datasets()' 工具获取 Cryo MCP 服务器支持的所有数据集名称,例如 'blocks', 'transactions', 'logs' 等。
-
查询数据集: 使用 'query_dataset()' 工具下载区块链数据。你需要指定要查询的 'dataset' 名称和 'blocks' 区块范围。例如,以下代码查询 'transactions' 数据集,区块范围为 '15000000' 到 '15001000',并以 Parquet 格式输出,以便进行 SQL 查询:
result = query_dataset( dataset="transactions", blocks="15000000:15001000", output_format="parquet" ) files = result.get("files", []) # 获取返回的文件路径 -
探索数据模式: 在进行 SQL 查询之前,可以使用 'get_sql_table_schema()' 工具查看 Parquet 文件的模式信息,了解可用的列和数据类型。例如:
schema = get_sql_table_schema(files[0]) # 查看第一个文件的模式信息 -
执行 SQL 查询: 使用 'query_sql()' 或 'query_blockchain_sql()' 工具执行 SQL 查询。
-
'query_sql()': 对已下载的数据文件执行 SQL 查询。你需要提供 SQL 查询语句和 'query_dataset()' 返回的文件路径列表。
sql_result = query_sql( query="SELECT block_number, timestamp, gas_used FROM blocks", files=files ) -
'query_blockchain_sql()': 结合数据下载和 SQL 查询的便捷工具。它会自动下载所需的数据,并执行 SQL 查询。
result = query_blockchain_sql( sql_query="SELECT * FROM blocks WHERE gas_used > 1000000", dataset="blocks", blocks_from_latest=100 )
-
-
获取最新区块信息: 使用 'get_latest_ethereum_block()' 工具获取最新的以太坊区块信息。
-
查看交易详情: 使用 'get_transaction_by_hash()' 工具根据交易哈希查询交易的详细信息。
-
查找数据集信息: 使用 'lookup_dataset()' 工具获取特定数据集的详细信息,包括描述、参数说明、模式信息和示例查询。
通过上述步骤,您可以利用 Cryo MCP 服务器,结合 LLM 客户端,高效便捷地访问和分析以太坊区块链数据。请参考仓库的 README.md 和示例代码获取更详细的使用说明和高级用法。
信息
分类
数据库与文件