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': 默认数据存储目录。

基本使用方法

  1. 列出可用数据集: 使用 'list_datasets()' 工具获取 Cryo MCP 服务器支持的所有数据集名称,例如 'blocks', 'transactions', 'logs' 等。

  2. 查询数据集: 使用 'query_dataset()' 工具下载区块链数据。你需要指定要查询的 'dataset' 名称和 'blocks' 区块范围。例如,以下代码查询 'transactions' 数据集,区块范围为 '15000000' 到 '15001000',并以 Parquet 格式输出,以便进行 SQL 查询:

    result = query_dataset(
        dataset="transactions",
        blocks="15000000:15001000",
        output_format="parquet"
    )
    files = result.get("files", []) # 获取返回的文件路径
  3. 探索数据模式: 在进行 SQL 查询之前,可以使用 'get_sql_table_schema()' 工具查看 Parquet 文件的模式信息,了解可用的列和数据类型。例如:

    schema = get_sql_table_schema(files[0]) # 查看第一个文件的模式信息
  4. 执行 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
      )
  5. 获取最新区块信息: 使用 'get_latest_ethereum_block()' 工具获取最新的以太坊区块信息。

  6. 查看交易详情: 使用 'get_transaction_by_hash()' 工具根据交易哈希查询交易的详细信息。

  7. 查找数据集信息: 使用 'lookup_dataset()' 工具获取特定数据集的详细信息,包括描述、参数说明、模式信息和示例查询。

通过上述步骤,您可以利用 Cryo MCP 服务器,结合 LLM 客户端,高效便捷地访问和分析以太坊区块链数据。请参考仓库的 README.md 和示例代码获取更详细的使用说明和高级用法。

信息

分类

数据库与文件