Dozo
Server Details
PDF invoices (VAT by rate, EN/FR) and links to free in-browser PDF tools on dozokit.com.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 2 tools
make_invoice is specifically for generating a filled invoice link, while pdf_tool is for generic PDF operations like merge, compress, split, sign, and organize. Their purposes are clearly distinct despite both involving PDFs.
Both names use snake_case, but make_invoice follows a verb_noun pattern while pdf_tool is a noun-style tool name. The convention is readable but not fully predictable.
Two tools is slightly thin, but each is broad: one covers invoice creation and the other bundles multiple PDF utilities. This is reasonable for the server's apparent scope.
The surface covers invoice generation and common PDF operations such as merge, compress, split, sign, and organize. Minor gaps exist, such as broader PDF conversions, but core workflows are covered.
Available Tools
2 toolsmake_invoiceMake an invoiceARead-onlyIdempotentInspect
Lay out a PDF invoice from the details the user gives: who sends it, who pays, and the lines (description, quantity, unit price, VAT %). Shows a preview, and returns a dozokit.com link that opens the invoice filled in, where the user checks it and downloads the PDF, made on their device. Use lang fr and EUR for a French invoice; set noVat for a French micro-entrepreneur exempt from VAT (it prints « TVA non applicable, art. 293 B du CGI »). Read-only: nothing is sent or stored. Crée une facture PDF à partir des informations données.
| Name | Required | Description | Default |
|---|---|---|---|
| due | No | Due date, YYYY-MM-DD. Defaults to 30 days after the issue date. | |
| bank | No | Bank details such as IBAN and BIC. | |
| lang | No | Language printed on the invoice. | en |
| lines | Yes | ||
| noVat | No | ||
| terms | No | Payment terms or notes. | |
| client | Yes | ||
| issued | No | Issue date, YYYY-MM-DD. Defaults to today. | |
| number | No | Invoice number. Defaults to INV-<year>-001. | |
| seller | Yes | ||
| currency | No | ISO currency code. | EUR |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, but the description adds material behavior the agent could not infer: a preview is shown, the return value is a dozokit.com link that opens a pre-filled invoice, and the PDF is generated on the user's device rather than stored server-side. That confirms and enriches the read-only annotation rather than contradicting it.
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 the French-invoice configuration tips are front-loaded in efficient sentences. The trailing French sentence, 'Crée une facture PDF à partir des informations données', merely restates the opening in another language and does not earn 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?
For an 11-parameter nested tool with no output schema, the description covers the critical agent-facing questions: what is produced (preview plus link), whether data is persisted (no), and how to handle the French VAT-exempt case. Remaining details such as currency formatting beyond EUR or how the link is consumed are covered by schema descriptions, so nothing essential is missing.
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 64%, and the description fills a real gap by explaining what 'noVat' actually does — it prints the French « TVA non applicable, art. 293 B du CGI » mention — which is entirely absent from the schema. It also restates the shape of 'lines' (description, quantity, unit price, VAT %) but adds no extra meaning for the other documented fields like due, issued, bank, or terms.
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 uses a specific verb and resource ('Lay out a PDF invoice from the details the user gives') and enumerates the required inputs (seller, client, lines), so the agent can tell exactly what the tool produces. It does not explicitly contrast itself with the sibling pdf_tool, so it falls short of full sibling differentiation.
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?
There is useful conditional guidance ('Use lang fr and EUR for a French invoice', 'set noVat for a French micro-entrepreneur exempt from VAT'), which tells the agent how to configure common cases. However, there is no explicit statement of when to use this versus pdf_tool, nor any exclusion or prerequisite, so usage context is implied rather than prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pdf_toolOpen a PDF toolARead-onlyIdempotentInspect
Give the user the Dozo PDF tool they need, on dozokit.com: merge (several PDFs into one), compress (make a PDF smaller), split (by page ranges), jpg_to_pdf (images into one PDF), sign, organize (reorder, rotate, delete pages). The user picks the files there and they never leave their device. Files already attached to this conversation cannot be used. Read-only. Donne le lien vers l’outil PDF : les fichiers restent sur l’appareil.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language of the tool, fr for a French-speaking user. | en |
| tool | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, closed-world, so the bar is lower. The description still adds genuinely new behavioral detail: processing happens client-side on dozokit.com ("files never leave their device") and attached conversation files are rejected. "Read-only" merely restates the annotation.
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 purpose and the operation list are front-loaded and each gloss on the enum values earns its place. The closing French sentence and the bare "Read-only" are redundant with the body and the annotations respectively, but the cost is small.
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?
No output schema exists, and the description implies the return value (a link the user follows to dozokit.com) and the privacy model well enough to act on it. Combined with annotations covering safety and the description covering the enum semantics, an agent has everything needed to call it 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 only 50% — `tool` has no schema description — but the description compensates by glossing every enum value (merge = several PDFs into one, split = by page ranges, organize = reorder/rotate/delete), which is meaning the bare enum names do not carry. `lang` is already documented in the schema, and the trailing French sentence reinforces it.
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 action (hand the user the Dozo PDF tool at dozokit.com) and enumerates the six supported operations, so the agent knows exactly what this call produces. It does not differentiate itself from the sibling make_invoice, though the PDF domain makes the split obvious.
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?
Usage context is clear: use this when the user needs a PDF operation, and pick the matching value of `tool`. The explicit exclusion — "Files already attached to this conversation cannot be used" — is a real routing constraint that prevents a wrong call. It does not name make_invoice as an alternative, but there is no plausible competition between the two.
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.
2 tool updates
- First observed
make_invoice - First observed
pdf_tool
Related MCP Connectors
Create invoices, quotes, receipts and credit notes with GST or VAT, as prefilled links or PDFs.
PDF tools + invoice extraction, bank statement parsing, GST reconciliation & GSTIN validation.
Make invoice, quote and receipt PDFs from a chat: totals, tax, 26 currencies. Free, nothing stored.
EN 16931-compliant e-invoices: XRechnung, ZUGFeRD, Factur-X, Peppol BIS, Facturae or US PDF. Free.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables the generation of professional PDF invoices and their distribution via email using customizable templates. It allows users to create, manage, and send invoices with standard business fields like tax rates and line items through natural language.319 npm2MIT
- AlicenseAqualityBmaintenanceRussian business paperwork as PDF: invoices with a bank payment QR code (GOST R 56042), acts of completed work, payment QR codes and amounts in words. Requisites are checksum-validated; fully local, no API key.24MIT
- AlicenseAqualityCmaintenanceGenerate professional PDFs from Claude, Cursor, and other AI tools. Create invoices, contracts, reports, and certificates from templates or inline HTML markup.719 npm1MIT
- AlicenseAqualityCmaintenanceCreate free, no-signup invoices from your AI assistant — the create_invoice tool returns a link that opens blankinvoicemaker.com pre-filled, ready to download as a watermark-free PDF.221 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.