mcpField
C
chia-mcp

chia-mcp

ローカル
github.com/Chia-Network金融データ01 週間前に更新

chia-mcp について

chia-mcpは、ホスト型ノードまたは設定したフルノードRPCを通じてChiaブロックチェーンを照会するMCPサーバーです。チェーンの調査や分析向けに、ブロック、コイン、取引の取得と要約を提供します。

主な機能

  1. 01Chia照会用の36ツール
  2. 02ブロックとコイン記録の検索
  3. 03メンプールと手数料の確認
  4. 04アドレス残高の集計とコイン追跡
  5. 05オファーのデコードとブロック要約
  6. 06アドレスとコインIDのローカル計算

活用シーン

  1. 01ネットワーク状態と残高の確認
  2. 02ブロック、コイン、取引の調査
  3. 03コインの由来追跡と資金移動の要約
  4. 04オファーのデコードと手数料の見積もり

MCP 対応

Chiaフルノードの照会機能をMCPツールとして公開し、ライブネットワーク状態のリソースとタスク別プロンプトも提供します。多くの呼び出しはCoinsetのホストノードを使い、フルノードURLも設定できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"danieljperry-chia": {
"command": "npx",
"args": [
"-y",
"chia-mcp"
]
}
}
}
起動コマンドnpx -y chia-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmchia-mcp1.0.1

ツール

36

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

chia-mcp

Chia ブロックチェーンを照会する 36 個のツール(push_tx とローカルノードのオプションを含めると最大 38 個)を公開する Model Context Protocol (MCP) サーバーです。Coinset のホスト型ノードを使用するため、ローカルの Chia ノードは不要です。

クイックスタート

Claude Desktop

設定ファイルに追加します。

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "chia": {
      "command": "npx",
      "args": ["-y", "chia-mcp"]
    }
  }
}
Claude Code
claude mcp add chia -- npx -y chia-mcp
claude mcp add chia --env CHIA_NETWORK=testnet11 -- npx -y chia-mcp
Cursor

プロジェクト内の .cursor/mcp.json またはグローバル設定の ~/.cursor/mcp.json に追加します。

{
  "mcpServers": {
    "chia": {
      "command": "npx",
      "args": ["-y", "chia-mcp"]
    }
  }
}
VS Code

ユーザー設定(JSON)または .vscode/mcp.json に追加します。

{
  "mcp": {
    "servers": {
      "chia": {
        "command": "npx",
        "args": ["-y", "chia-mcp"]
      }
    }
  }
}
テストネット

CHIA_NETWORK に testnet11 を設定します。

{
  "mcpServers": {
    "chia": {
      "command": "npx",
      "args": ["-y", "chia-mcp"],
      "env": {
        "CHIA_NETWORK": "testnet11"
      }
    }
  }
}

環境変数

変数デフォルト説明
CHIA_NETWORKmainnet接続先ネットワーク:mainnet または testnet11
CHIA_FULL_NODE_URL(ネットワークから自動設定)フルノードの RPC エンドポイント URL を上書きします(例:https://api.coinset.org または独自のノード)。ローカルの Chia ノードには mTLS クライアント証明書が必要です。chia-mcp はクライアント証明書を直接サポートしていないため、mTLS を終端するリバースプロキシを使用してください。
CHIA_MCP_ENABLE_PUSH_TX(未設定)push_tx ツールを有効にするには 1 または true を設定します(安全のため、デフォルトでは無効です)

利用可能なツール

ブロックチェーンの状態
  • get_blockchain_state — 現在のチェーン状態:ピーク高、同期状況、難易度、サブスロット反復回数、メンプールサイズ、ネットワーク容量の推定値。
  • get_network_info — ネットワーク名とアドレスプレフィックス(xch/txch)。
  • get_routes — ノードで利用可能なすべての RPC エンドポイントを一覧表示します(Coinset 以外のノードでのみ利用可能)。
ブロック
  • get_block — ヘッダーハッシュで指定したブロック全体(トランザクション、証明、報酬)。
  • get_block_record — ヘッダーハッシュで指定したブロックレコード(ブロック全体より軽量)。
  • get_block_record_by_height — 指定した高さのブロックレコードメタデータ(ブロック全体より軽量)。
  • get_block_records — 高さの範囲 [start, end) に含まれるブロックレコード。
  • get_blocks — 高さの範囲 [start, end) に含まれるブロック全体。
  • get_block_spends — ヘッダーハッシュで指定したブロック内のすべてのコイン支出。
  • get_block_spends_with_conditions — ヘッダーハッシュで指定したブロック内のコイン支出と、解析済み CLVM 条件。
  • get_additions_and_removals — ブロック内で作成または消費されたすべてのコイン。
  • get_unfinished_block_headers — 未完了のブロックヘッダー(処理中のブロック)。
  • get_block_count_metrics — ブロック数の指標(圧縮済み/未圧縮の件数)。
コイン
  • get_coin_record_by_name — ID(親コイン+パズルハッシュ+金額の sha256)で指定した単一のコイン。
  • get_coin_records_by_names — ID で指定した複数のコイン(一括検索)。
  • get_coin_records_by_puzzle_hash — パズルハッシュにロックされたコイン。使用済み状態や高さによるフィルターを任意で指定できます。
  • get_coin_records_by_puzzle_hashes — 複数のパズルハッシュにロックされたコイン(一括検索)。
  • get_coin_records_by_hint — ヒントが付与されたコイン(CAT/NFT トランザクションでよく使用されます)。
  • get_coin_records_by_hints — 複数のヒントが付与されたコイン(一括検索)。
  • get_coin_records_by_parent_ids — 特定の親コインから作成されたコイン(系譜の追跡)。
  • get_puzzle_and_solution — 指定した高さで消費されたコインの CLVM パズルとソリューション。
  • get_puzzle_and_solution_with_conditions — 消費されたコインのパズル、ソリューション、および解析済み CLVM 条件。
  • get_memos_by_coin_name — コインに関連付けられたメモ/メッセージ。
メンプール
  • get_all_mempool_tx_ids — 保留中のトランザクション ID をすべて一覧表示します。
  • get_all_mempool_items — 詳細情報を含むメンプール項目すべて(大量になる場合があります)。
  • get_mempool_item_by_tx_id — トランザクション ID で指定した単一のメンプール項目。
  • get_mempool_items_by_coin_name — 特定のコインを参照するメンプール項目。
  • get_fee_estimate — 目標とする取り込み時間に対する手数料の推定値。
トランザクション
  • push_tx — 署名済みの spend bundle を mempool に送信します。
  • get_aggsig_additional_data — 署名検証用の AGG_SIG 追加データです。
ネットワーク
  • get_network_space — 2つのブロック間のネットワーク全体の容量を推定します。
複合(高レベルのクエリ、複数の RPC)
  • get_address_summary — アドレスまたは puzzle hash の完全な残高サマリーです。すべての未使用コインをページごとに取得し、complete フラグ付きで正確な合計を算出します。残高の確認にはこの方法を使用してください。
  • decode_offer — Chia のオファー文字列(offer1...)を、コインの支出、金額、コイン ID、パズルサイズ、署名ステータスを含む構造化サマリーにデコードします。正確な解析には公式の chia-wallet-sdk を使用します。
  • trace_coin_lineage — コインの系譜を起源(coinbase)までたどります。max_depth 回まで親リンクをたどります。
  • summarize_block — ブロック内のすべてのコイン移動を簡潔にまとめます。件数、合計、最大の移動、puzzle hash ごとの純フローが含まれます。生の get_additions_and_removals(1 MB 以上になることがあります)よりもはるかに便利です。
ユーティリティ(ローカルでの計算、RPC 不要)
  • address_encode — puzzle hash を bech32m Chia アドレス(xch1.../txch1...)に変換します。
  • address_decode — bech32m Chia アドレスを puzzle hash にデコードします。
  • coin_id — parent_coin_id + puzzle_hash + amount からコイン ID を計算します。

ツールの例

よく使用されるツールの入力 → 出力形式を示すクイックリファレンスです。

get_blockchain_state
Input:  {} (no parameters)
Output: { peak_height: 9470000, sync: { synced: true }, difficulty: 2528, space: "33501849665552384", mempool_size: 3, ... }
get_coin_record_by_name
Input:  { name: "0xabc123..." }
Output: { coin: { parent_coin_info: "0x...", puzzle_hash: "0x...", amount: 1750000000000 }, confirmed_block_index: 5000000, spent_block_index: 5000042, coinbase: false, timestamp: 1700000000 }
get_coin_records_by_puzzle_hash
Input:  { puzzle_hash: "0xabc123...", include_spent_coins: false }
Output: [ { coin: { ... }, confirmed_block_index: ..., spent_block_index: 0 }, ... ]
Note:   Response truncated at 50KB. For complete balance, use get_address_summary instead.
get_address_summary
Input:  { address: "xch1abc123..." }
Output: { total_balance_mojos: "1750000000000", total_balance_xch: "1.75", coin_count: 3, complete: true, oldest_coin_height: 4500000, newest_coin_height: 9400000 }
Note:   Pages through ALL unspent coins. The `complete` flag indicates whether the full balance was reached.
trace_coin_lineage
Input:  { coin_id: "0xabc123...", max_depth: 10 }
Output: { lineage: [ { coin_id: "0x...", parent: "0x...", amount: 1750000000000, height: 5000042 }, ... ], depth_reached: 5, reached_coinbase: true }
summarize_block
Input:  { header_hash: "0xabc123..." }
Output: { height: 5000042, is_transaction_block: true, num_additions: 12, num_removals: 6, total_amount_created: "3500000000000", total_amount_spent: "3500000000000", top_movements: [ ... ] }
Note:   Much smaller than raw get_additions_and_removals (which can be 1+ MB).
decode_offer
Input:  { offer: "offer1..." }
Output: { valid: true, summary: { offered: { xch: "1.0" }, requested: { "asset_id_abc...": 100 } }, coin_spends: 3, has_signature: true }
address_encode
Input:  { puzzle_hash: "0xabc123...", prefix: "xch" }
Output: { address: "xch1abc123..." }
Note:   Local computation — no RPC call.
address_decode
Input:  { address: "xch1abc123..." }
Output: { puzzle_hash: "0xabc123..." }
Note:   Local computation — no RPC call.
coin_id
Input:  { parent_coin_info: "0x...", puzzle_hash: "0x...", amount: 1750000000000 }
Output: { coin_id: "0xabc123..." }
Note:   SHA256(parent + puzzle_hash + amount). Accepts string amounts for values > Number.MAX_SAFE_INTEGER.

リソース

ネットワーク状態(ライブ)
  • chia://network/mainnet — Mainnet の接続情報とライブのブロックチェーン状態です。
  • chia://network/testnet11 — Testnet11 の接続情報とライブのブロックチェーン状態です。
ガイド(埋め込みドキュメント)
  • chia://guide/coin-model — Chia の coin/UTXO モデル、spend bundle、トークン規格、および LLM によくある誤りについて説明します。
  • chia://guide/rpc-quickstart — curl の例と Coinset エンドポイントを含む、一般的な RPC 呼び出しについて説明します。
  • chia://guide/recipes — 残高確認、トランザクションの追跡、CAT の検出について、失敗モードを含めた手順を説明します。

仕組み

このサーバーは、Coinset のホスト型エンドポイントを使用して Chia full node RPC API をラップします。

  • Mainnet: https://api.coinset.org/<method>
  • Testnet11: https://testnet11.api.coinset.org/<method>

すべての RPC 呼び出しは、JSON ボディを使ったシンプルな HTTP POST リクエストです。認証は不要です。

Coinset ホスト型ノードとローカルノード

ほとんどのツールは、任意の Chia フルノード(Coinset がホストするノード、または独自のノード)で動作します。3 つのツールはCoinset 拡張機能であり、chia-blockchain のフルノード RPC API には存在しないため、ローカルノードまたはシミュレーターに対して実行すると HTTP 404 が返されます。

ツールCoinsetローカルノード/シミュレーター
get_puzzle_and_solution_with_conditions✅❌ — get_puzzle_and_solution とローカルの CLVM 評価を使用してください
get_memos_by_coin_name✅❌
get_coin_records_by_hints✅❌ — 存在するのは単数形の get_coin_records_by_hint のみです

シミュレーターとの互換性: Coinset の拡張エンドポイントを使用するコードは、シミュレーターやローカルノードでは動作しません。シミュレーター(chia dev sim)と標準の chia-blockchain ノードは、同じ標準 RPC サーフェスに対応しています。最大限の互換性を確保するには、標準 RPC を使用してシミュレーター上で開発してください。本番環境でのクエリを便利にするには、Coinset 拡張機能を使用してください。

共通 RPC: get_network_info と get_aggsig_additional_data は、すべての Chia サービスで利用できる共通 RPC エンドポイントです(フルノード専用ではありません)。Coinset とローカルノードのどちらでも動作します。

意図的に省略した RPC: 上流のフルノード RPC のうち、ツールとして公開していないものが 3 つあります。get_constants(静的データは constants.json で提供する方が適切)、get_recent_signage_point_or_eos(エージェントにとって有用ではない内部コンセンサスの詳細)、create_block_generator(タイムロード/ファーマー向けの内部機能)です。それ以外のフルノード RPC はすべて公開されています。

プロンプト

このサーバーは、一般的な Chia タスクにおけるツールの実行順序と失敗時の動作を定めた 9 つのプロンプトを提供します。

プロンプト説明
network_statusChia ネットワークの現在の状態(ピークの高さ、同期状態、難易度、メンプール)を確認します。
address_balance正確な残高を確認するため、get_address_summary を使用して Chia アドレスの XCH 残高を確認します。
coin_lookupコイン ID を指定して特定のコインを検索し、詳細を確認します。
trace_lineageコインの親チェーンをたどり、資金の由来を確認します。
block_summaryトランザクション数、移動した価値、上位アドレスなど、ブロックの内容を要約します。
transaction_statusトランザクションが承認済み、メンプール内、または削除済みかを確認します。
offer_safetyChia オファーを安全に受け入れられるかどうかを評価します(隠れた支出、資産の検証、有効期限)。
token_verification信頼できるレジストリで資産 ID を確認し、トークン(CAT)が正規のものかどうかを検証します。
fee_selection現在のネットワーク状況に基づき、Chia トランザクションに適切な手数料を決定します。

既知の制限事項

  • Coinset のホストノードでは get_routes を利用できません — HTTP 404 が返されます。これは Coinset の制限であり、このサーバーの不具合ではありません。ローカルの Chia ノードに接続した場合は、このツールを利用できます。
  • 大きな整数の精度 — 既知のすべての uint64 フィールド(amount、space、timestamp、weight、total_iters、sub_slot_iters、required_iters、fee、cost、mempool_cost、mempool_max_total_cost、mempool_min_fee_per_cost)は、JavaScript の精度損失を防ぐため、レスポンスでは文字列として引用符で囲まれます。また、桁数が 16 桁以上の引用符で囲まれていない整数も、同様に引用符で囲まれます。coin_id ツールでは、Number.MAX_SAFE_INTEGER を超える値の金額も文字列で指定できます。
  • レスポンスの切り詰め — 50 KB を超えるレスポンスは自動的に切り詰められます。切り詰めを避けるには、より絞り込んだクエリパラメーター(高さの範囲を狭める、まとめて検索する代わりに特定の coin ID を指定するなど)を使用してください。
  • 429 では push_tx を再試行しません — RPC が HTTP 429(レート制限)を返した場合、push_tx を除くすべてのメソッドは、遅延後に 1 回再試行されます。トランザクションの誤った再ブロードキャストを防ぐため、push_tx は再試行の対象外です。
  • network_verified のライフサイクル — すべてのレスポンスエンベロープの network_verified フィールドは、最初の RPC プローブが成功するまで "pending" です。その後、一致する場合は true、不一致の場合は false になります。設定されたノードに到達できない場合は、false(プローブ失敗)になります。
  • npm audit のアドバイザリ — MCP SDK の推移的依存関係について、npm audit のアドバイザリが報告される場合があります。stdio-transport の設定では HTTP サーバーが公開されないため、これらに到達することはできません。標準的な chia-mcp のデプロイにおけるセキュリティ態勢には影響しません。

ソースからインストールする

開発またはコントリビューションを行う場合:

git clone https://github.com/Chia-Network/chia-mcp.git
cd chia-mcp
npm install
npm run build

MCP クライアントの設定で npx -y chia-mcp の代わりに node /path/to/chia-mcp/dist/index.js を使用してください。たとえば、Claude Desktop では次のようにします。

{
  "mcpServers": {
    "chia": {
      "command": "node",
      "args": ["/path/to/chia-mcp/dist/index.js"]
    }
  }
}
開発
npm test                # Run test suite
npm run dev             # Watch mode (recompiles on changes)
node dist/index.js      # Run the server directly

ライセンス

Apache-2.0

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。