contract_update
Update a draft contract's details or signers. Only draft contracts can be updated.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| content | No | ||
| signers | No | ||
| contract_id | Yes |
Update a draft contract's details or signers. Only draft contracts can be updated.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| content | No | ||
| signers | No | ||
| contract_id | Yes |
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden, and it does add a useful constraint: only draft contracts can be updated. However, it does not explain whether updates are partial or full replacements, how non-draft contracts are rejected, what permissions are needed, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the action front-loaded and no filler. The second sentence reinforces the draft-only constraint and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four parameters including a nested signers array, no output schema, and no annotations, this description leaves significant gaps: parameter semantics, update semantics, failure conditions for non-draft contracts, and return behavior are all unaddressed. It is minimally adequate for selecting the tool but not for reliably invoking it in complex cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only loosely maps to parameters via 'details or signers'. It does not define contract_id format, the structure of signers, or that name, content, and signers are optional, so the schema's lack of parameter docs is not compensated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Update') and a clear resource ('a draft contract's details or signers'), so its purpose is immediately obvious. The draft-only scope also distinguishes it from sibling lifecycle tools like contract_create, contract_send, and contract_cancel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sentence 'Only draft contracts can be updated' gives a clear eligibility condition for using this tool. It does not explicitly name alternatives or say what to do for non-draft contracts, but the constraint and sibling names make the intended usage boundary evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Each tool targets a unique resource-action pair: contract operations are clearly separated from template operations, and actions like create, get, list, update, send, cancel, archive, and upload are distinct. There is no meaningful overlap or ambiguity between the tool purposes.
Tool names follow a consistent noun_verb pattern: contract_create, contract_list, template_get, template_upload, etc. This makes the API surface predictable and easy for an agent to navigate.
Twelve tools is well-scoped for a document-signing server covering both contracts and templates. Each tool serves a clear lifecycle purpose, and the count feels neither bloated nor thin.
The toolset covers the core contract lifecycle (create, update, send, cancel, get, list) and template lifecycle (create, update, archive, upload, get, list). Minor gaps exist, such as no way to permanently delete a contract, restore an archived template, or download signed contract documents, but these are not critical for the main workflows.