mcpField
C
canhelp

canhelp

github.com/dfinity开发39209 次安装今天更新
代码仓库

关于 canhelp

canhelp 是供开发者检查 Internet Computer Canister 接口的技能。它解析 Canister 名称或 ID、获取 Candid 文件,并按结构整理方法与类型。

主要功能

  1. 01解析 Canister 名称或 ID
  2. 02获取 Candid 接口
  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 中的容器 ID 或名称,获取并总结其 Candid 接口。

步骤

  1. 通过运行技能基础目录中的解析脚本来解析容器 ID:

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

    如果 $ARGUMENTS 已是有效的主体 ID,脚本会原样输出。 否则,脚本会查询 IC Dashboard API,并以 <canister-id> <name>(每行一条)的格式输出匹配项。

    • 如果只有一个结果,请清楚地显示解析出的容器 ID,并直接使用它。
    • 如果有多个结果,请向用户展示列表,并让用户在继续前选出一个。
  2. 使用解析出的容器 ID 获取 Candid 接口:

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

    脚本会输出已下载 .did 文件的路径。

  3. 使用 Read 工具读取文件。

  4. 按以下结构以易读的形式呈现结果:

    容器 <canister-id>

    查询方法:

    • method_name(arg1: type1, arg2: type2) → return_type — 根据名称推断出的方法功能简介

    更新方法:

    • method_name(arg1: type1) → return_type

    类型:

    • 列出接口中定义的所有自定义 record/variant 类型及其字段

指南

  • 按查询方法和更新方法分组
  • 在每组内按字母顺序对方法排序
  • 对于复杂的嵌套类型,展示顶层结构并注明存在嵌套
  • 如果 Candid 非常庞大(>100 个方法),则显示方法总数,并仅列出看起来最重要的方法,同时表示可按需展示完整列表
  • 如果获取成功但 Candid 接口为空,请说明该容器未在 wasm 元数据中公开其 Candid 接口
  • 如果获取失败,请建议用户确认容器 ID,并确认已安装 icp

评论

支持 Markdown