Skip to main content
Glama

Paddock Cards

Server Details

Send personalized greeting cards through your AI assistant. Paddock prints and mails them.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool maps to a distinct lifecycle action: search_cards for browsing, prepare_order for building an unpaid purchase, read_order for retrieval, and cancel_order for cancellation. The boundaries are clear, and the descriptions reinforce when each should be used.

Naming Consistency5/5

All four tools follow a consistent snake_case verb_noun convention: search_cards, prepare_order, read_order, cancel_order. There is no mixing of casing or verb style.

Tool Count5/5

Four tools are well-scoped for a narrow greeting-card purchase workflow, with payment intentionally handled via a returned human review/payment URL. Each tool has a clear, necessary role without bloat.

Completeness4/5

The surface covers browsing, creating an unpaid order, reading it, and cancellation, with payment handled externally. There is no direct update/edit operation for an existing unpaid order, so agents must cancel and prepare again, but this is a minor workaround gap.

Available Tools

4 tools
cancel_orderCancel cardsA
DestructiveIdempotent
Inspect

Cancel an eligible purchase at its current revision. Before payment, only whole-purchase cancellation is supported: omit card_ids. After payment, supply returned card_ids to cancel only eligible items, or omit them for the whole eligible purchase. The service verifies ownership and each fulfillment cutoff, and returns actual refund state. Requires the parent order_id and private order_access_token.

NameRequiredDescriptionDefault
card_idsNoOmit to cancel the whole eligible purchase. For a paid purchase, list the returned card IDs to cancel only those eligible items. The service verifies every ID belongs to this order.
order_idYes
expected_revisionYes
order_access_tokenYesPrivate purchase capability. Keep it secret; never put it in a public URL or log.

Output Schema

NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A4.1/5.0
Behavior4/5

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

With destructiveHint and idempotentHint already declared, the description adds real value: it discloses that the service verifies ownership and per-item fulfillment cutoffs, and that it 'returns actual refund state' rather than a canned acknowledgement. It doesn't restate irreversibility explicitly, but the eligibility/cutoff disclosure is the more useful non-obvious trait.

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?

Four sentences, purpose front-loaded, then the pre/post-payment split, then service guarantees and required inputs. Dense but nearly every clause carries information; only the card_ids repetition of the schema is mildly redundant.

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?

An output schema exists, so return values needn't be explained, and safety annotations cover the destructive/idempotent profile. The remaining gap is the required expected_revision parameter, whose concurrency semantics are not explained anywhere the agent can see them.

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 50%: card_ids and order_access_token are already documented in the schema, and the description largely repeats the card_ids guidance. The two undocumented parameters are only partially addressed — order_id and order_access_token are named as required, but expected_revision is only alluded to as 'at its current revision' with no explanation of optimistic-concurrency failure.

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 and resource ('Cancel an eligible purchase') plus the scoping condition ('at its current revision'), and splits behavior by pre-payment vs post-payment state. An agent immediately understands this mutates an existing order, which no sibling (prepare_order, read_order, search_cards) does.

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?

Gives concrete conditional usage: omit card_ids before payment for whole cancellation, supply card_ids after payment for partial cancellation. It does not explicitly name alternatives or state when not to use it (e.g. ineligible/non-cancellable orders), so it stops short of full routing guidance.

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

prepare_orderPrepare an orderA
Idempotent
Inspect

Prepare one unpaid purchase of 1–500 cards, mixed across any occasions, designs, formats, messages, recipients and dates. One card uses the same cards array. Return per-card previews, the exact sum of current per-card prices, one human review/payment URL and a private order_access_token. No charge or mailing is authorized here. The 500-card/4-MiB bounds are technical request limits. Use a caller-generated UUID request_id; for recoverable first requests, generate and privately store a fresh cryptographically random 43-character base64url order_access_token before calling. Retry that ID only with the same token and unchanged cards. If omitted, the server generates the token; losing that response requires a new ID for another unpaid purchase. Validation issues identify zero-based card indices without copying private content.

NameRequiredDescriptionDefault
cardsYesOne purchase containing 1–500 explicit card compositions in their supplied order. Mix any supported designs, formats, messages, recipients, occasions and dates. Do not group purchases by occasion. One card uses this same array.
request_idYes
order_access_tokenNoOptionally generate and privately store 32 cryptographically random bytes encoded as 43 base64url characters before the first request. Reuse that token with the same request_id and unchanged cards to recover a lost response. If omitted, the server generates and returns the capability. Existing purchase capabilities cannot be replaced.

Output Schema

NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations, the description discloses critical behavior: no charge or mailing is authorized, returns include previews, exact price sum, payment URL, and order_access_token, and losing an omitted-token response requires a new ID. It also explains idempotent retry behavior and privacy-safe validation errors.

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 front-loaded with the core action and stays information-dense with little waste. However, it is a single dense paragraph covering many operational details and could be more structurally scannable.

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 complex purchase-preparation tool with an output schema and existing annotations, the description supplies the essential operational context: unpaid state, returned artifacts, token-loss consequences, retry constraints, and validation behavior. Nothing critical for correct invocation appears missing.

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?

With 67% schema description coverage, the description adds useful meaning for top-level parameters: request_id must be caller-generated UUID, order_access_token should be generated and privately stored for recoverable first requests, and the cards array represents a single purchase of 1–500 explicit compositions. It compensates for gaps in request_id and retry 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 states a specific verb and resource: preparing one unpaid purchase of 1–500 cards. It clearly scopes the action as unpaid and non-mailing, which distinguishes it from sibling tools like read_order, cancel_order, and search_cards.

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 gives clear usage context, including caller-generated request_id semantics and retry rules with the same token and unchanged cards. It does not explicitly name alternatives such as read_order or cancel_order or state when to prefer those tools.

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

read_orderRead an orderA
Read-onlyIdempotent
Inspect

Read a private purchase and its order.cards using the parent order_id and order_access_token. Payment, per-card production and mailing are distinct states.

NameRequiredDescriptionDefault
order_idYes
order_access_tokenYesPrivate purchase capability. Keep it secret; never put it in a public URL or log.

Output Schema

NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered; the description adds value beyond that by flagging the resource as 'private' (capability-gated) and by disclosing that payment, per-card production and mailing are tracked as distinct states. That state-model note is real context an agent would otherwise have to discover from the output.

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, both front-loaded with the operation and its required inputs, and the state-model caveat placed last. Nothing is wasted.

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?

An output schema exists, so return-shape explanation is not required, and annotations cover the safety profile; what remains is the state-model hint, which the description supplies. The one gap is that the undocumented order_id parameter is clarified only obliquely via the word 'parent'.

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 only 50% — order_id has no description at all — so the description compensates by calling it the 'parent' order_id, signaling that card-level identifiers are distinct entities under it. The token's secrecy requirement is already documented in the schema, so that part is repetition rather than added value.

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?

States a specific verb and resource (read a private purchase plus its order.cards), which no sibling does — cancel_order and prepare_order mutate, search_cards queries a different resource. It stops short of naming any sibling explicitly, so the differentiation is inferred rather than declared.

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 mention of 'using the parent order_id and order_access_token' implies the required credentialing path, but there is no statement of when to reach for this tool versus alternatives, nor any exclusion (e.g., use search_cards to find an order first). Usage is implied, not guided.

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

search_cardsSearch cardsB
Read-onlyIdempotent
Inspect

Find currently available ordinary and artist cards by occasion, tone, format, artist or budget. Public browsing needs no account or key.

NameRequiredDescriptionDefault
kindNo
toneNo
humorNo
limitNo
queryNo
artistNo
cursorNo
formatNo
occasionNo
max_price_centsNo
require_printed_textNoFilter verified wording already printed in the artwork. Unknown wording does not match absent or present.
printed_text_containsNoRequired phrase in verified artwork lettering, matched without case sensitivity. This does not search the customizable message.

Output Schema

NameRequiredDescription
okYes
dataNo
errorNo

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already declare read-only, idempotent, non-destructive behavior. The description adds useful context that public browsing requires no account or key and that results are 'currently available' cards, but it says nothing about pagination behavior despite a cursor parameter, nor about result limits or sorting.

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 tight sentences that front-load the core purpose and add one high-value access note. There is no wasted language.

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?

Although an output schema exists and need not be explained, this is a 12-parameter search tool with a cursor and low schema description coverage. The description omits pagination, limit semantics, the text-search parameters, and most filter behavior, leaving significant gaps for an agent invoking it correctly.

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 description coverage is only 17%, so the description needs to compensate, but it names only five filter dimensions (occasion, tone, format, artist, budget) and the ordinary/artist distinction. It leaves query, humor, kind, limit, cursor, require_printed_text, and printed_text_contains without meaningful added explanation.

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 uses a specific verb ('Find') and resource ('cards') and specifies the scope ('currently available ordinary and artist cards') plus the main filter dimensions. It is clear enough to distinguish this browsing tool from the order-management siblings, though it does not explicitly name any sibling alternative.

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 sentence 'Public browsing needs no account or key' implies the tool is for public browsing and gives an important access condition. However, it does not state when to use this instead of other tools, nor does it describe when not to use it or how it relates to the order siblings.

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.

  1. 4 tool updates
    • First observedcancel_order
    • First observedprepare_order
    • First observedread_order
    • First observedsearch_cards

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Send real physical postcards worldwide via AI agents. Supports single and bulk send (up to 500 recipients), balance checking, delivery tracking, and volume pricing from $0.72/card.
    5
    3 npm
    5
    MIT
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI assistants to create, design, and send physical postcards directly through the PostcardAI platform. It provides comprehensive tools for managing contacts, generating postcard designs from prompts, and tracking mailing delivery metrics.
    -
  • A
    license
    A
    quality
    D
    maintenance
    Enables any MCP-compatible AI agent to send physical handwritten postcards via USPS with a single tool call, handling image upload, card creation, robotic handwriting, and mailing.
    2
    26 npm
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to send real handwritten notes via physical cards using Handwrytten's robotic pen service, along with managing cards, addresses, and orders.
    27 npm
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources