MCP server for generating documents from templates and invoices
Server has 4 tools with basic schemas and descriptions, but significant gaps in parameter documentation, error handling, and output structure. All tools have descriptions (10-100 chars), but most are generic. Schemas present but incomplete: 'get-all-templates' and 'get-specific-template' have empty input schemas; 'complete-template' lacks descriptions for 'templateId' and 'values' parameters; 'generate-invoice' has nested schema but no output schema documented. Error handling is minimal, all tools catch errors and return generic 'Error fetching templates' or 'Error generating invoice' messages without recovery guidance. No tool annotations (readOnlyHint, destructiveHint). Naming is verb-noun compliant but generic ('get-*', 'complete-*', 'generate-*'). No pagination, no result limits, no chaining IDs in responses.
Sends the required information needed to complete the template for a specific ID
Generates an invoice PDF from a list of orders
Returns a list of all available templates that documents can be generated from
Returns the information needed to complete a template for a specific ID
Empty input schemas for discovery tools. 'get-all-templates' has {} schema with no parameters documented. LLMs cannot infer when or how to call these tools.
Missing parameter descriptions. 'complete-template' has 'templateId' and 'values' parameters with no descriptions in code. 'generate-invoice' 'orders' parameter lacks description despite complex nested schema.
No output schema documentation. All tools return text content but no structured schema is documented. LLMs cannot plan downstream calls or extract typed fields.
Generic error messages without recovery guidance. All tools return 'Error fetching templates' or 'Error generating invoice' without actionable next steps. LLMs cannot self-correct.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
No tool annotations. Tools lack readOnlyHint (get-* tools are read-only) and destructiveHint (generate-invoice, complete-template write files). Agents cannot reason about side effects.