Skip to main content
Glama

Assemble a contract

contract_assemble

Create a contract or proposal from library clauses. Returns the file path, clause order, filled variables, and missing facts as bracketed prompts.

Instructions

Call this tool to build a contract or proposal document from library clauses. Returns the path written, the clauses used in document order, which variables were filled, and the facts still missing as bracketed prompts.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleYesDocument title, for example 'Service Agreement - Beta Corp'
clientNoClient name; also fills the {{client}} variable
formatNodocx (default) or markdown; the document opens with the not-legal-advice line either way
valuesNoValues for the {{variables}} in the chosen clauses, for example {"fee":"4500","late_fee_percent":"2"}. Any variable you leave out stays in the document as a bracketed prompt such as [late fee percent], never as an invented value
out_pathNoWhere to write the file. Default: the server data directory, under a name built from the client and the title
overwriteNoReplace out_path if a file is already there. Without it an existing file is never touched
categoriesNoInstead of ids: every clause in these categories, ordered by category. Free tier: up to 8 clauses per document
clause_idsNoClause ids in the order they should appear; this is the document order. Free tier: up to 8 clauses per document

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.20.0

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden, and it delivers a clear return contract: path written, clauses in document order, filled variables, and missing facts left as bracketed prompts. This complements the schema's 'never as an invented value' guarantee. It does not explicitly flag the file-writing side effect or overwrite behavior, though those are well documented in the overwrite parameter's schema description.

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?

Two sentences with zero waste: the first front-loads the action verb and resource, the second packs return-value details into a single dense clause. Every phrase ('path written', 'document order', 'filled variables', 'bracketed prompts'') conveys information not present elsewhere in prepared form.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 8 parameters, a nested values object, no output schema, and no annotations, the combination of an exhaustively documented schema and a description that covers return semantics is fairly complete. The remaining gaps are tool-selection guidance against sibling creation tools and a top-level side-effect statement, but the agent can correctly invoke this tool from what is provided.

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 even though the description adds no new parameter-level meaning. The return-value sentence does reinforce the semantics of clause_ids (document order) and values (missing facts stay as bracketed prompts), but the schema already explains every parameter in detail. No uplift above baseline is earned.

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?

The description names a specific verb ('build'), a clear resource ('contract or proposal document'), and the mechanism ('from library clauses'), which separates it from siblings like contract_create and proposal_create. The scope is explicit and an agent can tell this assembly tool apart from the clause-library management tools without inspecting schemas.

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 phrase 'build a contract or proposal document from library clauses' implies the use case: assembling documents from an existing clause library. However, the description gives no explicit when-not-to-use guidance and never names the overlapping siblings (contract_create, proposal_create, doc_fill_template), so routing between those alternatives is left to inference.

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

Install Server

Other Tools