The server defines a single tool 'generate-invoice-pdf' with a comprehensive, well-structured schema. The tool name uses a verb_noun pattern ('generate-invoice-pdf'), which is good. The description is present and actionable (71 chars: 'Creates and exports an invoice as a PDF'). The input schema is fully visible and detailed, with nested objects for business, customer, and items. However, there are notable issues: (1) The output schema is completely undocumented, callers cannot determine what the tool returns (PDF binary? File path? Success status?). (2) No error handling guidance; if PDF generation fails, the LLM has no recovery path. (3) The tool description does not indicate what the tool returns or what side effects occur (file written to disk). (4) The 'outputPath' parameter's default behavior is described informally ('defaults to Desktop/invoice-{invoiceNumber}.pdf') rather than as an actual default value in the schema, creating ambiguity. (5) No mention of permissions or security implications of writing to the user's filesystem. (6) Parameter descriptions are present and mostly clear, but some (like 'outputPath') lack format constraints. The schema itself is extensive and well-organized with proper typing throughout the nested structures.
Creates and exports an invoice as a PDF
Missing output schema documentation. The tool response structure is not documented, preventing the LLM from knowing what fields to expect or how to use the result downstream.
No error handling or recovery guidance. If PDF generation fails (invalid dates, missing required fields, disk full), the tool provides no actionable error message. The LLM cannot self-correct.
Tool description does not specify what happens or what is returned. It should state 'Generates and writes an invoice PDF to the specified output path (or Desktop by default). Returns the file path on success.' This guides LLM expectations.
Default 'outputPath' behavior is informal and not enforced in schema. Use a proper default field in the schema or document clearly: 'If not provided, defaults to ~/Desktop/invoice-{invoiceNumber}.pdf'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | C | 60 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 58 | - | v1 |
No security documentation. Writing files to the user's filesystem has security implications (path traversal risk if outputPath is not sanitized). Tool description should note: 'Output path is restricted to user home directory. Paths outside home are rejected.'
vatRate and vatAmount are numeric but lack range constraints. Should specify: 'VAT rate as decimal (0.00 to 1.00, e.g., 0.20 for 20%)'.