Skip to main content
Glama

クライオMCP🧊

Cryoブロックチェーン データ抽出ツール用のモデル完了プロトコル (MCP) サーバー。

Cryo MCP を使用すると、MCP プロトコルを実装する API サーバーを介して Cryo の強力なブロックチェーン データ抽出機能にアクセスできるため、MCP 対応のクライアントからブロックチェーン データを簡単に照会できます。

LLM ユーザー向け: SQL クエリ ワークフロー ガイド

この MCP サーバーを使用してブロックチェーン データに対して SQL クエリを実行する場合は、次のワークフローに従います。

  1. query_datasetを使用してデータをダウンロードします

    result = query_dataset(
        dataset="blocks",  # or "transactions", "logs", etc.
        blocks="15000000:15001000",  # or use blocks_from_latest=100
        output_format="parquet"  # important: use parquet for SQL
    )
    files = result.get("files", [])  # Get the returned file paths
  2. get_sql_table_schemaを使用してスキーマを探索します

    # Check what columns are available in the file
    schema = get_sql_table_schema(files[0])
    # Now you can see all columns, data types, and sample data
  3. query_sqlSQL を実行します

    # Option 1: Simple table reference (DuckDB will match the table name to file)
    sql_result = query_sql(
        query="SELECT block_number, timestamp, gas_used FROM blocks",
        files=files  # Pass the files from step 1
    )
    
    # Option 2: Using read_parquet() with explicit file path
    sql_result = query_sql(
        query=f"SELECT block_number, timestamp, gas_used FROM read_parquet('{files[0]}')",
        files=files  # Pass the files from step 1
    )

あるいは、 query_blockchain_sqlと組み合わせたアプローチを使用します。

# Option 1: Simple table reference
result = query_blockchain_sql(
    sql_query="SELECT * FROM blocks",
    dataset="blocks",
    blocks_from_latest=100
)

# Option 2: Using read_parquet()
result = query_blockchain_sql(
    sql_query="SELECT * FROM read_parquet('/path/to/file.parquet')",  # Path doesn't matter
    dataset="blocks",
    blocks_from_latest=100
)

完全な動作例については、 examples/sql_workflow_example.pyを参照してください。

Related MCP server: EVM MCP Server

特徴

  • 完全なCryoデータセットアクセス:APIサーバーを介して任意のCryoデータセットをクエリします

  • MCP統合:MCPクライアントとシームレスに連携

  • 柔軟なクエリオプション: すべての主要なCryoフィルタリングと出力オプションをサポート

  • ブロック範囲オプション: 特定のブロック、最新のブロック、または相対範囲を照会します

  • 契約フィルタリング: 契約アドレスでデータをフィルタリング

  • 最新ブロックアクセス:最新のイーサリアムブロックデータに簡単にアクセスできます

  • 複数の出力形式: JSON、CSV、Parquet をサポート

  • スキーマ情報: 詳細なデータセットスキーマとサンプルデータを取得します

  • SQLクエリ:ダウンロードしたブロックチェーンデータに対して直接SQLクエリを実行します。

インストール(オプション)

uvxを使用してツールを直接実行する場合、これは必要ありません。

# install with UV (recommended)
uv tool install cryo-mcp

要件

  • Python 3.8以上

  • 紫外線

  • Cryoの稼働中の設備

  • Ethereum RPCエンドポイントへのアクセス

  • DuckDB(SQLクエリ機能用)

クイックスタート

クロードコードでの使用

  1. 対話型プロンプトを表示するにはclaude mcp add実行します。

  2. 実行するコマンドとしてuvxと入力します。

  3. 引数としてcryo-mcp --rpc-url <ETH_RPC_URL> [--data-dir <DATA_DIR>]を入力します。

  4. あるいは、代わりにETH_RPC_URLCRYO_DATA_DIR環境変数として指定します。

claudeの新しいインスタンスは、RPC エンドポイントにアクセスし、指定されたディレクトリにデータを保存するように構成されたとおりに cryo にアクセスできるようになっています。

利用可能なツール

Cryo MCP は次の MCP ツールを公開します。

list_datasets()

利用可能なすべての Cryo データセットのリストを返します。

例:

client.list_datasets()

query_dataset()

さまざまなフィルタリング オプションを使用して Cryo データセットをクエリします。

パラメータ:

  • dataset (str): クエリするデータセットの名前 (例: 'blocks'、'transactions'、'logs')

  • blocks (文字列、オプション): ブロック範囲の指定(例:'1000:1010')

  • start_block (int, オプション): 開始ブロック番号(blocks の代替)

  • end_block (int, オプション): 終了ブロック番号 (blocks の代替)

  • use_latest (bool, オプション): Trueの場合、最新のブロックを照会します

  • blocks_from_latest (int, オプション): 最新から含めるブロックの数

  • contract (文字列、オプション): フィルタリングする契約アドレス

  • output_format (str, オプション): 出力形式 ('json', 'csv', 'parquet')

  • include_columns (リスト、オプション): デフォルトと一緒に含める列

  • exclude_columns (リスト、オプション): デフォルトから除外する列

例:

# Get transactions from blocks 15M to 15.01M
client.query_dataset('transactions', blocks='15M:15.01M')

# Get logs for a specific contract from the latest 100 blocks
client.query_dataset('logs', blocks_from_latest=100, contract='0x1234...')

# Get just the latest block
client.query_dataset('blocks', use_latest=True)

lookup_dataset()

スキーマやサンプル データなど、特定のデータセットに関する詳細情報を取得します。

パラメータ:

  • name (str): 検索するデータセットの名前

  • sample_start_block (int, オプション): サンプルデータの開始ブロック

  • sample_end_block (int, オプション): サンプルデータの終了ブロック

  • use_latest_sample (bool, オプション): サンプルに最新のブロックを使用する

  • sample_blocks_from_latest (int, オプション): サンプルの最新からのブロック数

例:

client.lookup_dataset('logs')

get_latest_ethereum_block()

最新の Ethereum ブロックに関する情報を返します。

例:

client.get_latest_ethereum_block()

SQLクエリツール

Cryo MCP には、ブロックチェーン データに対して SQL クエリを実行するためのツールがいくつか含まれています。

query_sql()

ダウンロードしたブロックチェーン データに対して SQL クエリを実行します。

パラメータ:

  • query (str): 実行するSQLクエリ

  • files (リスト, オプション): クエリ対象の parquet ファイルパスのリスト。指定しない場合は、データディレクトリ内のすべてのファイルが使用されます。

  • include_schema (bool, オプション): 結果にスキーマ情報を含めるかどうか

例:

# Run against all available files
client.query_sql("SELECT * FROM read_parquet('/path/to/blocks.parquet') LIMIT 10")

# Run against specific files
client.query_sql(
    "SELECT * FROM read_parquet('/path/to/blocks.parquet') LIMIT 10",
    files=['/path/to/blocks.parquet']
)

query_blockchain_sql()

SQL を使用してブロックチェーン データをクエリし、必要なデータを自動的にダウンロードします。

パラメータ:

  • sql_query (str): 実行するSQLクエリ

  • dataset (文字列、オプション): クエリするデータセット(例:'blocks'、'transactions')

  • blocks (文字列、オプション): ブロック範囲の指定

  • start_block (int, オプション): 開始ブロック番号

  • end_block (int, オプション): 終了ブロック番号

  • use_latest (bool, オプション): Trueの場合、最新のブロックを照会します

  • blocks_from_latest (int, オプション): 含める最新のブロックの前のブロック数

  • contract (文字列、オプション): フィルタリングする契約アドレス

  • force_refresh (bool, オプション): 新しいデータが存在する場合でも強制的にダウンロードする

  • include_schema (bool, オプション): 結果にスキーマ情報を含める

例:

# Automatically downloads blocks data if needed, then runs the SQL query
client.query_blockchain_sql(
    sql_query="SELECT block_number, gas_used, timestamp FROM blocks ORDER BY gas_used DESC LIMIT 10",
    dataset="blocks",
    blocks_from_latest=100
)

list_available_sql_tables()

SQL でクエリできる利用可能なすべてのテーブルを一覧表示します。

例:

client.list_available_sql_tables()

get_sql_table_schema()

特定の parquet ファイルのスキーマを取得します。

パラメータ:

  • file_path (str): parquetファイルへのパス

例:

client.get_sql_table_schema("/path/to/blocks.parquet")

get_sql_examples()

さまざまなブロックチェーン データセットの SQL クエリの例を取得します。

例:

client.get_sql_examples()

設定オプション

Cryo MCP サーバーを起動するときに、次のコマンドライン オプションを使用できます。

  • --rpc-url URL : Ethereum RPC URL (ETH_RPC_URL 環境変数を上書きします)

  • --data-dir PATH : ダウンロードしたデータを保存するディレクトリ (CRYO_DATA_DIR 環境変数を上書きします。デフォルトは ~/.cryo-mcp/data/ です)

環境変数

  • ETH_RPC_URL : コマンドラインで指定されていない場合に使用するデフォルトの Ethereum RPC URL

  • CRYO_DATA_DIR : コマンドラインで指定されていない場合にダウンロードしたデータを保存するデフォルトのディレクトリ

高度な使用法

ブロックチェーンデータに対するSQLクエリ

Cryo MCP を使用すると、SQL の柔軟性と Cryo のデータ抽出機能を組み合わせて、ブロックチェーン データに対して強力な SQL クエリを実行できます。

2段階のSQLクエリフロー

データの抽出とクエリを 2 つの別々のステップに分割できます。

# Step 1: Download data and get file paths
download_result = client.query_dataset(
    dataset="transactions",
    blocks_from_latest=1000,
    output_format="parquet"
)

# Step 2: Use the file paths to run SQL queries
file_paths = download_result.get("files", [])
client.query_sql(
    query=f"""
    SELECT 
        to_address as contract_address, 
        COUNT(*) as tx_count,
        SUM(gas_used) as total_gas,
        AVG(gas_used) as avg_gas
    FROM read_parquet('{file_paths[0]}')
    WHERE to_address IS NOT NULL
    GROUP BY to_address
    ORDER BY total_gas DESC
    LIMIT 20
    """,
    files=file_paths
)

複合SQLクエリフロー

便宜上、両方のステップを処理する結合関数を使用することもできます。

# Get top gas-consuming contracts
client.query_blockchain_sql(
    sql_query="""
    SELECT 
        to_address as contract_address, 
        COUNT(*) as tx_count,
        SUM(gas_used) as total_gas,
        AVG(gas_used) as avg_gas
    FROM read_parquet('/path/to/transactions.parquet')
    WHERE to_address IS NOT NULL
    GROUP BY to_address
    ORDER BY total_gas DESC
    LIMIT 20
    """,
    dataset="transactions",
    blocks_from_latest=1000
)

# Find blocks with the most transactions
client.query_blockchain_sql(
    sql_query="""
    SELECT 
        block_number, 
        COUNT(*) as tx_count
    FROM read_parquet('/path/to/transactions.parquet')
    GROUP BY block_number
    ORDER BY tx_count DESC
    LIMIT 10
    """,
    dataset="transactions",
    blocks="15M:16M"
)

# Analyze event logs by topic
client.query_blockchain_sql(
    sql_query="""
    SELECT 
        topic0, 
        COUNT(*) as event_count
    FROM read_parquet('/path/to/logs.parquet')
    GROUP BY topic0
    ORDER BY event_count DESC
    LIMIT 20
    """,
    dataset="logs",
    blocks_from_latest=100
)

:SQLクエリの場合、DuckDBで最適なパフォーマンスを確保するには、データをダウンロードする際に必ずoutput_format="parquet"を使用してください。query_blockchain_sql query_blockchain_sql使用する場合は、 read_parquet()関数を使用してSQL内でファイルパスを直接参照する必要があります。

ブロック範囲によるクエリ

Cryo MCP は、Cryo のブロック仕様構文の全範囲をサポートします。

# Using block numbers
client.query_dataset('transactions', blocks='15000000:15001000')

# Using K/M notation
client.query_dataset('logs', blocks='15M:15.01M')

# Using offsets from latest 
client.query_dataset('blocks', blocks_from_latest=100)

契約フィルタリング

契約アドレス別にログやその他のデータをフィルタリングします。

# Get all logs for USDC contract
client.query_dataset('logs', 
                    blocks='16M:16.1M', 
                    contract='0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48')

列の選択

必要な列のみを含めます。

# Get just block numbers and timestamps
client.query_dataset('blocks', 
                    blocks='16M:16.1M', 
                    include_columns=['number', 'timestamp'])

発達

プロジェクト構造

cryo-mcp/
├── cryo_mcp/           # Main package directory
│   ├── __init__.py     # Package initialization
│   ├── server.py       # Main MCP server implementation
│   ├── sql.py          # SQL query functionality
├── tests/              # Test directory
│   ├── test_*.py       # Test files
├── pyproject.toml      # Project configuration
├── README.md           # Project documentation

テストを実行する

uv run pytest

ライセンス

マサチューセッツ工科大学

クレジット

  • パラダイムの素晴らしいCryoツールをベースに構築

  • API通信にMCPプロトコルを使用する

Install Server
A
license - permissive license
A
quality
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • MCP server connecting AI agents to non-custodial staking data across 130+ networks.

  • Abstraxn: public Web3 MCP server for read-only chain data and pay-per-call relays.

  • Hosted MCP server for live Bittensor chain reads and self-custodial on-chain writes.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/z80dev/cryo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server