Skip to main content
Glama

export_proposal

Generate a bid proposal PDF from an estimate, including letterhead, scope, base bid, terms, and signatures, and flag missing or unpriced items before sending.

Instructions

Write the bid proposal PDF — the canvas Proposal dialog's download: letterhead from company, prepared-for (set_estimate_settings client), the scope (each condition, its spec description, measured quantity), the base bid (lump sum, or itemized when the project's proposal says so), inclusions / exclusions / terms and signature blocks. Every page carries a light diagonal "OpenTakeoff" and the line "Prepared with OpenTakeoff · opentakeoff.kentucky-ai.com". Pass company exactly as the estimator gave it — this server has no Company setup of its own. It never refuses an incomplete estimate; the reply's complete and unpriced say what the base bid is missing, and the user must hear it before sending. Default path: next to the loaded plan as " - proposal.pdf".

Input Schema

NameRequiredDescriptionDefault
pathNoWhere to write the PDF (default: "<plan dir>/<project or plan> - proposal.pdf")
companyNoThe contractor's letterhead, from the estimator
overwriteNoReplace the file at path even when it is not an OpenTakeoff export. Off by default: re-exporting over a previous export of your own already overwrites without this, so you only need it to deliberately destroy an unrelated file.
project_nameNoProject name on the proposal (default: the plan file's name)

Output Schema

NameRequiredDescriptionDefault
noteNo
pathYes
pagesYes
base_bidYes
completeYes
itemizedYes
unpricedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.1.29

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so thoroughly: it discloses the watermark on every page, the exact overwrite semantics, the fact that company data is not stored server-side and must be passed verbatim, and that the tool never refuses an incomplete estimate. It even explains that the reply's 'complete' and 'unpriced' fields describe what the base bid is missing.

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?

Purpose is front-loaded in the first clause, then contents, then the two behavioral warnings, then the default path — a sound ordering. The dense em-dash construction is information-rich rather than padded; each clause carries a fact an agent needs.

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 mutation tool with no annotations, four parameters and a nested company object, the description covers everything an agent needs: what is written, where, how overwriting behaves, the external dependency on caller-supplied company data, and how to interpret an incomplete result. The output schema handles return shape, so nothing critical is left open.

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 baseline is 3. The description still adds meaning the schema cannot: company must be supplied exactly as the estimator gave it because the server has no Company setup, and the default path is restated in terms of the loaded plan file. That is genuine semantic value on top of an already-documented schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise verb and resource ('Write the bid proposal PDF') and enumerates exactly what the document contains — letterhead, prepared-for, scope quantities, base bid, terms, signature blocks — which materially separates it from export_estimate and export_report. It never names a sibling tool outright, so the differentiation is inferred from content rather than stated.

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?

It gives clear operational context: default output path, and the rule that re-exporting over its own prior export already overwrites, so 'overwrite' is only for deliberately destroying an unrelated file. It also instructs that the user must hear the completeness verdict before sending. It does not say when to prefer revise_proposal or withdraw_proposal first, so there are no explicit exclusions.

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