Skip to main content
Glama

create_upload

Start a PDF upload. Returns {upload_id, put_url, expires_at, max_bytes}. HTTP PUT the raw PDF bytes to put_url (Content-Type: application/pdf, no auth needed — the URL is signed). The PUT response includes the validation report. Then pass upload_id to create_order. Keyless use is bounded per calling origin: 20 create_upload calls per hour, at most 5 unused uploads open at a time, and put_url expires in 2 hours — so PUT the bytes promptly and reuse an upload_id you already hold instead of creating extras. An API key (see apply_enterprise) lifts both limits.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries full burden and exceeds expectations. It discloses the return fields, the need for HTTP PUT with specific Content-Type, that the URL is signed and needs no auth, that the PUT response contains the validation report, and detailed rate limits (20/hour, 5 open, 2-hour expiry). It also advises to reuse upload_id, which is essential behavioral context.

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?

Every sentence adds value: the first states the purpose and return, the second describes the follow-up action, and the third provides critical usage limits and advice. The description is dense but well-structured, with no filler or redundant information. It is front-loaded with the core action.

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?

Despite having no output schema or annotations, the description fully covers the tool's behavior, return value, next steps, and constraints. It even explains the validation report in the PUT response and how API keys affect limits. This is complete for a tool with this complexity.

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 tool has zero parameters, so the baseline is 4. The description adds meaningful semantic context about what the tool produces and how to use the result, which compensates for the absence of parameters. It does not describe any parameter constraints because there are none, making the score 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 opens with a specific verb and resource: 'Start a PDF upload.' It clearly defines the tool's role as the initial step in the upload workflow, distinguishing it from siblings like create_order (which uses the upload_id) and validate_pdf. The purpose is unambiguous.

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?

The description provides clear workflow context: HTTP PUT to put_url, then pass upload_id to create_order. It also gives practical guidance on rate limits and reusing upload IDs. However, it does not explicitly mention when NOT to use this tool or compare it to alternatives (e.g., validate_pdf), so it stops short of a 5.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.6/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: upload, validate, create order, get order, cancel order, list catalog, and enterprise application. There is no overlap between any two tools, making misselection highly unlikely.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_upload, cancel_order, get_catalog). The verbs are descriptive and the resources are clear, creating a predictable and uniform naming convention.

Tool Count5/5

With 7 tools, the server is well-scoped for its purpose. It covers the complete print-order workflow without redundancy or excessive granularity, making the tool set easy to navigate.

Completeness5/5

The tool set covers the entire lifecycle from catalog browsing and upload validation through order creation, status tracking, and cancellation, plus enterprise account provisioning. There are no obvious missing operations that would hinder an agent in completing standard tasks.

Resources