mcpField
C
canhelp

canhelp

github.com/dfinity開発39209 回インストール今日更新
リポジトリ

canhelp について

canhelpは、Internet ComputerのCanisterインターフェースを調べる開発者向けスキルです。Canister名またはIDを解決してCandidファイルを取得し、メソッドと型を整理して要約します。

主な機能

  1. 01Canister名またはIDの解決
  2. 02Candidインターフェースの取得
  3. 03クエリと更新メソッドの分類
  4. 04カスタム型の要約
  5. 05複数候補や取得エラーへの対応

活用シーン

  1. 01統合前のCanister調査
  2. 02利用可能なメソッドと型の確認
  3. 03インターフェース取得失敗の原因調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dfinity/icskills --skill canhelp

インストール後、Claude Code で/canhelpを入力して読み込まれたか確認します。

同梱ファイルscripts/fetch-candid.shscripts/resolve-canister-id.sh

詳細

$ARGUMENTS で指定された Canister ID または名前を使って、Candid インターフェースを取得し、要約します。

手順

  1. スキルのベースディレクトリにある resolve スクリプトを実行して、Canister ID を解決します。

    ./scripts/resolve-canister-id.sh "$ARGUMENTS"
    

    $ARGUMENTS がすでに有効なプリンシパルの場合、スクリプトはその値をそのまま出力します。 それ以外の場合、IC Dashboard API に問い合わせ、一致した項目を <canister-id> <name>(1 行に 1 件)として出力します。

    • 結果が 1 件の場合、解決された Canister ID を明確に表示し、そのまま使用します。
    • 結果が複数ある場合、一覧をユーザーに提示し、続行する前に 1 つ選ぶよう依頼します。
  2. 解決された Canister ID を使って Candid インターフェースを取得します。

    ./scripts/fetch-candid.sh <resolved-canister-id>
    

    スクリプトは、ダウンロードした .did ファイルのパスを出力します。

  3. Read ツールを使ってファイルを読み取ります。

  4. 次の構成で、読みやすい要約を提示します。

    Canister <canister-id>

    クエリメソッド:

    • method_name(arg1: type1, arg2: type2) → return_type — メソッド名から推測できる場合は、1 行で説明します

    更新メソッド:

    • method_name(arg1: type1) → return_type

    型:

    • インターフェースで定義されたカスタムのレコード型やバリアント型を、各フィールドとともに列挙します

ガイドライン

  • メソッドをクエリと更新に分けます
  • 各グループ内のメソッドはアルファベット順に並べます
  • 複雑な入れ子型は最上位の構造を示し、入れ子があることを記します
  • Candid が非常に大きい場合(100 メソッド超)は、件数の概要を示し、重要度が高そうなメソッドのみを列挙して、必要であれば全リストを提示できることを伝えます
  • 取得に成功したものの Candid インターフェースが空の場合、その Canister は wasm メタデータで Candid インターフェースを公開していないと説明します
  • 取得に失敗した場合は、Canister ID と icp がインストールされていることを確認するよう提案します

コメント