Skip to main content
Glama

Get a contract

contracts_get
Read-onlyIdempotent

Fetch one contract by contract_id: status, dates, verification and expiry settings, invitation subject, the sealed document's SHA-256 once completed, and each recipient's name, email, role, routing order and progress. Returns { contract: null } if the id does not exist or is outside a scoped member's book. send_request is the latest send started with contracts_send: queued while it runs, sent, or failed with the failure_code; null when there is none. Field values, signature images and signer IP addresses are never returned.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "contract_id": "<contract_id>"
    },
    "name": "contracts_get"
  }
}

Input Schema

NameRequiredDescriptionDefault
contract_idYesContract id (from contracts_search).

Output Schema

NameRequiredDescriptionDefault
contractYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / contract_id / description
      Previous value: -"Contract id."New value: +"Contract id (from contracts_search)."
  2. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Adds substantial behavior beyond the readOnly/idempotent annotations: null return for missing ids or ids outside a scoped member's book, the meaning of send_request states (queued/sent/failed with failure_code), and explicit privacy exclusions for field values, signature images, and signer IPs.

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?

Front-loads the core action and keeps the relevant behavioral details compact. The long return-field enumeration is somewhat dense, but nearly every clause contributes either return semantics or privacy/status context.

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 read-only single-resource getter with annotations, a complete input schema, and an output schema, the description supplies the key missing context: null behavior, send_request semantics, scoped-access constraints, and excluded sensitive fields.

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 100%, so the parameter is already documented. The description still adds useful semantics for contract_id by explaining that a nonexistent or out-of-scope id yields { contract: null }, beyond what the schema states.

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: 'Fetch one contract by contract_id.' The singular, id-based fetch clearly distinguishes this from list/search and mutation siblings like contracts_search, contracts_send, and contracts_void.

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 intent to retrieve a single known contract is implied by 'by contract_id,' and the schema notes the id comes from contracts_search. But the description does not explicitly say when to use this versus contracts_search or when not to use it, leaving routing mostly inferred.

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.