Skip to main content
Glama
Frontier-Compute

Frontier-Compute/zcash-mcp

zcash-mcp

npm MCP Registry downloads license

Zcash MCP 服务器。将 AI 代理连接到屏蔽的 Zcash 操作。已发布在 MCP 注册表中。

MCP (Model Context Protocol) 是 AI 模型调用外部工具的标准方式。此服务器公开了 12 个 Zcash 工具,任何 MCP 客户端(如 Claude Desktop、ChatGPT、OpenClaw 或任何支持该协议的客户端)均可使用。

工具

工具

功能

get_balance

获取钱包哈希的 ZAP1 证明历史记录和锚点状态

send_shielded

生成 zcash: 支付 URI (ZIP 321)

decode_memo

解码屏蔽备忘录 - ZAP1 类型、ZIP 302、文本、二进制

attest_event

将 ZAP1 证明写入 Zcash 区块链

verify_proof

验证 ZAP1 Merkle 证明

get_stats

ZAP1 协议统计信息(叶子节点、锚点、类型)

get_block_height

从 Zebra 获取当前链高度

lookup_transaction

通过 txid 获取原始交易数据

get_anchor_history

所有带有 txid 和区块高度的 ZAP1 Merkle 根锚点

get_anchor_status

当前 Merkle 树状态:根、未锚定的叶子节点、建议

get_events

最近的 ZAP1 证明事件,包含类型、钱包哈希、叶子哈希

get_agent_status

ZAP1 代理 ID 的证明摘要

zcash_create_invoice

创建 ZAP1 支付发票,返回地址、金额、zcash: URI、有效期

zcash_watch_payment

轮询发票直至支付或超时,返回 txid、高度、金额

zcash_prove_payment

获取叶子哈希的完整 Merkle 证明包

zcash_identity_register

通过 AGENT_REGISTER 证明注册代理身份

zcash_reputation_score

获取代理保证金数据和策略合规性作为声誉对象

zcash_crosschain_swap

跨链交换意图:通过 Ika 或 NEAR 将 ZEC 透明地址交换为 BTC、USDC、USDT

zcash_create_wallet

通过 Ika 2PC-MPC 创建分片密钥钱包(secp256k1 为 ZEC、BTC、ETH 签名)

zcash_sign_mpc

通过 Ika 2PC-MPC 签署消息哈希(双方均无法看到完整密钥)

zcash_shield

将 ZEC 从透明 MPC 托管转移到屏蔽的 Orchard 池

zcash_verify_evm

通过 EVM 合约(Sepolia、Base、Arbitrum)在链上验证 ZAP1 Merkle 证明

Related MCP server: unsubly

安装

npx @frontiercompute/zcash-mcp

或全局安装:

npm install -g @frontiercompute/zcash-mcp

配置

环境变量:

变量

默认值

描述

ZEBRA_RPC_URL

http://127.0.0.1:8232

Zebra 节点 JSON-RPC 端点

ZAP1_API_URL

https://pay.frontiercompute.io

ZAP1 证明 API

ZAP1_API_KEY

用于 attest_event 的 API 密钥

Claude Desktop

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "zcash": {
      "command": "npx",
      "args": ["@frontiercompute/zcash-mcp"],
      "env": {
        "ZEBRA_RPC_URL": "http://127.0.0.1:8232",
        "ZAP1_API_KEY": "your-key-here"
      }
    }
  }
}

任何 MCP 客户端

服务器通过 stdio 使用 JSON-RPC 进行通信。将您的 MCP 客户端指向 zcash-mcp 二进制文件。

从源码构建

git clone https://github.com/Frontier-Compute/zcash-mcp.git
cd zcash-mcp
npm ci
npm run build
node dist/index.js

测试

离线验证涵盖了已构建的 stdio 服务器和从打包的 npm tarball 进行的全新安装:

npm run test:offline

实时验证会访问真实的 Zebra RPC 和 ZAP1 API:

ZEBRA_RPC_URL=http://127.0.0.1:8232 \
ZAP1_API_URL=http://127.0.0.1:3080 \
ZAP1_API_KEY=your-key-here \
npm run test:live

test:live 通过 stdio 驱动 MCP 服务器并测试实时工具界面,而不仅仅是底层的 HTTP 端点。如果您希望 get_agent_status 检查针对特定的已部署代理,请设置 ZAP1_AGENT_ID

GitHub Actions 镜像了这种拆分:

  • .github/workflows/offline-ci.yml 在每次推送和拉取请求时运行确定性打包和 MCP 握手检查。

  • .github/workflows/live-e2e.ymlmain 分支上按计划或手动触发运行基于密钥的实时检查。

依赖项

  • 一个正在运行的 Zebra 节点,用于链查询(get_block_height, lookup_transaction)

  • pay.frontiercompute.io 上的 ZAP1 API,用于证明工具(get_balance, attest_event, verify_proof, get_stats, get_anchor_history, get_anchor_status, get_events, get_agent_status)

  • 备忘录解码在本地运行,无需外部依赖

相关包

功能

@frontiercompute/zcash-ika

通过 Ika 2PC-MPC 进行 Zcash + Bitcoin 签名

@frontiercompute/openclaw-zap1

用于 ZAP1 证明的 OpenClaw 技能

@frontiercompute/zap1

ZAP1 证明客户端

@frontiercompute/silo-zap1

通过 ZAP1 进行 Silo 代理证明

链接

许可证

MIT

快速入门(5 分钟)

添加到您的 MCP 配置中:

{
  "mcpServers": {
    "zcash": {
      "command": "npx",
      "args": ["@frontiercompute/zcash-mcp"]
    }
  }
}

重启您的客户端。询问:“当前的 Zcash 区块高度是多少?”

完成。22 个工具可用。读取操作无需 API 密钥。

获取用于写入操作的试用密钥:

curl -s -X POST https://frontiercompute.cash/api/trial-key

Available Tools

20 tools
attest_eventB

Create a typed ZAP1 attestation event leaf for later anchoring. Returns a leaf hash for verification.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoZAP1 API key (or set ZAP1_API_KEY env var)
event_typeYesEvent type: DEPLOYMENT, CONTRACT_ANCHOR, AGENT_ACTION, GOVERNANCE_PROPOSAL, etc.
input_hashNoSHA-256 of action input
action_typeNoAction type for AGENT_ACTION events
output_hashNoSHA-256 of action output
proposal_idNoProposal ID for governance events
wallet_hashYesWallet hash or agent identifier
serial_numberNoSerial number or version tag

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It indicates a write operation ('Create') and returns a hash, but lacks details on auth requirements, side effects, rate limits, or the meaning of 'typed ZAP1 attestation event leaf'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. Front-loads the main action and return value. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters, no output schema, and no annotations, the description is underspecified. It omits details about event types, anchoring process, verification usage, and required authentication (api_key noted in schema but not in description).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are fully described in the schema. The description adds no additional parameter meaning, resulting in baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a typed ZAP1 attestation event leaf for later anchoring and returns a leaf hash for verification. The verb 'Create' and resource are specific, and it distinguishes from sibling tools like decode_memo or get_agent_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as zap1_create_receipt_invoice or other anchoring tools. The description implies its purpose but does not provide usage context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

decode_memoA

Decode a Zcash shielded memo field. Handles ZAP1 typed memos, ZIP 302, plain text, and raw binary.

ParametersJSON Schema
NameRequiredDescriptionDefault
memoYesMemo data as hex string or base64 (max 1024 bytes decoded)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses supported input formats and encoding, but does not describe the output format or error behavior. For a decode tool, it could mention that it is read-only and what the return value looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence of about 20 words. It starts with the main purpose, then lists supported formats. No redundant or extra information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description could clarify the return format (e.g., decoded text or structured data). It also lacks mention of error handling. However, it adequately covers the core functionality and input variants for a simple decode tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the 'memo' parameter as hex/base64 with a max size. The description adds value by specifying the types of memos handled (ZAP1, ZIP 302, plain text, raw binary), which enriches the understanding of what the decode operation covers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Decode') and the resource ('Zcash shielded memo field'). It lists specific formats (ZAP1, ZIP 302, plain text, raw binary), distinguishing it from sibling tools which cover different functionalities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for decoding various memo formats but does not explicitly state when to use it or when not to. No alternatives are mentioned, though sibling tools don't include another memo decoder.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_agent_statusA

Get attestation summary for a ZAP1 agent: registration, policies, actions, event history.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesAgent identifier

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description bears full burden. It indicates a read operation but does not disclose specifics like required permissions, error handling, or rate limits. Adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, straightforward sentence that conveys the tool's purpose and what it returns. No extraneous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple retrieval tool with one well-documented parameter and no output schema, the description sufficiently explains the tool's purpose and return content. Lacks explanation of response format but is adequate given complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter (agent_id) with schema description 'Agent identifier' and 100% coverage. Description adds context about the summary content but not additional parameter semantics beyond what schema provides. Baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it gets an attestation summary for a ZAP1 agent and lists included components (registration, policies, actions, event history). This distinguishes it from sibling tools like get_anchor_status or get_events.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as get_anchor_status or get_events. The description does not mention prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_anchor_historyA

Get all ZAP1 Merkle root anchors with Zcash txids and block heights.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must bear the full burden. It reveals that the tool returns data but does not mention any side effects, performance characteristics, or limitations. The description is adequate but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. It efficiently conveys the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter list tool without an output schema, the description adequately explains what is returned. However, it does not mention ordering, limits, or whether it includes pending anchors. Slightly incomplete but sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so baseline is 4. The description adds no param info because none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the specific resource 'all ZAP1 Merkle root anchors', including the returned data fields (txids and block heights). It distinguishes from siblings like get_anchor_status or get_block_height.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool or when alternatives are better. The description does not mention sibling tools or provide context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_anchor_statusA

Get current ZAP1 Merkle tree state: root hash, unanchored leaves, anchor recommendation.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the full burden. It discloses that the tool returns current state components but does not mention side effects or permissions. For a simple read-only query, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys purpose and return content with no extraneous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description should compensate by explaining return values. It lists three items but lacks details on their types or format. For a zero-parameter tool, it is mostly complete but could be more precise.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, and schema coverage is 100%. The description adds value by specifying exactly what state information is returned, beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the action ('Get') and the resource ('current ZAP1 Merkle tree state'), listing three specific components: root hash, unanchored leaves, anchor recommendation. This distinguishes it from sibling tools like get_anchor_history or verify_proof.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no context about typical use cases, prerequisites, or scenarios where it should be avoided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_block_heightA

Get the current Zcash chain height from Zebra.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully convey behavioral traits. It indicates a read operation ('Get') but does not explicitly state it is non-destructive, fail-safe, or clarify authorization needs. For a simple getter, this is adequate but not exemplary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the main action. No extraneous words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no inputs, no output schema), the description is sufficiently complete. It specifies the data source ('Zebra') and the output ('current chain height'). However, it does not mention the return format or error conditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and the schema description coverage is 100% (empty schema). The description adds no parameter information, which is acceptable since none exist. A baseline of 4 is appropriate for zero parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get the current Zcash chain height from Zebra.' It uses a specific verb ('Get') and a specific resource ('current Zcash chain height'), and distinguishes from sibling tools which are primarily about proofs, receipts, and attestations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives. However, the purpose is straightforward and no siblings serve the same function. A score of 3 reflects the lack of explicit context despite the simplicity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_eventsC

Get recent ZAP1 attestation events. Returns event type, wallet hash, leaf hash, and timestamps.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of events (default 20)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description bears full burden but discloses minimal behavioral traits. It mentions 'recent' without defining recency and does not describe ordering, pagination, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence that efficiently states purpose and return fields. It is front-loaded and contains no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description should provide more context about default behavior (e.g., default limit is 20, ordering, empty result handling). It only partially covers the tool's semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter 'limit', which already includes a description and constraints. The tool description adds no additional semantic value beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves recent ZAP1 attestation events and specifies the returned fields: event type, wallet hash, leaf hash, and timestamps. However, it does not differentiate from sibling tools like attest_event or get_anchor_history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor any context about its suitability. The description only states what it does, not when it should be chosen.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_statsA

Get ZAP1 protocol stats: total leaves, anchors, type distribution, and tree height.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description does not disclose whether the tool is read-only, its safety profile, or any side effects. For a stats retrieval tool, a read indication would be helpful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-structured sentence that efficiently communicates the tool's purpose and output without unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema), the description adequately lists the returned metrics. Could be slightly more explicit about the 'stats' scope, but sufficient for low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so the description cannot add meaning beyond the schema. Following the baseline guideline for zero parameters, a score of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves ZAP1 protocol stats and enumerates specific metrics (total leaves, anchors, type distribution, tree height). It distinguishes itself from sibling tools that focus on individual entities or operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The single sentence provides no context about appropriate usage scenarios or when to avoid it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_transactionA

Get raw transaction data by txid from Zebra.

ParametersJSON Schema
NameRequiredDescriptionDefault
txidYesTransaction ID (64-char hex)
verboseNoReturn decoded JSON instead of raw hex (default true)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It states 'raw transaction data' but default behavior returns decoded JSON (verbose=true), creating slight ambiguity. Basic read nature is clear, but lacks details on rate limits or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with key verb and resource. Concise and no wasted words, though could clarify default output format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple lookup tool with two parameters and no output schema, but lacks information about return values, error handling, or performance implications.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are fully documented in schema. Description adds no additional meaning beyond what schema provides; it only mentions 'by txid' which is already evident.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'Get', the resource 'raw transaction data', and the source 'Zebra'. It distinguishes from sibling tools like 'decode_memo' or 'verify_proof' as no other tool specifically retrieves transaction data by txid.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies usage when you have a txid and need transaction data, but does not provide explicit guidance on when to use this tool versus alternatives, nor any when-not scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_proofA

Verify a ZAP1 Merkle proof. Checks whether a leaf hash exists in the ZAP1 attestation tree and returns the proof path.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaf_hashYesHex-encoded leaf hash to verify (64 chars)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so description carries full burden. States core behavior (verification, returns proof path) but omits side effects, permissions, error conditions, or success/failure details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise (21 words over two sentences), front-loaded with main action, no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple 1-param tool with no output schema, but lacks output format details and error handling. Could be more explicit about return value structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with description and pattern. Tool description adds no extra meaning beyond schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb (verify), resource (ZAP1 Merkle proof), and specific action (checks leaf hash existence, returns proof path). Distinguishes from siblings like zap1_prove_receipt and zap1_verify_evm.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. No prerequisites, exclusions, or context provided despite 18 sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zap1_create_receipt_invoiceA

Create ZAP1 receipt metadata for an external payment workflow. Returns invoice metadata for later receipt verification; this server does not sign, scan, or broadcast.

ParametersJSON Schema
NameRequiredDescriptionDefault
memoYesMemo text attached to the invoice (max 512 bytes)
amount_zatYesPayment amount in zatoshis (1 ZEC = 100_000_000 zatoshis)
wallet_hashYesWallet identifier or hash for routing the payment

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations present; description discloses that it only creates metadata and does not sign/scan/broadcast, providing adequate behavioral context for a creation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, return value, and limitations; lacks detail on return format or error handling, but sufficient given simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and description adds no additional meaning beyond the schema's own parameter descriptions; baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Create ZAP1 receipt metadata' and distinguishes from siblings like zap1_prove_receipt by specifying what it does not do (sign, scan, broadcast).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Indicates use case 'for an external payment workflow' and clarifies limitations, but does not explicitly name alternative tools for signing or broadcasting.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zap1_prove_receiptA

Fetch a ZAP1 Merkle proof bundle for a leaf hash. Returns the full proof: leaf, path, root, and anchor.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaf_hashYesHex-encoded leaf hash (64 chars)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It implies a read-only fetch operation and lists return components (leaf, path, root, anchor), but does not disclose potential side effects, authentication needs, or error conditions. Adequate but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no extraneous words. Efficiently conveys the action and return value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter fetch tool, the description adequately covers input and output. However, without an output schema, more detail on the return structure or error handling would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a description for 'leaf_hash' already provided. The tool description adds no new semantic information beyond restating the parameter's purpose, so no value added beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Fetch' and the resource 'ZAP1 Merkle proof bundle' for a 'leaf hash'. It distinguishes from siblings by being specific to proving receipts, while siblings like 'verify_proof' and 'zap1_create_receipt_invoice' serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as 'verify_proof' or 'zap1_create_receipt_invoice'. The description only states what it does, not the context or prerequisites for its use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zap1_verify_evmB

Verify a ZAP1 Merkle proof on-chain via the EVM ZAP1Verifier contract. Checks that a leaf hash is included in a registered Zcash anchor root. Supports Sepolia (testnet), Base, and Arbitrum.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainYesEVM chain to verify on
siblingsYesOrdered hex sibling hashes for the Merkle proof
leaf_hashYes64-char hex leaf hash (no 0x prefix)
positionsYesBit-packed position flags (0 = left, 1 = right per level)
expected_rootYes64-char hex expected Merkle root

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must fully convey behavior. It states verification via contract but does not clarify whether it's a read or write operation, gas implications, error handling, or side effects. Insufficient for an on-chain interaction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, highly concise, front-loaded with the primary action and supported chains. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, so description should explain return values or success/failure indicators. It does not mention what the tool returns (e.g., boolean or transaction hash) or behavior on verification failure. Missing contract addresses or references.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 5 parameters have schema descriptions (100% coverage). Description adds context about Zcash anchor roots and chains but does not add significant meaning beyond schema for individual params. Adequate but not exceptional.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description specifies the tool verifies a ZAP1 Merkle proof on-chain, checks leaf hash inclusion in a Zcash anchor root, and lists supported chains (Sepolia, Base, Arbitrum). Clearly distinguishes from siblings like verify_proof and zap1_prove_receipt.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives, such as off-chain verification or other chain-specific tools. Missing when-not-to-use or contextual prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zap1_wallet_receipt_requestB

Build a ZAP1 receipt request from a wallet-layer action result. The wallet keeps custody, signing, scanning, and broadcast; ZAP1 receives only bounded hashes.

ParametersJSON Schema
NameRequiredDescriptionDefault
txidNoOptional public Zcash transaction id when the wallet action produced one.
amount_zatNoOptional amount in zatoshis. Omit when amount should stay private.
asset_codeNoAsset code or application asset label. Keep generic if the asset label is sensitive.ZEC
claim_hashNoOptional precomputed hash of the wallet action claim.
action_typeYesWallet-layer action type, for example shielded_send, invoice_paid, pczt_created, policy_approved, or sync_checkpoint.
observed_atNoOptional ISO timestamp or block reference for the wallet observation.
result_hashNoOptional hash of the wallet result object, log packet, or receipt returned by the wallet layer.
subject_hashNoOptional precomputed hash of the wallet, user, or account subject. Use this to avoid sharing identifiers.
action_statusNoWallet-layer action state being attested.completed
evidence_hashNoOptional precomputed hash of the supporting evidence packet.
wallet_providerYesWallet, service, or product producing the action result, for example a wallet MCP, mobile wallet, service wallet, or custom product.
action_referenceNoWallet-local action, operation, invoice, quote, or policy reference. Hash first if sensitive.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes that ZAP1 receives only bounded hashes and wallet retains sensitive operations, providing useful privacy context. No annotations exist, so description partially compensates for missing behavioral cues like auth needs or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundancy. First states purpose, second adds key behavioral context. Efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

12 parameters, many optional with patterns, yet no guidance on usage patterns or composition. No output schema, so description doesn't explain what the tool returns. More context needed for complex parameter set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all 12 parameters with descriptions, so description adds minimal extra meaning. The phrase 'bounded hashes' hints at hash parameters but schema already details them. Baseline 3 due to high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it builds a ZAP1 receipt request from a wallet action result, distinguishing it from siblings like zap1_create_receipt_invoice. However, could more explicitly contrast with other ZAP1 tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives like zap1_create_receipt_invoice or verify_proof. Implies use after a wallet action, but no exclusions or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zap1_watch_receipt_invoiceA

Poll ZAP1 receipt-invoice status until paid or timeout. Returns public receipt status only; this server does not scan wallet state.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoice_idYesInvoice ID returned by zap1_create_receipt_invoice
timeout_secondsNoMaximum seconds to wait for payment (default 300)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It discloses polling behavior (until paid or timeout), that it returns only public receipt status, and that it does not scan wallet state. However, it does not clarify timeout behavior (e.g., error vs. status on timeout).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff. The first sentence states the core action, and the second adds a crucial limitation. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description could specify return value structure. It mentions 'public receipt status' but is vague. However, it covers the essential context for a polling tool with timeout. Sibling tools provide some complementary context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, providing baseline 3. The description adds no specific parameter semantics beyond hinting at timeout usage. It does not detail format or constraints beyond schema defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool polls receipt-invoice status until paid or timeout, with a specific verb and resource. It also distinguishes itself from siblings by noting it returns only public receipt status and does not scan wallet state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use after invoice creation but does not explicitly state when to use it versus alternatives like zap1_wallet_receipt_request. It mentions server limitations but lacks explicit when-to-use or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zcash_capability_manifestA

Return the ZAP1 capability manifest: what this MCP covers, what it deliberately excludes, and how agents should compose it with wallet-layer tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must cover behavior; it adds context about content and composition but does not disclose side effects, auth needs, or rate limits. Acceptable for a simple manifest tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, efficient, front-loaded with key information, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description fully explains what the tool returns and how to use it, leaving no gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, schema coverage 100% trivially. Description adds meaning beyond schema by explaining the manifest's purpose and usage, earning baseline 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Return' and the resource 'ZAP1 capability manifest', distinguishing it from sibling tools by specifying coverage, exclusions, and composition guidance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides context on when to use (to obtain the manifest for composition with wallet-layer tools) but lacks explicit when-not-to-use or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zcash_conformance_checkB

Validate a ZAP1 receipt packet against the frozen v1 receipt contract. Returns malformed, pending, or anchored.

ParametersJSON Schema
NameRequiredDescriptionDefault
receiptYesZAP1 receipt packet to validate.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must carry the full burden. It mentions return states but does not disclose side effects (likely read-only), permissions needed, error behavior, or any other behavioral traits. For a validation tool, this is minimal but not absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the action and result. It is efficient with no wasted words, though some structure (e.g., separating return states) could improve readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema or annotations, the description provides the key return states and purpose. However, it lacks usage context, behavioral details, and prerequisites. It is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (one parameter 'receipt' described as 'ZAP1 receipt packet to validate'). The tool description adds no additional meaning beyond the schema. Baseline of 3 is appropriate as the schema already documents the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Validate', the resource 'ZAP1 receipt packet', and specifies the contract ('frozen v1 receipt contract') and return states ('malformed, pending, or anchored'). It unambiguously distinguishes from sibling tools like 'zap1_prove_receipt' or 'zap1_verify_evm'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., when to use 'zap1_prove_receipt' instead). The description only states what it does, not when or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zcash_identity_registerB

Register an agent identity on ZAP1 via an AGENT_REGISTER attestation. Returns the leaf hash and verification URLs for the registration event.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesUnique agent identifier to register
pubkey_hashYesSHA-256 of the agent's public key (64-char hex)

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states that registration occurs via an attestation and returns a leaf hash and URLs, but does not mention side effects, permissions required, idempotency, error conditions, or what happens if the agent_id is already registered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the core action ('Register an agent identity on ZAP1') and efficiently adds the mechanism and return values. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 2 required parameters, no output schema, and no annotations, the description adequately covers what the tool does and what it returns. It mentions the return types (leaf hash and verification URLs), which provides useful context. However, it could mention potential limitations or error conditions, but overall it is fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already defines both parameters with clear descriptions. The tool description does not add additional meaning beyond what is in the schema; it merely states the overall purpose. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: 'Register an agent identity on ZAP1 via an AGENT_REGISTER attestation.' It also specifies the return values (leaf hash and verification URLs), making the purpose precise and distinguishable from sibling tools like get_agent_status or lookup_transaction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention preconditions, when not to use it, or suggest alternative tools for different tasks (e.g., checking status or verifying proofs).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zcash_receipt_templateB

Return a customer-ready ZAP1 receipt workflow for agent actions, payment receipts, operator lifecycle events, or policy attestations.

ParametersJSON Schema
NameRequiredDescriptionDefault
use_caseNoReceipt workflow to generate.agent_action

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only says it 'returns' a workflow, offering no information about side effects, permissions, or whether it is a read-only operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no redundancy, efficiently conveying the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for a simple one-parameter tool, but the absence of an output schema leaves ambiguity about the format of the returned workflow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter description is clear; the tool description merely paraphrases the enum values without adding new meaning, so baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns a customer-ready ZAP1 receipt workflow for specific use cases (agent actions, payment receipts, etc.), distinguishing it from general receipt tools by implying it produces a pre-formatted template.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists use cases but provides no guidance on when to use this tool versus alternatives like zap1_create_receipt_invoice, nor does it specify prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zcash_reputation_scoreB

Fetch an agent's reputation from ZAP1. Combines bond data and policy compliance into a single object: attestation count, violations, bonds, and compliant flag.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesAgent identifier to look up

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so description carries full burden. It mentions fetching reputation and returning data, but does not disclose any behavioral traits such as authentication requirements, rate limits, data freshness, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, directly front-loaded with the action and purpose. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description adequately explains the returned object's fields. It could optionally specify types, but the current level suffices.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear parameter description. The description adds no additional meaning beyond what the schema already provides, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'Fetch', the resource 'agent's reputation', and the source 'ZAP1'. It lists the specific fields returned (attestation count, violations, bonds, compliant flag), which distinguishes it from sibling tools like zcash_conformance_check or get_agent_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The sibling list includes many other tools, but no differentiation or contextual advice is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 18 tool updatesv1.3.0
    • Removedget_balance
    • Removedsend_shielded
    • Addedzap1_create_receipt_invoice
    • Addedzap1_prove_receipt
    • Addedzap1_verify_evm
    • Addedzap1_wallet_receipt_request
    • Addedzap1_watch_receipt_invoice
    • Addedzcash_capability_manifest
    • Addedzcash_conformance_check
    • Removedzcash_create_invoice
    • Removedzcash_create_wallet
    • Removedzcash_crosschain_swap
    • Removedzcash_prove_payment
    • Addedzcash_receipt_template
    • Removedzcash_shield
    • Removedzcash_sign_mpc
    • Removedzcash_verify_evm
    • Removedzcash_watch_payment
  2. 10 tool updates
    • Addedzcash_create_invoice
    • Addedzcash_create_wallet
    • Addedzcash_crosschain_swap
    • Addedzcash_identity_register
    • Addedzcash_prove_payment
    • Addedzcash_reputation_score
    • Addedzcash_shield
    • Addedzcash_sign_mpc
    • Addedzcash_verify_evm
    • Addedzcash_watch_payment
  3. 12 tool updatesv0.2.2
    • First observedattest_event
    • First observeddecode_memo
    • First observedget_agent_status
    • First observedget_anchor_history
    • First observedget_anchor_status
    • First observedget_balance
    • First observedget_block_height
    • First observedget_events
    • First observedget_stats
    • First observedlookup_transaction
    • First observedsend_shielded
    • First observedverify_proof

TDQS

A3.6/5.0

Scored across 20 tools

Disambiguation5/5

Each tool targets a specific aspect of the ZAP1 protocol with clear, non-overlapping purposes. Even similar-sounding getters (e.g., get_agent_status vs get_anchor_status) return distinct data, and verification tools differ by off-chain vs on-chain context.

Naming Consistency3/5

Tools use mixed conventions: most use snake_case with verbs (attest_event, decode_memo), while a subset uses the 'zap1_' prefix (zap1_create_receipt_invoice). There is no uniform pattern, making it harder for an agent to predict tool names.

Tool Count5/5

20 tools is well-scoped for the ZAP1 attestation and receipt system. Each tool serves a distinct function, and the number aligns with the complexity of the protocol without being overwhelming.

Completeness4/5

The surface covers the core ZAP1 workflow: creating attestations, receipts, proofs, verification (off-chain and on-chain), identity registration, and reputation. The server explicitly excludes wallet scanning, which is a deliberate boundary, but otherwise no major gaps.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for ClawVault - an AI agent payment security layer that enables Claude to request payments, check limits, and manage transactions with configurable rules.
    24 npm
    MIT