Skip to main content
Glama

Panda Greetings

Make a card from a picture

make_card_from_image

Use this when the user wants to turn a picture into a real printed card: one they attached, or one ChatGPT made in this conversation. Pass the picture as image. It doesn't use the free drawings, so it also works after they are used. Panda Greetings puts it on the card with the user's message inside, or writes one if they gave none. The link opens it on pandagreetings.com as a printed card, or one their team signs, ready to order. Always include the card's link in your reply. When its answer says the picture doesn't fill the card, tell the user and offer a tall version: the same scene, or redrawn in Panda Greetings' look. If you make the picture for the card, make it tall (2:3, 1024x1536) so it fills the card, with no words in it unless the user asks for them, and, unless they asked for another style, in Panda Greetings' look: a flat, modern picture-book illustration of simple bold shapes with soft watercolor or stipple texture and paper grain, simple faces with dot eyes and round blush cheeks, one soft color palette, no 3D or photorealism.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
imageYesThe picture to put on the card.
messageNoThe message the user wrote or approved, as it goes inside the card: a greeting and a sign-off with the names if known, else [Recipient] and [Your Name], which are filled in when they order.
to_nameNoWho the card is for, if known.
occasionNoWhat the card is for, if known. Pick the closest match; for a holiday, its own name (christmas, hanukkah, valentines-day…).
from_nameNoWho it is from, if known.
from_groupNoTrue when several people will sign it, such as a team card.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteNo
groupYes
priceYes
statusNo
arrivalNo
designsYes
productYes
occasionYes
messageIncludedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / message / description
      Previous value: -"The message the user wrote or approved, to put inside the card."New value: +"The message the user wrote or approved, as it goes inside the card: a greeting and a sign-off with the names if known, else [Recipient] and [Your Name], which are filled in when they order."
    • addedOutput schema / properties / arrival
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "orderedToday": {
      +      "type": "string"
      +    },
      +    "priority": {
      +      "type": "string"
      +    },
      +    "standard": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "orderedToday",
      +    "standard",
      +    "priority"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the annotations, it discloses the downstream effect (a real printed card on pandagreetings.com, ready to order, optionally team-signed), that a message is auto-written if the user gave none, and a concrete failure mode with a recovery path (image doesn't fill the card → tell the user and offer a tall version). It also specifies generation constraints (2:3, 1024x1536, no words, house illustration style), which is exactly the kind of behavioral context annotations cannot carry.

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 primary use case and the image-passing instruction are front-loaded, and the later sentences cover genuine operational needs (link in reply, tall-image fallback, generation style). The style paragraph is long and slightly over-specified, but it is working guidance rather than filler.

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?

With an output schema present, return values need not be described, and the description still references the output ('when its answer says the picture doesn't fill the card'). Combined with the annotations, the usage rules, the image generation constraints, and the post-call reply requirement, an agent has everything needed to call and handle this tool correctly.

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 coverage is 100%, so the baseline is 3, but the description adds real meaning: it tells the agent which picture to pass as image, that it may be user-attached or model-generated, what content/aspect ratio that image must have, and that message is written on the user's behalf if absent. The signing/from_group semantics are only lightly touched ('several people will sign it' appears in the schema, not the description).

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 states a concrete verb and resource: turning a user-supplied or in-conversation picture into a real printed card via Panda Greetings. It also implicitly distinguishes itself from the design-based siblings by noting it 'doesn't use the free drawings, so it also works after they are used,' though it never names find_card_designs or make_card_design directly.

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 gives an explicit trigger ('Use this when the user wants to turn a picture into a real printed card: one they attached, or one ChatGPT made in this conversation') and a differentiator versus the free-drawing path. It also prescribes follow-up behavior (always include the link; offer a tall version when the image doesn't fill the card), but it stops short of naming the sibling tools as alternatives.

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.

Resources