Skip to main content
Glama

Sign Capability Effect Receipt

aps_capability_sign_effect
Destructive

Verifies the gateway receipt, consumes a capability token while rejecting replayed nullifiers, and signs an effect receipt binding the token to the caller-supplied action result.

Instructions

v0.1 capability-token sink effect receipt (M4). The sink verifies the gateway's M3, consumes the token preimage (rejecting a replayed nullifier), and signs an EffectReceipt binding the consumed token to the action result the caller supplies. This tool does not execute the action. The (M1, M3, M4) tuple is the full attestation record. Search keywords: capability token, effect receipt, M4, sink attestation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
effectYes
challengeYesOriginal SinkChallenge from M1 (for binding verification)
sink_public_keyYes
sink_private_keyYes
challenge_receiptYesChallengeReceipt from M3
gateway_public_keyYesUsed to verify M3 before consuming the token
expected_delegation_chain_rootNoIf omitted, falls back to the receipt's own root

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv4.0.0
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • removedInput schema / additionalProperties
      Removed value: -false
    • removedInput schema / properties / effect / additionalProperties
      Removed value: -false
    • changedInput schema / required
      Previous value: -[
      -  "effect",
      -  "sink_private_key",
      -  "sink_public_key",
      -  "gateway_public_key"
      -]New value: +[
      +  "challenge",
      +  "challenge_receipt",
      +  "effect",
      +  "sink_private_key",
      +  "sink_public_key",
      +  "gateway_public_key"
      +]
  2. Addedv2.8.0

TDQS

A3.6/5.0
Behavior4/5

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

Annotations declare destructiveHint=true and idempotentHint=false; the description earns credit by explaining WHY — the token preimage is consumed and replayed nullifiers are rejected, and M3 is verified before consumption. That causal detail is exactly what annotations alone cannot convey, though private-key handling and error behavior remain undisclosed.

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?

Roughly 70 words, front-loaded with the signing action and followed by concrete behavioral constraints. The trailing "Search keywords" list and the "v0.1 ... (M4)" version prefix are filler that slightly dilute the opening, but no sentence is redundant with the rest.

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?

For a 7-parameter signing operation with private key material, nested objects, and no output schema, the definition covers the protocol flow well but omits what the returned EffectReceipt contains and what failure modes exist beyond replay. An agent could call it, but would be guessing about the output shape.

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 57%, so the description has to do some work and it does: it maps challenge to the token preimage, challenge_receipt/gateway_public_key to M3 verification, and effect to the caller-supplied action result. It says nothing about the nested effect fields (outcome enum, executed_at, result_digest) or about expected_delegation_chain_root.

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?

States a specific verb+resource: the sink verifies M3, consumes the token preimage, and signs an EffectReceipt. The M1/M3/M4 staging implicitly distinguishes it from the sibling capability tools (issue_challenge, mint_receipt), but it never names those siblings outright, so the agent must infer which tool produces the M3 receipt it needs.

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 one explicit usage boundary is "This tool does not execute the action," which usefully prevents misuse as an executor. However, there is no statement of call ordering by tool name (e.g. call after aps_capability_mint_receipt), no prerequisitives for the keys, and no guidance on when not to call it beyond replay rejection.

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

Deploy Server

Other Tools