Skip to main content
Glama

Cryo MCP Server

by z80dev

クライオ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を参照してください。

特徴

  • 完全なCryoデータセットアクセス:APIサーバーを介して任意のCryoデータセットをクエリします
  • 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プロトコルを使用する

Related MCP Servers

  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol (MCP) server that provides comprehensive cryptocurrency analysis using the CoinCap API. This server offers real-time price data, market analysis, and historical trends through an easy-to-use interface.
    Last updated -
    3
    453
    30
    TypeScript
    MIT License
    • Apple
  • -
    security
    F
    license
    -
    quality
    A Model Context Protocol server providing tools for querying Bitcoin blockchain data via Blockchain Data and Query APIs, supporting various BTC information retrieval functions.
    Last updated -
    Python
    • Linux
    • Apple
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol (MCP) server that provides comprehensive cryptocurrency analysis using the CoinCap API. This server offers real-time price data, market analysis, and historical trends through an easy-to-use interface. Updated to use Coin Cap API v3
    Last updated -
    3
    514
    TypeScript
    MIT License
    • Apple
  • A
    security
    A
    license
    A
    quality
    A MCP server offering tools for cryptocurrency research and Ethereum-based automation.
    Last updated -
    113
    619
    39
    TypeScript
    AGPL 3.0

View all related MCP servers

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