GiftsToPrint
Server Details
Order personalised newspaper-style birthday, anniversary and retirement posters as print files.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool has a clearly distinct role: searching posters, gathering order details, uploading photos, and creating the checkout. No overlap or ambiguity between them.
All tools follow a consistent verb_noun snake_case pattern (find_posters, get_poster_form, upload_photo, create_poster_checkout), making the API predictable and easy to navigate.
With only 4 tools, the server is tightly scoped to the core workflow of ordering a personalised poster. Each tool is essential and there are no redundant or excessive additions.
The tools cover the full lifecycle from discovery (find_posters) through data collection (get_poster_form) and media upload (upload_photo) to final purchase (create_poster_checkout). No obvious missing steps for the stated purpose.
Available Tools
4 toolscreate_poster_checkoutCreate the personalised checkoutAInspect
Validate every detail and create a Shopify checkout for one personalised poster with all the details attached. Returns checkout_url. Nothing is charged: open checkout_url for the user to review the order and pay on GiftsToPrint's own checkout. Before calling, read the details back to the user and confirm they understand they will receive a digital file to print (set confirm_digital_file to true). If a field is wrong, the error lists every problem at once so you can fix them in one go.
| Name | Required | Description | Default |
|---|---|---|---|
| buyer | Yes | ||
| handle | Yes | The poster's handle, from find_posters. | |
| photo_url | Yes | The photo_url returned by upload_photo. | |
| turnaround | Yes | standard: ready the next working day, order Mon-Fri. rush_weekday: ready within 12 hours, order Mon-Fri. rush_weekend: ready within 24 hours, order Sat or Sun. | |
| instructions | No | Optional note to the designers, e.g. how to crop the photo. | |
| buyer_country | No | Optional ISO country code, so checkout opens in the buyer's currency. | |
| personalisation | Yes | The fields from get_poster_form, keyed by their id (e.g. recipient_first_name, birth_day, birth_month). | |
| confirm_digital_file | Yes | Must be true: the buyer understands the poster is a digital file to print, not a physical print. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral context beyond the annotations: it creates an external Shopify checkout, charges nothing, returns a checkout_url for the user to review and pay, validates all details, and aggregates errors. This goes well beyond what readOnlyHint, openWorldHint, idempotentHint, and destructiveHint convey.
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 compact and front-loaded with the core purpose, then efficiently covers return value, payment behavior, pre-call confirmation, and error handling. Each sentence adds distinct value with no filler or repetition.
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 tool with no output schema, the description still specifies the critical return value (checkout_url) and the important side effect (nothing is charged). Combined with the detailed input schema, the agent has everything needed to call it correctly, including the required user-confirmation step and error-recovery behavior.
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 high at 88%, so the schema already documents most parameters. The description adds useful meaning by explicitly requiring confirm_digital_file to be true and explaining the no-charge, review-before-pay flow. This is more than the baseline but not needed for every 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 action ('create a Shopify checkout'), a specific resource ('one personalised poster'), and the key return value ('Returns checkout_url'). It also makes clear this is the final ordering step, distinguishing it from the sibling tools that select posters, fetch forms, or upload photos.
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?
It gives clear pre-call instructions: read details back to the user and confirm the digital-file expectation by setting confirm_digital_file to true. It also explains how errors should be handled. However, it does not explicitly name sibling alternatives or state when not to use this tool, though the workflow context makes this mostly obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_postersFind a posterARead-onlyInspect
Search GiftsToPrint's personalised newspaper-style posters. Each poster shows real headlines and events from one year, personalised with a name, photo and message, and is delivered as a print-ready digital file (nothing is posted). Birthday posters and wedding-anniversary posters exist per milestone and edition (e.g. 60th Birthday, Australian edition, 1966); retirement and dating-anniversary posters cover any year, chosen in the form. Pick the edition by where the recipient lives or grew up (US, UK, Canada or Australia). Returns each matching poster's handle, prices and product page. Next step: get_poster_form.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | The year the poster should cover (birth year, or wedding year). | |
| edition | No | Country edition: which country's news the poster shows. | |
| occasion | No | What the poster celebrates. | |
| milestone | No | The birthday or anniversary number, e.g. 60 for a 60th. | |
| buyer_country | No | Optional ISO country code of the buyer (e.g. "US", "AU") to show prices in their currency. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds useful non-obvious behavior: the poster is delivered as a print-ready digital file, nothing is physically posted, and the search returns matching handles, prices, and product pages. This is consistent with the readOnlyHint and openWorldHint=false 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 four dense sentences that front-load the action and the return value. The second sentence is information-heavy, but each clause contributes product context, delivery behavior, or filtering guidance, with no filler.
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 read-only filtered-search tool with no output schema, the description covers what is searched, what is returned, and the recommended next step. It does not state behavior when no filters are supplied or whether pagination exists, but those are minor given the search semantics are otherwise clear and no parameters are required.
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 five parameters. The description does add meaning for edition (choose by recipient's location) and occasion (which occasions are milestone-bound), but it leaves year and buyer_country semantics to the schema and does not explain the no-filter case.
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 opens with a specific action: 'Search GiftsToPrint's personalised newspaper-style posters', and names what is returned (handle, prices, product page). It also distinguishes this tool from the sibling get_poster_form by positioning that tool as the next step rather than the search itself.
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 explains when each poster type applies (birthday and wedding-anniversary posters are milestone- and edition-specific; retirement and dating-anniversary posters cover any year) and gives a selection rule for the edition based on where the recipient lives or grew up. It also explicitly names get_poster_form as the next step, though it does not state when not to use this tool relative to create_poster_checkout or upload_photo.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_poster_formGet the details a poster needsARead-onlyInspect
List exactly what to collect from the user for one poster: names, dates, optional message, and the photo, plus the turnaround options and prices. Ask the user for anything you don't already know. Don't invent names or dates. Next step: upload_photo, then create_poster_checkout.
| Name | Required | Description | Default |
|---|---|---|---|
| handle | Yes | The poster's handle, from find_posters. | |
| buyer_country | No | Optional ISO country code of the buyer, for local prices. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description adds important behavioral guardrails: 'Don't invent names or dates' and 'Ask the user for anything you don't already know.' It also explicitly scopes exactly what the tool collects, giving the agent a clear model of the tool's behavior and constraints.
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 compact: three sentences, each earning its place. The first defines output scope, the second gives user-interaction guidance, and the third provides next-step sequencing. No redundant or vague content.
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 no output schema, the description sufficiently explains what the tool returns (the list of fields to collect), how to act on that output ('Ask the user...'), and the surrounding workflow. The only missing context, the source of the handle, is already covered by the schema description.
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 both handle and buyer_country are already well documented in the input schema. The tool description does not add parameter-specific detail, such as mentioning buyer_country or elaborating on handle, but the high baseline 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 starts with a specific verb and resource: 'List exactly what to collect from the user for one poster: names, dates, optional message, and the photo, plus the turnaround options and prices.' It clearly differentiates the tool from siblings by defining its role as data collection, and the workflow note ('Next step: upload_photo, then create_poster_checkout') further distinguishes it from upload and checkout tools.
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 clear workflow context: 'Ask the user for anything you don't already know' and 'Next step: upload_photo, then create_poster_checkout.' It does not explicitly mention when not to use the tool or compare against find_posters, but the handle parameter is documented as coming from find_posters in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_photoUpload the photo for the posterAInspect
Store the photo that will be printed on the poster. Give either image_url (a public https link to the image) or image_base64. JPEG, PNG or WebP, up to 20MB. Returns photo_url, which you then pass to create_poster_checkout. Photos are kept for 12 months so the poster can be made and revised, then deleted automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| image_url | No | Public https:// address of the image. | |
| image_base64 | No | The image file encoded as base64 (a data: URL prefix is fine). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate readOnlyHint is false, so the tool is a write operation, which the description clearly states. It goes beyond annotations by disclosing retention ('12 months') and automatic deletion, which is valuable context for planning.
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?
Four sentences with no waste. The critical action verb is first, then params, then next step, then retention. Every sentence is clear and necessary.
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 is simple with 2 params and clear output usage. It covers input, output, and retention. However, it doesn't specify failure modes or exact output format, but the output is referenced and sufficient for a simple upload.
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 schema defines the parameters. However, the description adds meaning by specifying the requirement of a public https link for image_url and that image_base64 is the base64-encoded file, which the schema only hints at.
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?
Identifies a specific verb+resource ('Store the photo that will be printed on the poster') and is easily distinguished from siblings like create_poster_checkout. Even though it is named upload_photo, the description goes beyond the name, clarifying that the photo is for a poster.
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?
Explicitly states the input alternatives (image_url or image_base64) and the expected next step ('pass to create_poster_checkout'). This helps an agent decide when to use this tool and how to chain it with siblings. No explicit exclusions are needed given the sibling scope.
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.
4 tool updates
- First observed
create_poster_checkout - First observed
find_posters - First observed
get_poster_form - First observed
upload_photo
Related MCP Connectors
A press your agent can commission: a funny, personalized printed booklet, mailed as a gift.
Publish press releases and advertorials on 3,800+ news sites: catalogue, prices, orders.
Publish press releases and advertorials on 3,800+ news sites: catalogue, prices, orders.
Browse 1,700+ publications and manage Presscart media placement campaigns, orders, and articles.
Related MCP Servers
- AlicenseAqualityCmaintenanceGenerates print-resolution business posters (PNG/JPG) from a plain-language brief, using a design system derived from reference posters to lay out text, palettes, and images automatically.4MIT

Token of Esteemofficial
AlicenseAqualityCmaintenanceWrite and mail personalized funny booklets via an AI agent. Allows agents to commission custom 16-page print gifts for users.121MIT
PDF Export for AI Agentsofficial
AlicenseBqualityDmaintenanceWell-designed PDFs from a single prompt. Describe what you need, get a professional document.233 npm1MIT- AlicenseAqualityBmaintenanceProvides AI assistants with programmatic access to the National Library of Sweden's digitized historical newspapers, enabling full-text search, filtering, timelines, and image retrieval across over 2.2 million pages.51MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.