Skip to main content
Glama

DJfindr

Add a document to an offer

add_document

Add a document to an offer. Needs bookings:write. Two calls. The first changes nothing: it checks the arguments as the change would (a field this tool does not take is refused, by name) and answers a summary and a confirm_token. Show the summary to the person; only after they agree, call again with the same arguments plus confirm_token.

Input Schema

NameRequiredDescriptionDefault
nameNoThe document's name. Defaults: a template's title; an upload's file name.
valuesNoTemplate placeholder to value, such as { "{{LATE_FEE_PERCENTAGE}}": "10" }.
file_idNoA ready `proposal_document` upload of mine (a PDF).
proposal_idYes
content_htmlNoCustom text, as HTML (with `name`), or the text kept of an uploaded PDF (convert_document).
template_keyNoA document template (list_document_templates), with `values` for its placeholders.
confirm_tokenNoLeave out on the first call. On the second call, the confirm_token the first call answered.
acceptance_typeNoWhat the client does with it on DJfindr: view it, tick it, or sign it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Goes well past the annotations by disclosing a full two-phase commit protocol: the first call is non-mutating and only validates, it returns a summary plus confirm_token, and unknown fields are rejected by name. That is precisely the behavioral context annotations cannot convey, and it does not contradict readOnlyHint=false or idempotentHint=false, since the write happens only on the confirmed second call.

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?

Four short sentences, front-loaded with purpose and permission before the procedural detail. Every sentence carries a distinct obligation (auth, call count, first-call semantics, human-in-the-loop step) with no restatement of the title or schema.

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 an 8-parameter mutation with a non-trivial confirmation flow and no output schema, the description covers the hard parts: auth scope, the two-call sequence, and the confirm gate. It leaves open how the three document-source modes interact and what the second call ultimately returns, which is a modest gap rather than a blocking one.

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 88%, so baseline would be 3, but the description adds real meaning: it tells the agent that confirm_token must be omitted on the first call and that the second call must repeat the identical arguments plus the token. It also explains the additionalProperties=false rejection behavior. It does not clarify whether file_id, content_html, and template_key are mutually exclusive, which is the one thing left to the schema.

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?

States a specific verb and resource ("Add a document to an offer"), which cleanly separates it from siblings like edit_document, remove_document, and convert_document. An agent knows immediately what class of operation this is without opening the 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?

Gives explicit operating conditions: requires `bookings:write`, must be called twice, and the first call must be followed by human confirmation before the second. It does not name alternative tools for adjacent goals (e.g., list_document_templates to find a template_key, convert_document to extract text), so there is no explicit exclusion guidance, but the when-and-how is clear.

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.

Resources