Skip to main content
Glama
Ownership verified

Server Details

Generate PDFs from HTML templates via AI agents or API. List templates, submit jobs with JSON data, check credits, and generate watermarked previews — all through MCP tools. Templates support LiquidJS templating with conditionals, loops, and raw variable injection.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 3.9/5 across 6 of 6 tools scored. Lowest: 2.8/5.

Server CoherenceA
Disambiguation5/5

Each tool serves a distinct purpose: preview generation, credit checking, job status, template details, listing templates, and job submission. There is no functional overlap.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case (e.g., generate_preview, list_templates), making the set predictable and easy to navigate.

Tool Count5/5

With 6 tools, the set is well-scoped for a PDF generation service, covering template management, job lifecycle, credits, and preview without unnecessary clutter.

Completeness4/5

The tool surface covers template browsing, submission, status tracking, and previewing. A minor gap is the lack of an explicit tool to retrieve the final generated PDF after job completion, though get_job might return a URL (not specified).

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
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

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
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
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)
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_jobCInspect

Submit a new PDF generation job using a template and JSONL data. Each line in the data array 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
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It does not mention that jobs are likely asynchronous, return a job ID, or have any side effects, rate limits, or authorization requirements.

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 concise with two sentences, no fluff, and gets directly to the point. It earns its place.

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

Completeness2/5

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

Given the lack of output schema and annotations, the description is insufficient. It omits critical context like what the tool returns (job ID?), how to track progress, and any prerequisites or restrictions.

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

Parameters2/5

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

Schema coverage is 100%, so baseline is 3, but the description introduces an inaccuracy by calling data an 'array' when it is a JSONL string. It adds minimal value beyond the schema, and the error reduces clarity.

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) and resource (PDF generation job) and mentions using a template and JSONL data, which differentiates from sibling tools like generate_preview. However, it incorrectly refers to 'data array' when the schema defines data as a string, causing slight confusion.

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 provides no guidance on when to use this tool versus alternatives like generate_preview (for single previews) or get_job (for status updates). No explicit context or exclusions are given.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources