Skip to main content
Glama

Search contracts

contracts_search
Read-onlyIdempotent

List contracts, newest first (up to limit, default 25, max 50). Filter by status_group (draft; waiting = sent, in progress or sealing; completed; declined; voided; expired), client_id, and archived ('exclude' by default, or 'only'). query matches words in the title. One call scans at most 200 contracts; scan_truncated: true means more may match, so pass next_cursor to continue. Field values, signatures and signer IP addresses are never returned. Members limited to specific clients see only contracts in their book.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "contracts_search"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoResults per page (default 25, max 50).
queryNoWords to find in the contract title.
cursorNoThe `next_cursor` value from the previous response, passed back unchanged; omit for the first page.
archivedNoDefault exclude.
client_idNoOnly this client's contracts. Use the `id` that clients_search returns.
status_groupNowaiting = sent, in progress or sealing.

Output Schema

NameRequiredDescriptionDefault
contractsYes
next_cursorYes
scan_truncatedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / client_id / description
      Previous value: -"Only this client's contracts."New value: +"Only this client's contracts. Use the `id` that clients_search returns."
  2. Changed1 schema field changed
    • changedInput schema / properties / cursor / description
      Previous value: -"next_cursor from the previous page."New value: +"The `next_cursor` value from the previous response, passed back unchanged; omit for the first page."
  3. Changed1 schema field changed
    • changedInput schema / properties / limit / description
      Previous value: -"Maximum number of results to return."New value: +"Results per page (default 25, max 50)."
  4. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the description correctly spends its space on traits annotations cannot carry: the 200-contract scan ceiling, the scan_truncated/next_cursor continuation contract, that field values, signatures and signer IPs are never returned, and that members limited to specific clients see a restricted book. These are exactly the facts that change how an agent interprets an empty or truncated result.

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?

Roughly five dense sentences, each carrying distinct information: ordering, filtering, pagination limits, withheld data, and visibility scoping. The most decision-relevant facts (ordering and filter set) are front-loaded with no filler or throat-clearing.

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?

With an output schema present, the description need not describe return shapes, and it doesn't. It covers the remaining decision-relevant gaps for a paginated list tool: truncation behaviour, continuation, data redaction, and per-member scoping. Nothing an agent needs to call it correctly is missing.

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 baseline is 3. The description largely restates schema content (limit default 25 max 50, archived default exclude, status_group waiting expansion, query matching titles); its only marginal addition is framing cursor as the value taken from next_cursor in the prior response.

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?

Opens with a specific verb and resource plus ordering semantics ('List contracts, newest first'), which immediately separates it from contracts_get, contracts_create_draft, contracts_send and contracts_void in the sibling set. An agent can classify this as the read/list entry point without opening any 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?

The description explains the filtering regime (status_group, client_id, archived, query) and the continuation condition ('scan_truncated: true means more may match, so pass next_cursor'), which tells the agent exactly when to re-call. It stops short of naming alternatives like contracts_get for single-record retrieval or stating exclusions, so it is clear context rather than full routing guidance.

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.