Skip to main content
Glama

Lovie Company Formation

Void Signature Envelope

signature_void_envelope
Destructive

VoidSignatureEnvelope voids an envelope (owner-gated, ownership checked like SignAsCompany): writes a terminal DOCUMENT_VOIDED status + voided_at and appends a hash-chained document_voided event. Voiding a completed (executed) envelope requires a reason. Voided envelopes are excluded from the pipeline Signed derivation, so the investor reverts to Committed and can be re-sent. Exposed as the counterpart to opening an envelope: a caller that can send one should be able to cancel one. The destructive case is guarded in the domain rather than by obscurity — ownership is checked, the row is never deleted, and voiding an executed envelope requires a reason. The destructive annotation is what makes a client confirm before calling it. One consequence of exposing it: ip_address, user_agent and geo_location on VoidSignatureEnvelopeRequest are caller-supplied and land verbatim in the hash-chained document_voided event. The chain stays tamper-evident, but on a rescission of an executed agreement those three fields are now written by whatever an MCP client sends rather than by a browser route reading the real request. Server-deriving them at the handler would fix it; not done here.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
reasonNo
ipAddressNo
userAgentNo
envelopeIdNo
geoLocationNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
statusNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior5/5

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

Far exceeds the annotations (destructiveHint/openWorldHint): it discloses ownership checks, that the row is never deleted, the terminal status written, the pipeline Signed-derivation consequence (investor reverts to Committed and can be re-sent), and even warns that ip_address/user_agent/geo_location land verbatim in the tamper-evident chain. No behavioral trait an agent needs is hidden.

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

Conciseness3/5

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

Front-loads the core action effectively, but the definition sprawls over several sentences mixing an implementation caveat ('Server-deriving them at the handler would fix it; not done here') and meta-commentary about the annotation. That design discussion is useful but not agent-facing, diluting an otherwise efficient opening.

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?

For a destructive, side-effect-heavy mutation, it covers the terminal state, the audit-chain side effect, the auth gate, the downstream pipeline impact, and the one security caveat. An output schema exists, so return values need not be described; nothing an agent needs to invoke this correctly is missing.

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?

Schema coverage is 0%, so the description must compensate, and it does for four of five params: the conditional necessity of reason, and the caller-supplied nature/sink of ip_address, user_agent and geo_location. envelopeId, the actual target of the operation, is only implied through 'voids an envelope' and never given semantics such as format or source.

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?

States a specific verb and resource ('voids an envelope') with precise effects (terminal DOCUMENT_VOIDED status + voided_at, hash-chained document_voided event). Differentiates from siblings by positioning itself as the counterpart to opening/sending an envelope, so an agent can place it relative to signature_create_envelope without opening either schema.

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?

Gives real context on when to call it: owner-gated, counterpart to sending, and the conditional rule that voiding an executed envelope requires a reason. It stops short of naming a sibling alternative or an explicit 'do not use when' clause, so it is clear but not fully routing.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.