contract_send
Send a contract to signers for signing. Charges the organization's balance and sends email notifications.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| contract_id | Yes |
Send a contract to signers for signing. Charges the organization's balance and sends email notifications.
| Name | Required | Description | Default |
|---|---|---|---|
| contract_id | Yes |
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It discloses two significant traits: 'Charges the organization's balance' (financial impact) and 'sends email notifications' (side effect). This goes beyond the name and alerts the agent to consequential behavior, though it does not mention reversibility or status changes.
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?
A single, well-structured sentence with no filler. The core action is front-loaded, and the key side effects are stated immediately. Every word adds value, making it easy to read and parse.
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 simple one-parameter tool with no output schema, the description provides the primary purpose and two important behavioral consequences. It omits potential prerequisites (e.g., contract must have signers, what state it must be in) and what happens on failure, but these are not critical for basic invocation given the schema already specifies the required parameter.
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?
The input schema has only one parameter, contract_id, with a pattern but no description, and schema description coverage is 0%. The tool description does not mention or explain the parameter at all, so it fails to compensate for the lack of schema description. The parameter name and pattern provide some intrinsic clues, but the description adds no parameter-level meaning.
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 states a specific verb and resource: 'Send a contract to signers for signing.' This clearly distinguishes it from sibling tools like contract_create, contract_update, and contract_cancel, which have different actions. No ambiguity remains about what operation this tool performs.
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 description implies usage context: a contract is ready to be sent for signing. It names the purpose ('for signing') and important side effects, giving the agent context for when to invoke it. However, it does not explicitly mention when not to use it or name alternative tools for other contract stages.
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.