Quarto MCP Server - Convert Quarto Markdown to PowerPoint and other formats with custom template support
The server defines 2 tools with explicit schemas and descriptions. Both tools have reasonable descriptions (100+ characters) and documented input schemas. However, there are significant gaps: (1) quarto_render accepts complex parameters (format_options as additionalProperties: true) with minimal guidance on valid keys; (2) output schemas are not documented, what does quarto_render return? Is it a file path, structured metadata, or raw bytes?; (3) error handling is absent, no guidance on what happens when render fails, how to retry, or what invalid inputs look like; (4) template parameter documentation mentions HTTP/HTTPS URL support but provides no format constraints or validation hints; (5) the template parameter description is verbose (token-wasteful) and mixes discovery info into a parameter description rather than a separate tool; (6) quarto_list_formats has zero parameter documentation (though it takes no params, the description could clarify what 'formats' means in the context of Quarto vs Pandoc); (7) no tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite quarto_render being a write operation.
List all supported Quarto output formats
Convert Quarto Markdown to various formats (PowerPoint, PDF, HTML, etc.). Supports custom PowerPoint templates via template ID or HTTP/HTTPS URL.
format_options parameter uses additionalProperties: true with no schema or documentation of valid keys. LLMs will hallucinate Quarto YAML header keys, causing silent rendering failures.
Output schemas are not documented for either tool. quarto_render should document what is returned (file path? status? metadata?). quarto_list_formats should document the structure of the formats list.
No error handling guidance. When quarto_render fails (Quarto not installed, invalid format_options, bad markdown), the LLM receives no recovery hint.
quarto_render is a write operation (creates files on disk) but lacks tool annotations (destructiveHint) and does not state this in the description.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 50 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 42 | - | v1 |
template parameter description is 400+ characters and conflates parameter documentation with discovery logic (listing template IDs). This is token-wasteful and mixes concerns.
output_filename parameter has no format or path constraint. LLM could pass invalid paths, paths with directory traversal, or non-.pptx extensions for PPTX format.
quarto_list_formats description does not explain when to call it or what it returns. Is it a discovery tool? Does it match the enum in quarto_render?