关于 ask-mcp
ask-mcp 是用于研究 Light Protocol、Solana 开发、Claude Code 和 Agent Skills 技术问题的技能,结合本地文件检查与 DeepWiki 查询,并强调回答准确且附有来源。
主要功能
- 01通过 DeepWiki 研究代码库
- 02用 Glob、Grep 和 Read 检查本地文件
- 03用 Task 子 Agent 并行研究
- 04回答附技术引用
适用场景
- 01调查 Light Protocol 实现问题
- 02查找 Claude Code 命令与配置
- 03研究 Solana 程序和客户端 SDK
MCP 相关
通过 DeepWiki MCP 查询公开代码库的结构、内容和技术问题。也会调用 mcp__zkcompression__SearchLightProtocol 获取代码库背景。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ lightprotocol/ skills --skill ask-mcp安装后在 Claude Code 中输入/ask-mcp确认已加载。
详细介绍
DeepWiki 研究
通过 DeepWiki MCP 查询代码仓库,针对技术问题给出精准且有来源依据的回答。
工作流
- 理解问题
- 确定用户在询问什么,以及问题属于哪个领域
- 如果问题有歧义,说明你的理解并请求澄清
- 收集上下文
- 将问题与下方的执行步骤对应
- 使用
Glob、Grep和Read查找相关的本地文件 - 查询 DeepWiki MCP (
mcp__deepwiki__ask_question) 和mcp__zkcompression__SearchLightProtocol,获取代码仓库级别的上下文 - 必要时使用
Task子 Agent 并行研究多个代码仓库
- 综合并作答
执行步骤
1. 阅读当前代码仓库中的必需上下文
使用 Glob 和 Grep 在当前代码仓库中查找相关文件。使用 Read 提取回答所需的具体内容。
2. 确定问题范围
判断问题所属领域:
- 程序、客户端 SDK、架构、实现细节
- 特定组件(LightAccount、ValidityProof、CPI 等)
3. 获取代码仓库上下文
根据问题范围选择合适的代码仓库:
Light Protocol(压缩账户、状态树、ZK 压缩、Light SDK)
mcp__deepwiki__read_wiki_structure("Lightprotocol/light-protocol")
mcp__deepwiki__read_wiki_contents("Lightprotocol/light-protocol")
mcp__deepwiki__ask_question("Lightprotocol/light-protocol", "your question")
Solana 开发(程序、账户、通用 Solana)
mcp__deepwiki__read_wiki_structure("blueshift-gg/blueshift-dashboard")
mcp__deepwiki__read_wiki_contents("blueshift-gg/blueshift-dashboard")
mcp__deepwiki__ask_question("blueshift-gg/blueshift-dashboard", "your question")
Claude Code(CLI 功能、命令、配置)
mcp__deepwiki__read_wiki_structure("anthropics/claude-code")
mcp__deepwiki__read_wiki_contents("anthropics/claude-code")
mcp__deepwiki__ask_question("anthropics/claude-code", "your question")
Agent 技能(技能、子 Agent、模式)
mcp__deepwiki__read_wiki_structure("anthropics/skills")
mcp__deepwiki__read_wiki_contents("anthropics/skills")
mcp__deepwiki__ask_question("anthropics/skills", "your question")
4. 应用精确性规则
避免:
- 模糊的动词:“处理”“管理”“执行”“启用”“提供”
- 抽象名词:“操作”“管理”“协调”
- 在有更精确动词时使用 -ing 形式
- 营销用语:“全面”“丰富”“无缝”“启用”“提供能力”
- 面向用户的文档中使用 ZK 术语:“包含性证明”“不包含性证明” → 应改为描述其作用:“证明地址不存在”“证明账户哈希存在”
- 泛泛而谈的描述:用
CompressedAccountMeta替代“账户元数据”
使用:
- 精确的函数/方法名称
- 具体的数据结构
- 具体的操作:“设置 discriminator”“创建哈希”“使账户失效”
- 文件:行号引用
- 描述引用账户数组中账户的 u8 索引时使用“reference”(Solana 标准术语)
- 将 “CPI” 用作动词(例如,“对 Account Compression Program 执行 CPI”)
- 在上下文明确时,将技术方法/函数名称用作动词
准确描述实际发生的事情。
5. 格式化回答
回答应包含:
- 技术精确性
- 带行内注释的代码示例
- 来源引用(文件路径、行号)
输出示例
问题: 创建压缩账户时,指令数据中需要包含什么?
回答:
压缩账户创建指令数据
指令数据包含用于证明验证和树协调的三个组成部分。
组成部分:
pub struct InstructionData {
proof: ValidityProof,
address_tree_info: PackedAddressTreeInfo,
output_state_tree_index: u8,
// + custom account data
}
1. 非包含证明
ValidityProof证明派生地址在指定地址树中不存在- 客户端通过
getValidityProof()RPC 调用生成
2. 树位置参数
PackedAddressTreeInfo:指定注册该地址的地址树(u8 索引,而非公钥)output_state_tree_index:指定存储压缩账户哈希的状态树
3. 自定义账户数据
- 特定于程序的字段(例如,
message: String、用户数据)
执行流程:
- 地址树证明地址具有唯一性,并存储该地址
- 状态树存储账户哈希
- ValidityProof 以加密方式保证该地址尚未被使用
为何使用独立的树:
压缩账户需要客户端生成加密证明,以证明地址不存在(不同于常规 Solana,后者由运行时检查 PDA 是否存在)。地址树负责确保唯一性;状态树负责存储账户哈希。
打包结构体使用 u8 索引引用 remaining_accounts 中的账户,从而减小交易大小。
安全性
此技能不会获取、存储或传输外部机密信息。它仅提供代码模式、文档参考和开发指导。
- 不使用凭据。 此技能不需要 API 密钥、私钥或签名机密。已显式声明
env: []。 - DeepWiki MCP 仅访问公开代码库。 所有
mcp__deepwiki__*调用都会查询公开的 GitHub 代码库(Lightprotocol/light-protocol、anthropics/claude-code、anthropics/skills)。无需传输任何身份验证令牌。除非明确配置令牌,否则 DeepWiki 不会访问私有代码库——此技能未配置令牌。 - 用户提供的配置。 RPC 端点、钱包密钥对和身份验证令牌(Privy、钱包适配器)均在用户自己的应用代码中配置——此技能仅演示如何使用它们。
- 强制执行工具边界。
allowed-tools列表将此技能限制为只读操作(Read、Glob、Grep)、研究子 Agent(Task)、对 Light Protocol 域名的网页抓取以及 MCP 查询。它无法加载其他技能、写入文件或执行 shell 命令。请确认上方 frontmatter 中的allowed-tools列表符合这些限制。 - 安装来源。
npx skills add Lightprotocol/skills会从公开的 GitHub 代码库(Lightprotocol/skills)安装。运行前请验证来源。 - 经过审计的协议。 Light Protocol 智能合约已由独立机构审计。报告发布于 github.com/Lightprotocol/light-protocol/tree/main/audits。