Cryo - MCP 是一款基于 MCP 协议的实用工具,主要用于从链上数据提供商处提取区块链数据集。它具备灵活的数据查询、多样的输出格式转换以及强大的 SQL 查询支持等功能,能有效满足不同用户对区块链数据处理的需求。
pip install "duckdb>=0.7.1"
# 下载最近 100 个区块的基本信息
client.query_dataset('blocks', blocks_from_latest=100)
# 下载指定范围的区块数据
client.query_dataset('blocks', blocks='15M:15.01M')
# 查询 USDC 合约的交易记录
client.query_dataset(
'transactions',
contract='0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
)
# 筛选特定块范围内的日志数据
client.query_dataset('logs', blocks='15M:15.01M', contract='0xabc123...')
# 下载指定列的 CSV 格式数据
client.query_dataset(
'blocks',
blocks_from_latest=100,
include_columns=['number', 'timestamp'],
output_format='csv'
)
# 以 Parquet 格式下载交易数据
client.query_dataset('transactions', blocks_from_latest=100, output_format='parquet')
上述快速开始部分的基本用法示例,涵盖了查询区块数据、筛选特定合同数据以及自定义输出格式等基础操作。
Cryo - MCP 支持通过 DuckDB 执行复杂的 SQL 查询,以下是分析区块交易数量的示例:
# 下载数据并执行 SQL 查询
client.query_sql(
query="""
SELECT
block_number,
COUNT(*) as transaction_count
FROM read_parquet('/path/to/transactions.parquet')
GROUP BY block_number
ORDER BY transaction_count DESC
LIMIT 10
""",
files=['/path/to/transactions.parquet']
)
cryo-mcp/
├── cryo_mcp/ # 主程序包目录
│ ├── __init__.py # 包初始化文件
│ ├── server.py # MCP 服务器实现
│ └── sql.py # SQL 查询功能模块
└── tests/ # 测试目录
└── test_*.py # 各种测试用例文件
uv run pytest
本项目使用 MIT 协议开源。