Skip to main content
Glama

Server Details

Print-on-demand for agents: upload a PDF, get a printed book delivered in India.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Available Tools

7 tools
apply_enterpriseAInspect

Apply for an enterprise (invoiced) account — for platforms printing at volume behind their own checkout. Enterprise orders auto-confirm with no payment link, are priced at a platform discount off retail (default 25% below), and are settled monthly. Requires a valid India GSTIN for tax invoicing. This does NOT issue a key immediately: the application is reviewed and, once approved, an API key is emailed to contact_email. Use this only when a human has asked to set up a business/enterprise print account.

ParametersJSON Schema
NameRequiredDescriptionDefault
gstinYes15-character India GSTIN, e.g. 29ABCDE1234F1Z5. Required for GST invoicing.
notesNoAnything else for the reviewer (optional).
company_nameYesRegistered business name.
contact_emailYesWhere the approved API key and invoices are sent.
expected_monthly_volumeNoApproximate books printed per month (optional).

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals that no key is issued immediately, the application is reviewed, and the key is emailed to contact_email. It also discloses the invoicing model (GSTIN required, default 25% discount, monthly settlement). While it doesn't cover failure modes or review timelines, it provides substantial 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.

Conciseness4/5

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

The description is a moderately sized paragraph that front-loads the core purpose and then explains key behaviors and usage restrictions. Every sentence contributes useful context, though it could be slightly more streamlined without losing meaning.

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?

The description covers the application flow, requirements, pricing model, and usage guidance. It lacks information about review timelines, rejection reasons, or post-approval steps beyond emailing the key, but given the complexity of an enterprise application and the absence of an output schema, it is reasonably complete.

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%, so the baseline is 3. The description adds some context around why GSTIN is required and how contact_email is used, but these are largely restatements of the schema descriptions. It doesn't enrich parameter semantics beyond what the schema already provides.

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+resource ('Apply for an enterprise (invoiced) account') and immediately distinguishes this from order creation by describing the target user: 'platforms printing at volume behind their own checkout.' It also contrasts with sibling tools like create_order by clarifying this is for account setup, not order placement.

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

Usage Guidelines5/5

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

Explicitly provides a usage gate: 'Use this only when a human has asked to set up a business/enterprise print account.' It also describes when this tool is appropriate (volume printing, own checkout) and what it does differently from standard order tools (auto-confirm, no payment link, monthly settlement), guiding selection among siblings.

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

cancel_orderAInspect

Cancel an order, stopping it before it is printed. With the order_token from create_order this works while the order is awaiting_payment. A platform that sends its own API key (Authorization: Bearer mp_live_...) can additionally cancel an order THAT KEY created while it is confirmed or printing — that is how you stop a press when your customer cancels on your side. shipped and delivered can never be canceled; that is a refund, contact support (see get_catalog). Canceling stops production but moves no money, and it releases the order's client_reference — replaying that reference afterwards creates a new order and prints it. If the order moved on before the cancel landed you get not_cancellable naming its new status, never a false "canceled".

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYes
order_tokenNoThe token returned once by create_order. Optional if you send the API key that created the order instead.

TDQS

A4.8/5.0
Behavior5/5

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

No annotations are provided, so the description carries full responsibility. It discloses key behaviors: cancellation does not move money, releases the client_reference (allowing reprint), and handles race conditions by returning not_cancellable rather than falsely claiming success.

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

Conciseness4/5

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

The description is a single dense paragraph, front-loaded with the core purpose. Every sentence adds distinct value, but the length is substantial; a structured list could improve scannability.

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 the complexity of cancellation semantics, the description covers all relevant scenarios, effects, and errors. It also references the appropriate sibling tool for refunds, making it self-contained despite the lack of an output schema.

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 schema provides descriptions for order_token but not order_id. The description enhances understanding of order_token's role and alternates, and explains error conditions. order_id is implied as the order to cancel, but its origin is not explicitly stated beyond context.

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 'Cancel an order, stopping it before it is printed', a specific verb and resource that clearly distinguishes this from siblings like create_order and get_order. It continues with concrete state-based behavior, further differentiating from related tools.

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance: cancel works while awaiting_payment with order_token, and platform-created orders can be canceled even in confirmed/printing states. It also states when not to use it (shipped/delivered cannot be canceled) and directs to refund alternatives via get_catalog.

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

create_orderAInspect

Create a print order for a validated upload. Validates everything BEFORE any payment link is minted. Returns { order, order_token } — the order object has order_id, status, amount, and payment_url (the Razorpay link, present while awaiting_payment). Give payment_url to the human to pay (UPI/cards/netbanking). SAVE order_token — it is shown only once and is required for get_order and cancel_order. The order confirms automatically after payment; unpaid orders expire after 72 hours.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesBuyer email; receives the Razorpay payment notification.
copiesNo
formatYespaperback/hardcover: bound storybook (20-60 page PDF). sticker-a3: single-sheet A3 portrait sticker / wall chart (exactly 1 page, 842×1191 pt). greeting-card-a5: folded A5 greeting card, one A4-landscape sheet printed duplex (exactly 2 pages, 859×612 pt incl. 3 mm bleed).
addressYesIndia shipping address (V1 ships within India only).
upload_idYesupload_id of a PDF that passed validation.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses important behaviors: validation occurs before payment link creation, order_token is shown once, orders auto-confirm after payment, and unpaid orders expire in 72 hours. It lacks failure mode details but is substantially transparent.

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 and well-structured, with two sentences that pack essential details: purpose, validation flow, return shape, token handling, and expiry. Every sentence earns its place with no redundancy.

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?

The tool has a nested address object, no output schema, and five params, so the description needs to explain return values and usage flow. It does so thoroughly, covering the order object fields, payment_url usage, token persistence requirement, auto-confirmation, and 72-hour expiry. Minor omission: nothing about error cases or cancellation behavior beyond token requirement.

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 80%, so the schema handles most parameter documentation. The tool description adds a bit by emphasizing the upload must be validated and referencing the payment_url output, but it does not compensate for the undocumented 'copies' param or add deeper field semantics beyond the schema.

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 verb ('Create'), resource ('print order'), and specific precondition ('validated upload'), distinguishing it from sibling tools like create_upload and validate_pdf. It also outlines the scope by mentioning the validation step before payment link generation.

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?

It implies use after validation by saying 'for a validated upload' and explains next steps (giving payment_url, saving order_token). It references sibling tools get_order and cancel_order for token usage, but does not explicitly state exclusions or when to use this tool over alternatives.

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

create_uploadAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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.

get_catalogAInspect

List what can be printed: SKUs (storybook books, sticker-a3 wall charts, greeting-card-a5 folded cards), formats, supported trim sizes, page-count limits, prices (INR, shipping included), and shipping coverage (India only). Call this first to quote a price or check whether a PDF will be accepted.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It states the output contents (SKUs, formats, sizes, page-count limits, prices with INR and shipping included, shipping coverage India only) and its purpose (first step for pricing/PDF acceptance). This adds meaningful context about what the tool returns and its role, though it doesn't explicitly state it's read-only or 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?

The description is a single, well-front-loaded sentence. It opens with the core action 'List what can be printed' and then efficiently enumerates all relevant catalog attributes without unnecessary fluff. Every clause adds value.

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 output schema, the description adequately explains what the tool returns by listing the types of data (SKUs, formats, sizes, page counts, prices, shipping coverage). It also puts the tool in context with 'Call this first', making it complete for a low-complexity catalog listing tool.

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 description doesn't need to explain parameter usage. The description still adds value by outlining the catalog contents, which inherently communicates what information the tool provides. Baseline for 0 params is 4.

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 function: 'List what can be printed' followed by a detailed enumeration of catalog contents (SKUs, formats, sizes, prices, shipping). It distinguishes itself from sibling tools like create_order, validate_pdf, and get_order by focusing on catalog data rather than order/validation operations.

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 explicitly instructs when to use the tool: 'Call this first to quote a price or check whether a PDF will be accepted.' This provides clear context for use, though it doesn't explicitly mention alternatives or when not to use it. Given the simple nature of the tool, this is strong guidance.

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

get_orderAInspect

Check an order: status (awaiting_payment → confirmed → printing → shipped → delivered), tracking number once shipped, and — while unpaid — the payment_url again (so you can always re-answer "how do I pay"). Requires the order_token from create_order, or the API key that created the order (Authorization: Bearer mp_live_...).

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYes
order_tokenNoThe token returned once by create_order. Optional if you send the API key that created the order instead.

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden. It discloses authentication requirements and the status lifecycle, which is helpful. It does not explicitly state read-only behavior or error handling, but for a simple read tool this is acceptable.

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 two sentences long, front-loaded with the core purpose, and every sentence contributes essential details. No filler or redundancy.

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?

The description covers the main return values and authentication context. Given no output schema or annotations, it does not describe the exact return format or error scenarios, but it provides enough for typical usage.

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?

The schema already describes order_token sufficiently, and the description does not add new meaning for order_id. Since schema coverage is 50%, the description partially compensates by explaining the alternative authentication method, but it does not clarify the order_id parameter further.

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 uses the specific verb 'Check' with the resource 'an order' and enumerates the returned data: status, tracking number, and payment_url. This clearly distinguishes it from sibling tools like cancel_order or create_order, which have 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 Guidelines4/5

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

The description provides context for when to use this tool (e.g., to re-answer 'how do I pay') and prerequisite guidance (requires order_token or the API key). However, it does not explicitly mention when not to use it or name alternative tools for similar purposes.

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

validate_pdfAInspect

Get the print-validation report for an uploaded PDF before paying: page count, trim size, hard errors (blocking) and soft warnings (non-blocking). Every error includes a resolution explaining how to fix it. Free to call; use it to check printability before create_order.

ParametersJSON Schema
NameRequiredDescriptionDefault
upload_idYesThe upload_id returned by create_upload.

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 fully discloses key behavioral traits: it is a read-only report, free, and distinguishes blocking errors (hard) from non-blocking (soft). Also reveals that errors include a resolution field, which is not obvious.

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, front-loaded with purpose, and every clause adds value (contents, blocking nature, cost, usage timing). No redundancy or fluff.

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?

For a single-parameter tool with no output schema, the description is complete: it states what the report contains, the meaning of errors, and when to call it. No critical gaps remain.

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 coverage is 100% for the single parameter upload_id, already describing it as returned by create_upload. The description adds no parameter-specific semantics beyond mentioning 'uploaded PDF', so 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?

States a specific verb ('Get') and resource ('print-validation report for an uploaded PDF'), and enumerates report contents (page count, trim size, hard errors, soft warnings). Clearly distinct from siblings like create_order or get_order by positioning it as a pre-payment check.

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

Usage Guidelines5/5

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

Explicitly says to use it 'before paying' and 'to check printability before create_order', giving clear temporal and contextual guidance. Also notes it is 'Free to call', informing cost/usage decisions.

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

Frequently Asked Questions

Discussions

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

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables programmatic document proofing for print, with real ink coverage measurement and waste page detection, letting agents decide what to print before any sheet is produced.
  • A
    license
    B
    quality
    D
    maintenance
    Provides integration with Lulu Print API for print-on-demand services through Claude Desktop and other MCP clients, enabling users to create and manage print jobs, validate files, calculate costs, and handle shipping for books and printed materials.
    2
    32
    3
    MIT
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