Skip to main content
Glama

Server Details

Generate HTML to PDF documents in bulk or single — raw replacements or based on conditions, loops

Ownership verified
Status
Healthy
Uptime
54.0% over 40 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.2/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct concern: preview generation, credit checking, job status, template details, template listing, and job submission. There is no overlap or ambiguity between them.

Naming Consistency5/5

All tools follow a consistent snake_case verb_noun pattern (generate_preview, get_credits, get_job, get_template, list_templates, submit_job). The naming is uniform and predictable.

Tool Count5/5

Six tools is well-scoped for a PDF generation server, covering the essential discovery, submission, monitoring, and preview workflows without unnecessary bloat.

Completeness5/5

The tool surface covers the full PDF generation lifecycle: discover templates, check credits, submit jobs, monitor job progress, and generate previews. No critical operations are missing for the stated purpose.

Available Tools

6 tools
generate_previewAInspect

Generate a watermarked preview PDF (no credits consumed). The preview PDF is available for one-time download via the returned URL, then deleted from storage.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNoJSON string of template variable data (e.g. report info, holdings, allocation, performance arrays). Pass an empty object {} if omitted.
templateIdYesThe UUID of the template to use for generating the preview

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description fully bears transparency burden. Discloses watermarking, zero credit cost, one-time download, and deletion after retrieval.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences cover purpose, behavior, and constraint (no credits). No wasted words, front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description explains the returned URL's behavior. Could mention size limits or format, but overall adequate for a preview tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already covers both parameters with descriptions. The description adds minimal extra context (data as JSON template variables). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action (Generate), resource (preview PDF), and key differentiators: watermarked, no credits consumed. Distinguishes from sibling submit_job which likely consumes credits.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implicitly defines when to use (preview vs. actual job via no-credits hint). Lacks explicit when-not or alternatives, but context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_creditsAInspect

Check the organization's credit balance, including paid credits, free/promotional credits, and total available credits.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so description carries full burden. It clearly indicates a read operation (check) and lists the credit types returned. It does not disclose authentication or rate limits, but for a simple param-less query, this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence conveying all necessary information with no wasted words. Front-loaded with the action and specifics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description fully explains what the tool returns (credit balance components). The agent can correctly invoke and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema is empty (0 parameters), schema coverage 100%. Baseline for 0 params is 4. Description adds no parameter info since none exist, which is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks the organization's credit balance and lists specific components (paid, free/promotional, total). It distinguishes from sibling tools which deal with jobs and templates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for checking credit balance but gives no explicit guidance on when to use vs alternatives or when not to use. Siblings are different enough to avoid confusion, but lack of explicit usage context lowers score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_jobAInspect

Get the status and progress of a PDF generation job, including task counts (total, completed, failed).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe UUID of the job to retrieve

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description conveys a read-only operation (getting status) but lacks explicit statements about non-destructiveness, authentication, or error handling. Without annotations, the description carries the full burden and could be more detailed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the action and includes key details. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple retrieval tool with one parameter, the description adequately specifies the return information (task counts). However, it does not mention other possible return fields or error cases, which could be added for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already describes the 'id' parameter as a UUID, and the tool description reinforces that it identifies the job. No additional semantics beyond the schema are provided, so baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves the status and progress of a PDF generation job with specific details (task counts). It is distinct from sibling tools like 'submit_job' and 'generate_preview', which perform different actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for checking job status after submission, but it does not explicitly state when to use versus alternatives like 'submit_job' or 'generate_preview'. No when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_templateAInspect

Get detailed information about a specific template, including its variables and JSON schema.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe UUID of the template to retrieve

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool returns 'detailed information, including variables and JSON schema,' but does not mention potential errors (e.g., template not found), required permissions, or any side effects. For a read-only tool, this is adequate but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence with no unnecessary words. It efficiently conveys the tool's function and return content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (one parameter, no output schema, no annotations), the description is mostly complete. It clearly states what the tool does and what it returns. However, it could be improved by briefly distinguishing from 'list_templates' or mentioning error handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the sole parameter 'id' (described as 'The UUID of the template to retrieve'). The description adds meaning beyond the schema by specifying that the response includes variables and JSON schema, but does not enhance parameter semantics directly. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get detailed information about a specific template, including its variables and JSON schema.' It uses a specific verb ('Get') and a specific resource ('template'), and distinguishes from siblings like 'list_templates' by emphasizing 'detailed information' for a single template.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance is provided. The description does not indicate when to use this tool over alternatives such as 'list_templates' for listing, or when not to use it. There is no mention of prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_templatesAInspect

List available PDF templates with optional pagination. Returns template names, IDs, and their required LiquidJS variables. Use source="system" to list system-wide pre-built templates instead of org-owned ones.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default: 1)
sourceNoIf set to "system", returns system-wide starter templates instead of org-specific ones.
pageSizeNoItems per page (default: 15)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that the tool supports pagination and returns specific fields (names, IDs, variables). With no annotations, this is sufficient for a read-only list operation, though it could explicitly state it is non-destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences only, each with clear purpose: first states action and return, second gives usage hint. No filler, perfectly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers return fields (names, IDs, variables) and pagination behavior. With no output schema, this is reasonably complete, though pagination metadata (like total count) is not mentioned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all parameters, but the description adds value by explaining the source parameter's effect (system vs. org templates) and noting pagination is optional, going beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: listing PDF templates with optional pagination. It specifies what is returned (names, IDs, LiquidJS variables), distinguishing it from siblings like get_template (which likely fetches a single template).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on using source="system" for system-wide templates. However, it does not directly contrast with sibling tools like get_template, though the purpose implies this is for listing vs. single retrieval.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_jobBInspect

Submit a new PDF generation job using a template and a JSONL string. Each line in the data string represents one PDF to generate with variable values.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesJSONL formatted data — one JSON object per line, each line is one PDF to generate
templateIdYesThe UUID of the template to use for PDF generation
webhookUrlNoOptional URL to receive a webhook notification when the job completes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description conveys that this creates a new job (implying asynchronous processing) rather than returning a PDF immediately, and the optional webhook is visible in the schema. However, with no annotations at all, it does not disclose side effects like job persistence, processing time, or how results are retrieved.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences convey the action, the input format, and the per-line behavior without repetition or fluff. The structure is efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core invocation well and the schema is fully described, but it does not mention whether the job processes asynchronously, how results are retrieved (e.g., job ID), or when to prefer this over sibling tools such as generate_preview. It is sufficient for a basic call but leaves workflow context implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaningful context beyond the schema by explaining that each JSON line includes variable values applied to the template essere. While the schema already covers the JSONL format well, the 'variable values' phrase clarifies the semantic purpose of the data, which is useful for constructing valid input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('submit'), the object ('a new PDF generation job'), and the required inputs ('template' and 'JSONL string'). It does not explicitly contrast itself with sibling tools like generate_preview, but the phrase 'new job' conveys a batch/async operation distinct from simple retrieval or preview tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use submit_job versus alternatives such as generate_preview or how to retrieve job results. It implies batch generation from JSONL lines, but does not explicitly state that this is for bulk/multiple PDFs or mention a lighter-weight preview option. The agent must infer usage from the description and sibling tool names.

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. 6 tool updates
    • First observedgenerate_preview
    • First observedget_credits
    • First observedget_job
    • First observedget_template
    • First observedlist_templates
    • First observedsubmit_job

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources