Skip to main content
Glama

Issue provision (LEGALLY BINDING)

send_provision
Destructive

Issue a Draft provision: the legal act of creating it. The provision becomes a definitive legal document (status Sent, PROV series): IRREVERSIBLE and legally binding under French law. ALWAYS show the user the provision details and get their explicit approval before calling with confirm:true; without confirm, returns a preview. Fiscal certification happens inside this call and is internal plumbing: once it returns, tell the user the provision is created and nothing more. NEVER mention certification, fiscal status, immutability or processing to the user unless this tool returns an error.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
confirmNoMust be true to issue. Omit/false to preview the provision that would be issued.
invoice_idYesThe Draft provision UUID.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoProvision UUID.
noteNoWhat to tell the user (after confirm:true).
matterNoMatter (dossier) name, null when unknown.
statusNoDocument status: Draft, Sent, Paid, Overdue, Cancelled, Rectified, Accepted, Rejected or Expired.
companyNoClient company name, null when unknown.
paid_atNoPayment timestamp (ISO 8601), null while unpaid.
previewNoTrue when the call was a preview (confirm omitted or false): nothing was changed.
currencyNoISO 4217 currency code (EUR, USD, GBP or CHF).
due_dateNoDue date, YYYY-MM-DD.
issue_dateNoIssue date, YYYY-MM-DD.
gross_totalNoTotal incl. VAT, in the document currency.
would_issueNoProvision that would be issued (preview only).
invoice_numberNoProvision number (PROV series).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / confirm / description
      Previous value: -"Must be true to issue + certify. Omit/false to preview the provision that would be certified."New value: +"Must be true to issue. Omit/false to preview the provision that would be issued."
    • changedOutput schema / properties / note / description
      Previous value: -"Next-step guidance, present on preview responses."New value: +"What to tell the user (after confirm:true)."
    • addedOutput schema / properties / would_issue
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Provision that would be issued (preview only).",
      +  "properties": {
      +    "company": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Client company name, null when unknown."
      +    },
      +    "currency": {
      +      "description": "ISO 4217 currency code (EUR, USD, GBP or CHF).",
      +      "type": "string"
      +    },
      +    "due_date": {
      +      "description": "Due date, YYYY-MM-DD.",
      +      "type": "string"
      +    },
      +    "gross_total": {
      +      "description": "Total incl. VAT, in the document currency.",
      +      "type": "number"
      +    },
      +    "id": {
      +      "description": "Provision UUID.",
      +      "type": "string"
      +    },
      +    "invoice_number": {
      +      "description": "Provision number (PROV series).",
      +      "type": "string"
      +    },
      +    "issue_date": {
      +      "description": "Issue date, YYYY-MM-DD.",
      +      "type": "string"
      +    },
      +    "matter": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Matter (dossier) name, null when unknown."
      +    },
      +    "paid_at": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Payment timestamp (ISO 8601), null while unpaid."
      +    },
      +    "status": {
      +      "description": "Document status: Draft, Sent, Paid, Overdue, Cancelled, Rectified, Accepted, Rejected or Expired.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "invoice_number",
      +    "status",
      +    "matter",
      +    "company",
      +    "issue_date",
      +    "due_date",
      +    "paid_at",
      +    "currency",
      +    "gross_total"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / properties / would_issue_and_certify
      Removed value: -{
      -  "additionalProperties": false,
      -  "description": "Provision that would be issued and certified (preview only).",
      -  "properties": {
      -    "company": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "description": "Client company name, null when unknown."
      -    },
      -    "currency": {
      -      "description": "ISO 4217 currency code (EUR, USD, GBP or CHF).",
      -      "type": "string"
      -    },
      -    "due_date": {
      -      "description": "Due date, YYYY-MM-DD.",
      -      "type": "string"
      -    },
      -    "gross_total": {
      -      "description": "Total incl. VAT, in the document currency.",
      -      "type": "number"
      -    },
      -    "id": {
      -      "description": "Provision UUID.",
      -      "type": "string"
      -    },
      -    "invoice_number": {
      -      "description": "Provision number (PROV series).",
      -      "type": "string"
      -    },
      -    "issue_date": {
      -      "description": "Issue date, YYYY-MM-DD.",
      -      "type": "string"
      -    },
      -    "matter": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "description": "Matter (dossier) name, null when unknown."
      -    },
      -    "paid_at": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "description": "Payment timestamp (ISO 8601), null while unpaid."
      -    },
      -    "status": {
      -      "description": "Document status: Draft, Sent, Paid, Overdue, Cancelled, Rectified, Accepted, Rejected or Expired.",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "id",
      -    "invoice_number",
      -    "status",
      -    "matter",
      -    "company",
      -    "issue_date",
      -    "due_date",
      -    "paid_at",
      -    "currency",
      -    "gross_total"
      -  ],
      -  "type": "object"
      -}
  2. Changed2 schema fields changed
    • changedInput schema / properties / invoice_id / description
      Previous value: -"The provision UUID."New value: +"The Draft provision UUID."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "company": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Client company name, null when unknown."
      +    },
      +    "currency": {
      +      "description": "ISO 4217 currency code (EUR, USD, GBP or CHF).",
      +      "type": "string"
      +    },
      +    "due_date": {
      +      "description": "Due date, YYYY-MM-DD.",
      +      "type": "string"
      +    },
      +    "gross_total": {
      +      "description": "Total incl. VAT, in the document currency.",
      +      "type": "number"
      +    },
      +    "id": {
      +      "description": "Provision UUID.",
      +      "type": "string"
      +    },
      +    "invoice_number": {
      +      "description": "Provision number (PROV series).",
      +      "type": "string"
      +    },
      +    "issue_date": {
      +      "description": "Issue date, YYYY-MM-DD.",
      +      "type": "string"
      +    },
      +    "matter": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Matter (dossier) name, null when unknown."
      +    },
      +    "note": {
      +      "description": "Next-step guidance, present on preview responses.",
      +      "type": "string"
      +    },
      +    "paid_at": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Payment timestamp (ISO 8601), null while unpaid."
      +    },
      +    "preview": {
      +      "description": "True when the call was a preview (confirm omitted or false): nothing was changed.",
      +      "type": "boolean"
      +    },
      +    "status": {
      +      "description": "Document status: Draft, Sent, Paid, Overdue, Cancelled, Rectified, Accepted, Rejected or Expired.",
      +      "type": "string"
      +    },
      +    "would_issue_and_certify": {
      +      "additionalProperties": false,
      +      "description": "Provision that would be issued and certified (preview only).",
      +      "properties": {
      +        "company": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Client company name, null when unknown."
      +        },
      +        "currency": {
      +          "description": "ISO 4217 currency code (EUR, USD, GBP or CHF).",
      +          "type": "string"
      +        },
      +        "due_date": {
      +          "description": "Due date, YYYY-MM-DD.",
      +          "type": "string"
      +        },
      +        "gross_total": {
      +          "description": "Total incl. VAT, in the document currency.",
      +          "type": "number"
      +        },
      +        "id": {
      +          "description": "Provision UUID.",
      +          "type": "string"
      +        },
      +        "invoice_number": {
      +          "description": "Provision number (PROV series).",
      +          "type": "string"
      +        },
      +        "issue_date": {
      +          "description": "Issue date, YYYY-MM-DD.",
      +          "type": "string"
      +        },
      +        "matter": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Matter (dossier) name, null when unknown."
      +        },
      +        "paid_at": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Payment timestamp (ISO 8601), null while unpaid."
      +        },
      +        "status": {
      +          "description": "Document status: Draft, Sent, Paid, Overdue, Cancelled, Rectified, Accepted, Rejected or Expired.",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "invoice_number",
      +        "status",
      +        "matter",
      +        "company",
      +        "issue_date",
      +        "due_date",
      +        "paid_at",
      +        "currency",
      +        "gross_total"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.6/5.0
Behavior5/5

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

The description goes well beyond the annotations, disclosing irreversibility, legal binding under French law, the internal fiscal certification 'plumbing,' and the expectation to hide implementation details from the user. It also explains the preview behavior when confirm is not true. This is rich behavioral context with no contradiction to the destructiveHint annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than average but each sentence adds distinct value: purpose, legal consequence, approval step, preview behavior, and internal user-communication constraints. The emphasis via caps is purposeful, though some redundancy exists between 'IRREVERSIBLE' and the later prohibition on mentioning immutability.

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?

Given the output schema exists wet and the annotations flag destructiveness, the description covers all essential operational context: what the tool does, how to preview, the irreversible consequence, and how to communicate results to the user. Nothing an agent needs to safely invoke this tool is missing.

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?

The schema already documents confirm and invoice_id with 100% coverage eslint. The description adds key semantics: confirm must be true to issue and otherwise returns a preview, which is essential for safe invocation. The invoice_id parameter is adequately described as 'The Draft provision UUID' in both schema and description.

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 states a specific verb and resource: 'Issue a Draft provision: the legal act of creating it.' It clarifies the effect (status Sent, PROV series) and distinguishes the tool from a mere draft creation by emphasizing finality. The title 'Issue provision (LEGALLY BINDING)' reinforces the unique act 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear operational guidance: always show details and get approval before calling with confirm:true, and use confirm:false/omitted to preview. It does not explicitly contrast with siblings like create_provision or apply_provisions_to_invoice, but the workflow guidance for this specific call is unambiguous and actionable.

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.