Kras-Trans: CMR, WZ and interest note generator
Server Details
CMR consignment notes in 25 EU languages, Polish WZ and interest notes: link to a ready PDF.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool targets a distinct document type: CMR consignment note, WZ goods issue note, and interest note. The two interest-related tools are clearly differentiated by purpose (calculation only vs. calculation + document generation), with explicit cross-references.
All tool names follow a consistent create_<document_type> pattern, with calculate_late_payment_interest as a deliberate exception for the calculation-only utility. The naming is predictable and clearly indicates the action and object.
Four tools is well-scoped for a document generator server covering three distinct document types plus a supporting calculation utility. Each tool has a clear purpose and the count is appropriate for the domain.
The server covers the core document generation workflows (CMR, WZ, interest note) and includes the calculation prerequisite for interest notes. Minor gaps exist, such as no tool for listing or managing previously created documents, but the primary generation workflows are complete.
Available Tools
4 toolscalculate_late_payment_interestCalculate late-payment interest (Poland)ARead-onlyIdempotentInspect
Calculates Polish late-payment interest for one or more overdue amounts — statutory (art. 481 Civil Code), commercial-transactions or a custom rate — using the current National Bank of Poland reference rate, exact to the grosz. Returns days late, the rate and the interest. To issue a formal interest note use create_interest_note.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | No | ISO 4217 code of the amounts, default PLN | |
| invoices | Yes | Invoices or other amounts paid late / still unpaid | |
| rate_type | No | statutory = Polish statutory late-payment interest (art. 481 Civil Code, default); commercial = rate for transactions between businesses; custom = contractual rate given in annual_rate_percent | |
| annual_rate_percent | No | Annual rate in percent when rate_type is custom, e.g. 12.5 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so no side-effect warning is needed. The description adds useful computation details: it uses the current NBP reference rate and is exact to the grosz, and it states the returned values (days late, rate, interest).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler; the main purpose and output are front-loaded and the sibling routing is a single closing sentence. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description covers the return values (days late, rate, interest), input scope, rate variants, and precision. There are no gaps that would prevent an agent from selecting and calling the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the input schema already documents every parameter, including enum meanings and formats. The description adds context like the NBP reference rate and Polish statutory article, but it does not materially explain the parameters beyond what the schema provides, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Calculates'), resource ('Polish late-payment interest'), and scope ('one or more overdue amounts'), and distinguishes itself from sibling create_interest_note by noting the formal note is a separate action. It is immediately clear what the tool does and how it differs from related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to use create_interest_note when the goal is to issue a formal interest note, providing the key routing decision. The opening phrase states the applicable condition: overdue amounts for which interest needs to be calculated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_cmr_consignment_noteCreate a CMR consignment note (PDF)AInspect
Creates an international road consignment note CMR (Geneva Convention 1956, standard IRU layout with 24 fields) on kras-trans.eu and returns a short link where the user reviews it and downloads a free PDF with 4 colour copies (sender, consignee, carrier, archive). The generator works in 25 languages. Use for: CMR, road waybill, consignment note, list przewozowy CMR, CMR-Frachtbrief, lettre de voiture CMR, lettera di vettura CMR, carta de porte CMR, nákladní list CMR, міжнародна товарно-транспортна накладна CMR. Ask only for missing essentials: sender, consignee, places of loading and delivery, goods. Signatures and stamps (fields 22–24) are added on paper after printing.
| Name | Required | Description | Default |
|---|---|---|---|
| goods | No | Fields 6–12 — one entry per line of goods | |
| sender | Yes | Field 1 — sender (shipper) | |
| carrier | No | Field 16 — carrier; leave out if not known yet | |
| language | Yes | Language of the generator page — use the user's language | |
| consignee | Yes | Field 2 — consignee (receiver) | |
| reference | No | Own reference number (optional) | |
| established_in | No | Field 21 — place where the note is made out | |
| established_on | No | Field 21 — date, YYYY-MM-DD | |
| date_of_loading | No | Field 4 — date of taking over, YYYY-MM-DD | |
| carriage_charges | No | Field 14 — e.g. carriage paid / carriage forward | |
| cash_on_delivery | No | Field 15 — cash-on-delivery amount and currency, if any | |
| place_of_loading | No | Field 4 — place of taking over the goods: city, country | |
| place_of_delivery | No | Field 3 — place designated for delivery: city, country | |
| documents_attached | No | Field 5 — e.g. commercial invoice no. …, packing list | |
| special_agreements | No | Field 19 | |
| sender_instructions | No | Field 13 — customs and other formalities | |
| successive_carriers | No | Field 17 | |
| carrier_reservations | No | Field 18 — carrier's reservations about goods or packaging |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only generic annotation flags, the description carries the behavioral burden and handles it well: it discloses that the tool creates the note, returns a review link, enables a free 4-copy PDF download, works in 25 languages, and that fields 22–24 are intentionally added on paper after printing. This tells the agent what the user will experience after the call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core behavior and output are front-loaded, and each clause adds relevant information. The multi-language synonym list is long but serves as practical routing vocabulary; a shorter version could trim it without losing clarity, so it is not maximally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 18 parameters, nested objects, and no output schema, the description covers the essential context: what is produced (link + free 4-copy PDF), what to ask for, and the paper-signature step. It does not mention link expiry or repeated-call behavior, but those are minor for a tool whose schema fully documents its fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all parameters (100% coverage), so the baseline applies. The description adds value by prioritizing which fields the agent should actively collect from the user (sender, consignee, places, goods) and noting that stamps/signatures are handled outside the tool, which shapes how optional parameters are treated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: it creates an international CMR consignment note on kras-trans.eu and returns a link/PDF. It also names the exact standard (Geneva Convention 1956, IRU layout, 24 fields), which clearly separates it from the sibling tools that create interest notes or WZ goods-issue notes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit 'Use for' list with CMR and equivalent terms in multiple languages, and tells the agent to ask only for missing essentials (sender, consignee, places, goods). It stops short of naming alternatives or exclusions, but the context is clear enough for an agent to select this tool over non-CMR siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_interest_noteCreate a late-payment interest note (Poland)AInspect
Calculates Polish late-payment interest for overdue invoices (statutory rate under art. 481 of the Civil Code by default; commercial-transactions rate or a custom rate on request), creates an interest note (nota odsetkowa) on kras-trans.eu and returns a short link to review and download the PDF together with the calculation, exact to the grosz. Statutory rates come from the current National Bank of Poland reference rate. Unpaid invoices: interest is counted up to today.
| Name | Required | Description | Default |
|---|---|---|---|
| place | No | Place of issue (city) | |
| debtor | Yes | Debtor — who paid late | |
| creditor | Yes | Creditor — who issues the note and receives the interest | |
| currency | No | ISO 4217 code of the amounts, default PLN | |
| invoices | Yes | Invoices or other amounts paid late / still unpaid | |
| rate_type | No | statutory = Polish statutory late-payment interest (art. 481 Civil Code, default); commercial = rate for transactions between businesses; custom = contractual rate given in annual_rate_percent | |
| issue_date | No | YYYY-MM-DD, default today | |
| note_number | No | Number of the note, e.g. NO/1/09/2026 | |
| bank_account | No | IBAN for the payment of the note | |
| payment_days | No | Days to pay the note, default 14 | |
| annual_rate_percent | No | Annual rate in percent when rate_type is custom, e.g. 12.5 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations providing no safety hints, the description carries the burden and does disclose key behaviors: it creates an external document, uses statutory/commercial/custom rates, counts interest to today for unpaid invoices, and is exact to the grosz. It doesn't mention authentication or legal-effect caveats, but the core behavioral profile is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler; the main action and output are front-loaded. Each sentence adds necessary context: calculation logic, rate sources, and behavior for unpaid invoices.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description sufficiently explains the tool's output and rate behavior, which is important because there is no output schema. It doesn't spell out required creditor/debtor/invoices fields, but the rich input schema covers that, and the brief output description is adequate for a no-output-schema tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already explains all 11 parameters. The description adds useful context around custom rates and unpaid-invoice interest counting, but it doesn't need to compensate for missing parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: it calculates Polish late-payment interest, creates an interest note (nota odsetkowa), and returns a short link to the PDF. This clearly distinguishes it from the sibling calculate_late_payment_interest by emphasizing document creation and delivery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for overdue Polish invoices and mentions rate options, but it never explicitly tells an agent when to choose this tool over calculate_late_payment_interest or when not to use it. The boundary between 'just calculate' and 'calculate and create a note' 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.
create_wz_goods_issue_noteCreate a WZ goods issue note (Poland)AInspect
Creates a Polish warehouse goods issue note WZ (wydanie zewnętrzne, classic form 351-8) on kras-trans.eu and returns a short link where the user reviews it and prints or saves a free PDF. Prices in PLN; the value of each line is calculated exactly (quantity × unit price). Use for: WZ, druk WZ, dokument WZ, wydanie zewnętrzne, wydanie z magazynu, goods issue note, delivery note of a Polish company.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| notes | No | ||
| purpose | No | e.g. sale, transfer to a subcontractor | |
| recipient | Yes | Recipient of the goods | |
| warehouse | No | Warehouse number or name | |
| issue_date | No | YYYY-MM-DD, default today | |
| order_number | No | ||
| dispatch_date | No | Date the goods left the warehouse, YYYY-MM-DD | |
| document_number | No | e.g. WZ/12/09/2026 | |
| shipping_paid_by | No | Who pays for the shipment | |
| invoice_reference | No | Related invoice number and date | |
| means_of_transport | No | e.g. registration number of the truck, courier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so the description carries the behavioral disclosure burden. It discloses that the tool creates an external document, returns a short link, calculates line values as quantity × unit price, and gives free PDF access. This is meaningful beyond the annotations, though it does not mention persistence or side effects in detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences front-load the main action and result, with no filler. The keyword 'Use for' list is slightly repetitive but earns its place by supporting multilingual and synonym-based agent selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because there is no output schema, the description appropriately specifies the return value as a short link and the user workflow. Combined with the schema's required fields and item structure, an agent can call the tool correctly, though optional behavior like default unit price could be slightly clearer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%, so the description does not need to compensate heavily. It adds global context by stating prices are in PLN and line values are exactly quantity × unit price, which clarifies unit_price_pln and quantity semantics. It does not explain optional parameter defaults or edge cases beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States clearly that it creates a Polish WZ goods issue note on kras-trans.eu and returns a short link for review, print, or PDF download. The verb, resource, and platform make the purpose concrete and distinct from sibling tools like CMR or interest notes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit 'Use for' list covering Polish and English terms for WZ documents, which helps an agent recognize when this tool is appropriate. It does not explicitly say when not to use it or mention alternatives such as CMR, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
calculate_late_payment_interest - First observed
create_cmr_consignment_note - First observed
create_interest_note - First observed
create_wz_goods_issue_note
Related MCP Connectors
Polish invoicing and KSeF e-invoicing: issue, send, settle and file a company's documents
Free Polish VAT invoice generator API (Faktura VAT). Generate professional PDF invoices with light/dark themes. No API keys required.
Invoicing, costs, KPiR, VAT and KSeF data from your Mobilna Faktura account (Poland).
Polish company registry: 4.4M firms, KRS/REGON data, VAT white list checks, financial statements
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceFree Polish VAT invoice generation MCP server with PDF output and preview. No API key required.23 npm1MIT
- FlicenseNot gradedqualityCmaintenanceMCP server for electronic consignment notes (eCMR). Create, sign, manage, and track electronic transport documents with QR codes, PDF generation, and digital signatures through the Cargoffer ECMR API. Designed for AI agents like Claude Desktop, Cursor, and Cline.-
- AlicenseCqualityFmaintenanceGenerate Polish legal documents (sales contracts, powers of attorney, termination letters, loan agreements, handover protocols) directly from your AI assistant. No API key required.24 npmMIT
- AlicenseNot gradedqualityAmaintenanceYour AI agent's practical guide to life and administration in Poland.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.