Skip to main content
Glama

pl-firmy: Polish company check

Generate FA(3) correction XML

generate_correction_xml
Read-only

Build an FA(3) correction invoice (RodzajFaktury KOR). Header amounts are the difference versus the original. Pass beforeLines to emit state-before (StanPrzed) and state-after rows; otherwise lines are the delta. Does not send the invoice to KSeF. Callable without an API key.

Input Schema

NameRequiredDescriptionDefault
gvNoBuyer is in a VAT group: 1 yes, 2 no (default).
jstNoBuyer is a local-government unit: 1 yes, 2 no (default).
ibanNoPolish NRB, 26 digits or PL IBAN.
noteNo
paidNo
buyerYes
linesYes
placeNo
numberYes
reasonYes
sellerYes
dueDateNo
currencyNoISO 4217, default PLN.
paidDateNo
saleDateNo
correctedYes
issueDateYes
beforeLinesNoState before correction, same length as lines. Omit to send lines as the difference.
splitPaymentNoSet true to mark MPP (P_18A).
correctionTypeNoFA(3) TypKorekty. Default 2.
exemptionBasisNoRequired when any line uses vatRate zw.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description is consistent with that — it only constructs XML. It adds genuinely useful context beyond annotations: no KSeF submission side effect, and callable without an API key, which affects whether the agent can invoke it in an unauthenticated context.

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, zero repetition, and the document type plus the highest-risk semantic (delta amounts) are front-loaded. The two conditional sentences map directly to parameter choices.

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?

An output schema exists, so return values need not be explained; annotations cover the safety profile; the schema covers field-level validation. What remains — the correction-specific delta/StanPrzed semantics, the no-submission guarantee, and keyless invocation — is exactly what the description supplies.

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?

With 21 parameters and only 38% schema description coverage, the description must compensate, and it does so for the single most consequential semantic: 'Header amounts are the difference versus the original' and the beforeLines-vs-lines distinction (state-before/state-after rows versus delta lines). It leaves the long tail of invoice fields (correctionType, exemptionBasis, corrected.ksefNumber, splitPayment) to the schema, which is acceptable given those carry inline descriptions.

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 — build an FA(3) correction invoice (RodzajFaktury KOR) — which is immediately distinguishable from generate_fa3_xml (original invoice) among the siblings. The parenthetical names the exact FA(3) document type, removing ambiguity about what artifact is produced.

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?

Explicitly bounds scope with 'Does not send the invoice to KSeF', so the agent knows this is a build-only step and a separate submission action is required. It does not name the sibling build/submit tools directly, so the routing guidance is contextual rather than prescriptive.

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.