DocuQueue MCP
Server Details
Generate PDFs from templates via AI chat. Works with Claude, ChatGPT, Cursor, and any MCP client.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-03-26
- URL
- Repository
- docuqueue/docuqueue-mcp
- GitHub Stars
- 1
- Server Listing
- DocuQueue MCP Server
TDQS
Scored across 12 tools
Most tools cleanly separate resource types: templates, documents, decks, and branding each have distinct operations. The main ambiguities are generate_deck vs get_research_deck, which both produce presentation decks, and fill_template's integrated preview overlapping with preview_template; the descriptions help, but an agent could still hesitate between them.
Every tool follows a snake_case verb_noun pattern (create_, list_, get_, generate_, download_, save_, etc.) and consistently names resources like _template or _deck. This makes the tool surface highly predictable and easy to navigate.
Twelve tools is within the ideal 3-15 range, but the surface is slightly broad: it mixes document template management, deck generation, branding extraction, and status/download workflows. Still, each tool maps to a concrete operation and none feel like pure filler.
Core workflows are covered: list/preview/fill templates, check status, download PDF, and generate/save decks. The main gaps are template update/delete operations and a lack of deck preview/download tooling, but these are non-blocking for the primary generation use case.
Available Tools
12 toolscreate_templateCInspect
Design a new document layout.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Template name | |
| description | No | Brief description of template purpose | |
| html_content | Yes | HTML layout with {{variables}} |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| message | No | |
| template_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a write operation that isn't destructive. The description adds no further behavioral context—it does not mention whether repeated calls create duplicates (idempotentHint=false), how existing templates are handled, or any side effects. With the bar lowered by annotations, the description still fails to add value beyond stating the purpose.
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 description is a single short sentence, which is concise, but it is under-specified—it does not front-load key details like the required HTML content or the fact that this creates a reusable template. It is not verbose, but it lacks the informational weight needed to be effective. The sentence is not a tautology, so it earns a midpoint score.
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 a creation tool with three parameters and an output schema, the description is too minimal. It does not explain the expected workflow (e.g., that the template can be used with fill_template later), nor does it clarify the output format despite the output schema existing. It also fails to differentiate from sibling tools like save_deck or generate_deck. The description leaves the agent guessing about side effects and usage flow.
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 100%, so the schema already documents all three parameters (name, description, html_content). The description does not add any parameter-level detail, such as the role of {{variables}} in html_content or how name uniqueness is enforced. Per the baseline rule, 3 is appropriate since the schema does the heavy lifting.
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 the verb 'design' with a resource of 'new document layout', which clearly implies creating a template. It distinguishes from siblings like list_templates and preview_template by focusing on creation. However, it could be more explicit by saying 'Create' rather than 'Design', and it doesn't mention that the layout is stored as a reusable template.
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 provides no guidance on when to use this tool versus alternatives such as preview_template or fill_template. It does not mention prerequisites, like having HTML content prepared, or that it should be used before fill_template. No exclusions or alternative references are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_pdfCRead-onlyIdempotentInspect
Get your finished document.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Completed job ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| filename | No | |
| size_bytes | No | |
| download_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds only the 'finished' condition, which is already reflected in the schema's 'Completed job ID' parameter description. No additional behavioral context is provided.
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 description is a single, short, front-loaded sentence with no filler. It earns its place, though its brevity contributes to vagueness rather than precise clarity.
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?
This is a low-complexity tool: one required parameter, full schema coverage, and an output schema. The description and structured data cover the essentials for calling it correctly, though a bit more detail about the download behavior or completion requirement would make it more complete.
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 100%, and the only parameter job_id is documented as 'Completed job ID.' The description does not add further parameter guidance, but the schema fully covers the meaning, so the baseline of 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 conveys that the tool retrieves a finished document, matching the download_pdf name. However, it is vague about the PDF format, the job_id relationship, and does not explicitly differentiate it from siblings like get_research_deck or get_status.
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 no guidance about when to use download_pdf versus alternatives such as get_status or generate_deck. The phrase 'finished document' implies it should be used after completion, but this is not explicit and no exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_brandingARead-onlyIdempotentInspect
Extract colors, fonts, and logo from a website.
| Name | Required | Description | Default |
|---|---|---|---|
| website | Yes | Website URL to analyze |
Output Schema
| Name | Required | Description |
|---|---|---|
| font | No | |
| website | Yes | |
| logo_url | No | |
| company_name | No | |
| primary_color | No | |
| secondary_color | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds that it fetches from a website (implied network access) but provides no additional behavioral detail like rate limits or response structure. It does not contradict annotations.
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?
A single sentence with no filler. The core action and scope are front-loaded, making it immediately understandable. Nothing unnecessary.
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 an output schema present and annotations covering safety, the description is complete for this simple one-parameter tool. It states what is extracted, and the output schema would detail the return format. No critical information 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 100% – the 'website' parameter is described as 'Website URL to analyze'. The tool description adds no extra meaning beyond that, so the schema carries the full parameter explanation. Baseline of 3 applies.
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 (extract), a resource (website), and the exact items extracted (colors, fonts, logo). This clearly differentiates it from sibling tools focused on template creation, PDF download, or deck generation.
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 is implied: you would call this when you need branding assets from a website. However, there is no explicit statement of when to use it versus alternatives, nor any exclusions. The sibling tool names provide context but the description itself lacks direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fill_templateAInspect
Create a document. Preview first, then confirm to generate PDF.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Template variables as key-value pairs | |
| margin | No | Page margin (e.g., '1in', '20mm') | |
| confirm | No | Set true to generate PDF (preview runs first if false) | |
| page_size | No | Paper size | |
| orientation | No | Page orientation | |
| template_id | Yes | Template ID to fill |
Output Schema
| Name | Required | Description |
|---|---|---|
| job_id | Yes | |
| status | Yes | |
| message | No | |
| download_url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
It adds the non-obvious preview-then-confirm behavior, which is useful beyond the annotations. But it is ambiguous about the confirm=true path (schema says preview runs first if false, implying confirm=true may skip preview), and it does not mention side effects, state changes, or what preview returns.
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?
Two short sentences with no filler; the core behavior is stated up front. Every word contributes to the agent's understanding.
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 6 parametershol and a nested data object, the description is quite sparseould do more to clarify the two-step call sequence and the role of confirm, especially given schema's hint that preview only runs when confirm is false. The output schema and parameter schemas cover return values and fields, so the remaining gap is behavioral flow.
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 baseline is 3. The description adds minimal parameter meaning beyond confirming the preview/confirm flow, which the schema already documents on the confirm parameter.
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 and resource: 'Create a document' via template filling, with the distinctive two-step behavior 'Preview first, then confirm to generate PDF.' It is clear enough to separate from preview_template and create_template, though it does not explicitly say 'fill a template with data' or name sibling contrasts.
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 gives an implied workflow: preview first, then confirm to produce the PDF. However, it does not state when to prefer this tool over preview_template or create_template, nor does it explain when confirmation is required or can be skipped.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_deckBInspect
Generate a presentation deck from templates and data.
| Name | Required | Description | Default |
|---|---|---|---|
| slides | Yes | Array of slides, each with template name and data |
Output Schema
| Name | Required | Description |
|---|---|---|
| html | Yes | Complete deck HTML |
| slide_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only, not idempotent, and not destructive. The description adds little behavioral context beyond 'generate from templates and data' — it doesn't disclose side effects, whether it saves the deck, or whether it requires existing templates. No contradiction with annotations, but limited added value.
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 description is a single concise sentence that front-loads the main action and resource. It earns its place without wasted words, though it could add a bit more context about output or side effects.
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 tool has an output schema and a well-documented input schema, so the agent has structural information. However, the description doesn't clarify how this differs from fill_template or save_deck, and doesn't mention whether the deck is returned or persisted. For a generation tool with several siblings, this is adequate but not complete.
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 100%, so the schema already documents the 'slides' parameter and its nested 'template' and 'data' properties. The description adds no additional parameter semantics beyond what the schema provides, so the baseline 3 applies.
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 ('Generate') and resource ('presentation deck') and mentions it works from templates and data. It doesn't explicitly distinguish itself from siblings like fill_template or save_deck, but the core purpose is clear enough for an agent to understand what the tool does.
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 context (generating a deck from templates and data) but provides no explicit guidance on when to use this tool versus alternatives like fill_template, create_template, or save_deck. The sibling list suggests related tools, but the description doesn't route the agent to them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_research_deckCInspect
Research a topic and generate a visual deck with charts and visualizations.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | What to research and visualize | |
| format | No | scrollytelling |
Output Schema
| Name | Required | Description |
|---|---|---|
| job_id | Yes | |
| status | Yes | |
| message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, which align with 'generate' — no contradiction. The description adds the minor detail that the output includes 'charts and visualizations'. However, given the presence of a 'get_status' sibling and the potentially long-running nature of 'research', the description does not disclose that this may be an asynchronous operation or any cost/time implications, leaving the agent to infer behavior.
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?
A single efficient sentence with no filler; the core purpose is front-loaded. It is appropriately sized for a simple two-parameter tool, though the brevity comes at the cost of omitting useful usage context.
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?
Despite an output schema covering return values, the description is thin for a tool with several siblings, an enum parameter, and a likely async workflow. It omits the format-parameter semantics, fails to distinguish from 'generate_deck', and gives no indication of the research/status workflow. An agent would struggle to call it correctly without opening other tools or schemas.
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 50% — 'topic' is documented but 'format' is only given an enum with no explanatory text. The description adds nothing about either parameter: it does not explain what the three format values mean, nor how 'topic' should be phrased. For a tool where format choice materially changes the output (scrollytelling vs slides), this is a meaningful gap the description fails to fill.
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: 'Research a topic and generate a visual deck with charts and visualizations.' It clearly conveys what the tool produces. However, it does not differentiate itself from the sibling tool 'generate_deck', which could easily overlap in purpose — an agent would need to open both schemas to tell them apart.
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?
No guidance is given on when to use this tool versus alternatives. With siblings like 'generate_deck' and 'save_deck', the description offers no selection criteria, no exclusions, and no scenario hints (e.g., 'use this when you need researched visualizations'). The only implicit signal is the word 'research', which is not enough to route an agent reliably.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statusBRead-onlyIdempotentInspect
Check if your document is ready.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job ID from fill_template |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| job_id | Yes | |
| status | Yes | |
| message | No | |
| download_url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering the safety profile. The description adds only the notion of 'ready' but does not disclose behaviors like polling, timeouts, or what happens when the document is not yet ready. Given the annotations, a 3 is appropriate as it adds some context but not rich behavioral 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?
The description is a single short sentence with no redundancy, and the key information is front-loaded. It is appropriately sized for a simple status-check tool, though it could have included a bit more context without becoming verbose.
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 an output schema present, return values are covered. However, the description does not explain the polling workflow (e.g., that the job may not be ready and should be rechecked), nor does it mention any rate limits or retry logic. For a tool typically used in a polling loop, this is a notable gap.
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 100% for the single parameter, and the schema already explains that job_id comes from fill_template. The description does not add additional meaning beyond the schema, so the baseline of 3 applies.
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 ('check') and resource ('document readiness'), which is clear enough to distinguish it from sibling tools like fill_template or download_pdf. It doesn't explicitly name the sibling it is not, but the verb+resource is specific and unambiguous.
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 provides no explicit guidance on when to use this tool or how it fits into a workflow. The parameter description 'Job ID from fill_template' hints at the intended use, but the tool description itself does not say 'use after fill_template' or explain polling behavior, so an agent has to infer the usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_deck_templatesARead-onlyIdempotentInspect
List available deck templates with their field schemas.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| templates | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the tool's safe read-only nature is covered. The description adds that results include field schemas, but it does not describe behavior beyond that; there is no contradiction with the annotations.
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?
A single, front-loaded sentence with no filler. Every word contributes meaning: 'List', 'available', 'deck templates', and 'with their field schemas' all carry distinct information.
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 a zero-parameter read-only list operation with a full output schema and strong annotations, the description is complete enough. An agent can invoke this tool correctly knowing it will list available deck templates and their schemas, with safety already established by annotations.
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 tool has zero parameters and 100% schema coverage, so parameter semantics are trivial. The description's mention of field schemas is the only relevant contextual addition, which is sufficient for a no-argument list operation.
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 clearly states the action ('List') and resource ('available deck templates'), and adds a useful qualifier ('with their field schemas') that tells the agent what will be returned. It does not explicitly differentiate from the sibling 'list_templates', which creates some ambiguity about scope.
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 no guidance about when to use this tool rather than sibling tools like 'list_templates' or how the returned field schemas factor into downstream template operations. The usage context is only implied, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_templatesBRead-onlyIdempotentInspect
Browse available document designs.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Filter by tags | |
| query | No | Search term to filter templates | |
| category | No | Filter by category (e.g., invoice, receipt, form) |
Output Schema
| Name | Required | Description |
|---|---|---|
| templates | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds only the light 'available' scope and no additional behavioral detail such as pagination or visibility rules, but it does not contradict the annotations.
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 description is a single sentence with no filler, and the core action is front-loaded. It is appropriately compact for a simple read-only list operation.
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 the output schema and full parameter documentation, the description is nearly sufficient for a straightforward list tool. However, the presence of list_deck_templates creates an ambiguity the description does not resolve, leaving tool selection slightly under-specified.
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 describes all three parameters (tags, query, category) with 100% coverage, so the baseline applies. The description adds no parameter-specific meaning, but the schema already fully compensates for that.
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 ('Browse') and identifies the resource as available document designs, making the basic operation clear. However, it does not distinguish this tool from the sibling list_deck_templates, so it falls short of full 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?
No guidance is provided about when to use list_templates versus list_deck_templates or other siblings. The filtering parameters imply browsing use cases, but the description gives no context, exclusions, or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_templateDRead-onlyIdempotentInspect
See how your document will look.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Template variables as key-value pairs | |
| accept | No | text/html | |
| template_id | Yes | Template ID to preview |
Output Schema
| Name | Required | Description |
|---|---|---|
| html | Yes | Rendered HTML preview |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. However, the description adds no behavioral context, such as how the data is rendered, what output formats are supported, or whether it is a stateless preview. It neither contradicts annotations nor enriches them.
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?
While the description is a single concise sentence, it is under-specified rather than appropriately concise. It lacks necessary details and does not front-load actionable information. Every word could earn its place, but here the sentence provides minimal value.
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 the tool has 3 parameters, an output schema, and siblings, the description is incomplete. It does not explain how to provide data, how the accept parameter affects output, or what the preview returns. The annotations and output schema provide some context, but the description fails to tie them together.
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 67% (data and template_id have descriptions, accept does not). The description adds no parameter-specific meaning and does not compensate for the missing accept enum description. It offers no clarification of data structure or expected values beyond the schema.
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 'See how your document will look' is vague and does not state the specific action (preview a template with data) or distinguish it from sibling tools like fill_template or download_pdf. It reads as a benefit rather than a clear purpose, leaving an agent uncertain about the exact operation.
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?
No guidance is given on when to use this tool versus alternatives. There is no mention of prerequisites, context, or when to choose preview over fill_template or download_pdf. The agent is left to infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_deckBInspect
Save a presentation deck and get a shareable URL.
| Name | Required | Description | Default |
|---|---|---|---|
| html | Yes | HTML content to host | |
| title | Yes | Title for the document |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| title | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the output behavior (returning a shareable URL) beyond what annotations provide. Annotations already indicate the operation is non-read-only, non-destructive, and non-idempotent, so the description's addition is useful but not extensive.
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 description is a single, front-loaded sentence with no wasted words. It communicates the core action and result efficiently.
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 full schema coverage, annotations, and an output schema, the description is sufficient for an agent to understand the tool's purpose and invoke it correctly. The only notable omission is usage guidance, which is already scored separately.
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 100%, so the schema already fully documents both 'html' and 'title' parameters. The description adds no parameter-level detail, so the baseline of 3 applies.
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 clearly states the action ('Save'), the resource ('presentation deck'), and the outcome ('shareable URL'), which distinguishes it from read-only siblings like get_status. It could more explicitly mention the hosting aspect, but the title annotation 'Host HTML' reinforces the intent.
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?
No guidance is provided on when to use save_deck versus alternatives like generate_deck or create_template. The description does not mention any conditions, exclusions, or sibling tools that should be preferred in specific scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_docx_templateBInspect
Upload a .docx file as a template. Pass base64-encoded DOCX content.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human-readable template name | |
| description | No | Optional description | |
| docx_base64 | Yes | Base64-encoded .docx file content |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| schema | No | |
| message | No | |
| template_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations only provide negative hints (readOnlyHint=false, destructiveHint=false, idempotentHint=false) and the description adds no behavioral context about overwrites, file size limits, permissions, or side effects. The base64 instruction is parameter-focused rather than behavioral.
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 description is two short sentences with the primary action front-loaded and no filler. 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?
The schema, annotations, and output schema cover parameters, safety signals, and return values, so the description is not grossly incomplete for a simple upload action. However, it omits routing context versus siblings and any operational constraints or side effects, making it adequate but not fully complete.
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 100%, so the schema already documents all three parameters adequately. The description's mention of 'base64-encoded DOCX content' largely duplicates the existing property description and adds no new format constraints or examples.
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 concrete verb and resource ('Upload a .docx file as a template') and specifies the accepted file format. It does not distinguish itself from sibling tools such as create_template, so it falls short of a 5.
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 by stating what the tool does, but it gives no explicit when-to-use or when-not-to-use guidance. There is no mention of when to prefer this tool over create_template or other template-related siblings.
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.
1 tool update
- Added
upload_docx_template
11 tool updates
- Changed
create_template4 fields changed- added
Input schema / properties / description / descriptionAdded value: +"Brief description of template purpose" - added
Input schema / properties / html_content / descriptionAdded value: +"HTML layout with {{variables}}" - added
Input schema / properties / name / descriptionAdded value: +"Template name" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "message": { + "type": "string" + }, + "name": { + "type": "string" + }, + "template_id": { + "type": "string" + } + }, + "required": [ + "template_id", + "name" + ], + "type": "object" +}
- Changed
download_pdf2 fields changed- added
Input schema / properties / job_id / descriptionAdded value: +"Completed job ID" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "download_url": { + "format": "uri", + "type": "string" + }, + "filename": { + "type": "string" + }, + "size_bytes": { + "type": "integer" + } + }, + "required": [ + "download_url" + ], + "type": "object" +}
- Changed
extract_branding2 fields changed- added
Input schema / properties / website / descriptionAdded value: +"Website URL to analyze" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "company_name": { + "type": [ + "string", + "null" + ] + }, + "font": { + "type": [ + "string", + "null" + ] + }, + "logo_url": { + "type": [ + "string", + "null" + ] + }, + "primary_color": { + "type": [ + "string", + "null" + ] + }, + "secondary_color": { + "type": [ + "string", + "null" + ] + }, + "website": { + "type": "string" + } + }, + "required": [ + "website" + ], + "type": "object" +}
- Changed
fill_template8 fields changed- added
Input schema / properties / confirm / descriptionAdded value: +"Set true to generate PDF (preview runs first if false)" - added
Input schema / properties / data / descriptionAdded value: +"Template variables as key-value pairs" - added
Input schema / properties / margin / descriptionAdded value: +"Page margin (e.g., '1in', '20mm')" - added
Input schema / properties / orientation / descriptionAdded value: +"Page orientation" - added
Input schema / properties / page_size / descriptionAdded value: +"Paper size" - added
Input schema / properties / page_size / enumAdded value: +[ + "A4", + "Letter", + "Legal" +] - added
Input schema / properties / template_id / descriptionAdded value: +"Template ID to fill" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "download_url": { + "type": [ + "string", + "null" + ] + }, + "job_id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "status": { + "enum": [ + "pending", + "processing", + "completed", + "failed" + ], + "type": "string" + } + }, + "required": [ + "job_id", + "status" + ], + "type": "object" +}
- Changed
generate_deck1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "html": { + "description": "Complete deck HTML", + "type": "string" + }, + "slide_count": { + "type": "integer" + } + }, + "required": [ + "html", + "slide_count" + ], + "type": "object" +}
- Changed
get_research_deck1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "job_id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "required": [ + "job_id", + "status" + ], + "type": "object" +}
- Changed
get_status2 fields changed- added
Input schema / properties / job_id / descriptionAdded value: +"Job ID from fill_template" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "download_url": { + "type": [ + "string", + "null" + ] + }, + "error": { + "type": [ + "string", + "null" + ] + }, + "job_id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "status": { + "enum": [ + "pending", + "processing", + "completed", + "failed" + ], + "type": "string" + } + }, + "required": [ + "job_id", + "status" + ], + "type": "object" +}
- Changed
list_deck_templates1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "templates": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "fields": { + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "templates" + ], + "type": "object" +}
- Changed
list_templates4 fields changed- added
Input schema / properties / category / descriptionAdded value: +"Filter by category (e.g., invoice, receipt, form)" - added
Input schema / properties / query / descriptionAdded value: +"Search term to filter templates" - added
Input schema / properties / tags / descriptionAdded value: +"Filter by tags" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "templates": { + "items": { + "properties": { + "category": { + "type": [ + "string", + "null" + ] + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "templates" + ], + "type": "object" +}
- Changed
preview_template3 fields changed- added
Input schema / properties / data / descriptionAdded value: +"Template variables as key-value pairs" - added
Input schema / properties / template_id / descriptionAdded value: +"Template ID to preview" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "html": { + "description": "Rendered HTML preview", + "type": "string" + } + }, + "required": [ + "html" + ], + "type": "object" +}
- Changed
save_deck1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "title": { + "type": "string" + }, + "url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "url" + ], + "type": "object" +}
1 tool update
- Changed
create_template1 field changed- removed
Input schema / properties / html_content / descriptionRemoved value: -"Jinja2 HTML with {{ variable }} for fields and {% for item in list %} for loops"
1 tool update
- Changed
create_template1 field changed- added
Input schema / properties / html_content / descriptionAdded value: +"Jinja2 HTML with {{ variable }} for fields and {% for item in list %} for loops"
2 tool updates
- Added
generate_deck - Added
list_deck_templates
2 tool updates
- Removed
host_html - Added
save_deck
2 tool updates
- Added
get_research_deck - Added
host_html
7 tool updates
- First observed
create_template - First observed
download_pdf - First observed
extract_branding - First observed
fill_template - First observed
get_status - First observed
list_templates - First observed
preview_template
Related MCP Connectors
Generate PDF reports from Re:port Flow templates via Claude and other AI agents.
Use your own Word templates to convert Markdown → DOCX/PDF/HTML from any MCP-compatible AI.
Turn a description into a shareable, editable PDF — invoices, certificates, reports, resumes.
Render HTML, URLs, and templates to PDF. AI drafts templates and fixes them from logs.
Related MCP Servers
- AlicenseAqualityCmaintenanceGenerate professional PDFs from Claude, Cursor, and other AI tools. Create invoices, contracts, reports, and certificates from templates or inline HTML markup.730 npm1MIT
- FlicenseNot gradedqualityDmaintenanceEnables generating PDFs from DOCX/ODT templates using MCP with support for OpenAI or local Ollama models.-
- AlicenseAqualityBmaintenanceTurn markdown into designed PDFs with cover page, table of contents, and code blocks that hold across pages. One command from Claude Desktop, Claude Code, Cursor, Cline, Zed, or any MCP-capable client.232 npm1MIT
- AlicenseAqualityDmaintenanceGenerate production-ready PDFs from Markdown, HTML, or built-in templates (invoices, resumes, reports) directly from Claude or any MCP-compatible AI agent via the DocRenders API.614 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.