← The evidence ledger
Evidence row 996780
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 754e55ee-f58e-48ec-95f9-653a73f5135c
- Recorded
- Previous row
- #780508
- Body SHA-256
- 9d218d3abbfaf221a05c92a5982d87b6c7b466178a091841ac2b899258311944
- Leaf
- 0x5816eb2df9f62ee5ac1e8cf61829213459a4a161391d4dc145ae0310850d9d51
What was observed
{
"count": 5,
"tools": [
{
"description": "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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"card_ids": {
"description": "Omit 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.",
"items": {
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"type": "string"
},
"maxItems": 500,
"minItems": 1,
"type": "array"
},
"expected_revision": {
"exclusiveMinimum": 0,
"maximum": 2147483646,
"type": "integer"
},
"order_access_token": {
"description": "Private purchase capability. Keep it secret; never put it in a public URL or log.",
"pattern": "^[A-Za-z0-9_-]{43}$",
"type": "string"
},
"order_id": {
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"type": "string"
}
},
"required": [
"order_id",
"order_access_token",
"expected_revision"
],
"type": "object"
},
"name": "cancel_order"
},
{
"description": "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. Each card is priced for its own recipient country. Returns the order and its card records, the exact sum of current per-card prices, one review_url for buyer review and payment, and a private order_access_token. Optional per-card previews are available on the review page. No charge or mailing is authorized here. The 500-card/4-MiB bounds are technical request limits. Use a caller-generated UUID request_id. Omit order_access_token on the first call so Paddock securely generates and returns it; preserve the returned token privately. Never invent or type a random-looking token. Retry the same request_id only with the exact token and unchanged cards. If the first response is lost before saving the server-generated token, use a new request_id for another unpaid purchase. Only clients with a cryptographic random generator may optionally pre-generate and privately store 32 random bytes encoded as 43 base64url characters for first-response recovery. Validation issues identify zero-based card indices without copying private content.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"cards": {
"description": "One 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.",
"items": {
"additionalProperties": false,
"description": "One manual guest card. Each card may have its own artwork, format, message, recipient, optional occasion and timing. Existing destination/calendar rules apply. No member, Property, recipient, card or calendar-event IDs.",
"properties": {
"design_key": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"design_version": {
"exclusiveMinimum": 0,
"maximum": 2147483646,
"type": "integer"
},
"format": {
"description": "Postcard, flat card in an envelope, or folded card in an envelope. Omit to select flat_card_in_envelope.",
"enum": [
"postcard",
"flat_card_in_envelope",
"folded_card_in_envelope"
],
"type": "string"
},
"include_paddock_gift": {
"description": "Include a complimentary personalized Paddock bookmark. For eligible new envelope orders, omission includes it; set false to opt out. The bookmark has the chosen artwork, a gift message naming the sender, and a unique QR code for one free card, including artist cards. Read the order’s returned paddock_gift: included, and omission_reason when it is not included. Explain it when useful or asked; no separate question or announcement is needed.",
"type": "boolean"
},
"message": {
"description": "Body of the personal message, at most 2000 Unicode characters. Paddock prints the greeting \"Dear {greeting_name or display_name},\" above it automatically, so do not start the message with a salutation. Printed artwork wording is separate.",
"maxLength": 4000,
"type": "string"
},
"message_font": {
"enum": [
"serif",
"sans_serif",
"old_school",
"handwriting"
],
"type": "string"
},
"occasion": {
"additionalProperties": false,
"description": "Optional occasion and timing context, independent of the selected artwork. Omit for an ordinary just-because card.",
"properties": {
"calendar": {
"const": "us-western-v1",
"type": "string"
},
"day": {
"maximum": 31,
"minimum": 1,
"type": "integer"
},
"kind": {
"description": "Exact catalog occasion ID, such as birthday, thank_you or just_because. Use just_because with send_on for a one-time mailing date. Use underscores, not display labels or hyphens.",
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"month": {
"maximum": 12,
"minimum": 1,
"type": "integer"
},
"send_on": {
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
}
},
"required": [
"kind",
"calendar"
],
"type": "object"
},
"recipient": {
"additionalProperties": false,
"properties": {
"address_confirmed": {
"const": true,
"type": "boolean"
},
"anniversary_day": {
"maximum": 31,
"minimum": 0,
"type": "integer"
},
"anniversary_month": {
"maximum": 12,
"minimum": 0,
"type": "integer"
},
"birthday_day": {
"default": 0,
"maximum": 31,
"minimum": 0,
"type": "integer"
},
"birthday_month": {
"default": 0,
"maximum": 12,
"minimum": 0,
"type": "integer"
},
"birthday_year": {
"anyOf": [
{
"maximum": 9999,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
]
},
"display_name": {
"description": "Name on the envelope or address panel.",
"maxLength": 240,
"type": "string"
},
"greeting_name": {
"description": "Name printed in the automatic greeting, such as Ida for \"Dear Ida,\". Defaults to display_name.",
"maxLength": 240,
"type": "string"
},
"mailing_address": {
"additionalProperties": false,
"properties": {
"country_code": {
"pattern": "^[A-Z]{2}$",
"type": "string"
},
"line1": {
"maxLength": 320,
"type": "string"
},
"line2": {
"default": "",
"description": "Optional second line, such as an apartment or suite. Omitted means empty.",
"maxLength": 320,
"type": "string"
},
"locality": {
"maxLength": 320,
"type": "string"
},
"postal_code": {
"maxLength": 48,
"type": "string"
},
"region": {
"maxLength": 160,
"type": "string"
}
},
"required": [
"line1",
"locality",
"region",
"postal_code",
"country_code"
],
"type": "object"
},
"origin": {
"const": "manual",
"type": "string"
}
},
"required": [
"display_name",
"mailing_address",
"address_confirmed",
"origin"
],
"type": "object"
},
"return_address": {
"additionalProperties": false,
"description": "Required for every card format: the sender’s name and return mailing address supplied by the buyer. Not automatically obtained from billing details.",
"properties": {
"display_name": {
"maxLength": 240,
"type": "string"
},
"mailing_address": {
"additionalProperties": false,
"properties": {
"country_code": {
"pattern": "^[A-Z]{2}$",
"type": "string"
},
"line1": {
"maxLength": 320,
"type": "string"
},
"line2": {
"default": "",
"description": "Optional second line, such as an apartment or suite. Omitted means empty.",
"maxLength": 320,
"type": "string"
},
"locality": {
"maxLength": 320,
"type": "string"
},
"postal_code": {
"maxLength": 48,
"type": "string"
},
"region": {
"maxLength": 160,
"type": "string"
}
},
"required": [
"line1",
"locality",
"region",
"postal_code",
"country_code"
],
"type": "object"
},
"source_kind": {
"const": "manual",
"type": "string"
}
},
"required": [
"display_name",
"mailing_address",
"source_kind"
],
"type": "object"
}
},
"required": [
"design_key",
"design_version",
"message",
"recipient",
"return_address"
],
"type": "object"
},
"maxItems": 500,
"minItems": 1,
"type": "array"
},
"order_access_token": {
"description": "Omit on the first call so Paddock securely generates and returns the private token. Never invent or type a random-looking token. On retries use the exact returned token, same request_id and unchanged cards. Only clients with a cryptographic random generator may pre-generate 32 random bytes encoded as 43 base64url characters for first-response recovery. Existing purchase capabilities cannot be replaced.",
"pattern": "^[A-Za-z0-9_-]{43}$",
"type": "string"
},
"request_id": {
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"type": "string"
}
},
"required": [
"request_id",
"cards"
],
"type": "object"
},
"name": "prepare_order"
},
{
"description": "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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"order_access_token": {
"description": "Private purchase capability. Keep it secret; never put it in a public URL or log.",
"pattern": "^[A-Za-z0-9_-]{43}$",
"type": "string"
},
"order_id": {
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"type": "string"
}
},
"required": [
"order_id",
"order_access_token"
],
"type": "object"
},
"name": "read_order"
},
{
"description": "Optionally report a technical problem, suggestion category or neutral successful outcome using fixed choices. Never required to buy a card. Do not include personal content, credentials, links, conversations or hidden reasoning. Reports are unverified feedback, not proof of payment or mailing.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"category": {
"enum": [
"no_suitable_card",
"irrelevant_results",
"unclear_result",
"preview_unavailable",
"request_rejected",
"slow_response",
"unexpected_error",
"recovery_failed",
"broader_selection",
"clearer_results",
"better_recovery",
"simpler_checkout",
"faster_responses",
"better_documentation",
"completed_as_expected"
],
"type": "string"
},
"code": {
"default": "none",
"description": "Reported public error code only; no provider error text.",
"enum": [
"none",
"INVALID_REQUEST",
"CARD_VALIDATION_FAILED",
"NOT_FOUND",
"CONFLICT",
"GONE",
"CATALOG_ARTWORK_UNAVAILABLE",
"CARD_SAMPLE_ACCEPTANCE_REQUIRED",
"CARD_ARTWORK_ACCEPTANCE_REQUIRED",
"ARTIST_PRINT_SETUP_REQUIRED",
"DESTINATION_INVALID",
"DESTINATION_SUSPENDED",
"DESTINATION_REVIEW_REQUIRED",
"MESSAGE_DOES_NOT_FIT",
"RETURN_ADDRESS_REQUIRED",
"PRICE_CHANGED",
"QUOTE_EXPIRED",
"PAYMENT_UNAVAILABLE",
"CHECKOUT_UNAVAILABLE",
"CANCELLATION_NOT_ALLOWED",
"REFUND_NOT_ELIGIBLE",
"SERVICE_PAUSED",
"TRY_LATER",
"UNAVAILABLE"
],
"type": "string"
},
"field": {
"default": "none",
"description": "Reported field name only; never its value.",
"enum": [
"none",
"design_key",
"design_version",
"format",
"message",
"recipient.mailing_address",
"return_address",
"occasion",
"price",
"printed_text",
"availability",
"preview"
],
"type": "string"
},
"kind": {
"enum": [
"problem",
"suggestion",
"success"
],
"type": "string"
},
"operation": {
"enum": [
"search_cards",
"prepare_order",
"read_order",
"cancel_order",
"checkout",
"connection",
"documentation"
],
"type": "string"
},
"severity": {
"enum": [
"none",
"minor",
"major",
"blocked"
],
"type": "string"
}
},
"required": [
"kind",
"operation",
"category",
"severity"
],
"type": "object"
},
"name": "report_feedback"
},
{
"description": "Find currently available ordinary and artist cards by occasion, tone, format, artist or budget. Returns three concise matches by default; use next_cursor for more. Prices follow the recipient country: pass destination_country when known, and read pricing_destination and each format’s cents_by_destination. Each response states the physical specifications of the three formats once in format_specs (paper, finished and open size, message surface, envelope); include_specs adds the published details. Public browsing needs no account or key.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"artist": {
"maxLength": 120,
"type": "string"
},
"cursor": {
"pattern": "^(?:\\d{1,6})?$",
"type": "string"
},
"destination_country": {
"description": "Recipient country as a two-letter ISO code, such as US or CA. Prices depend on it: US addresses have agent-channel introductory prices and other countries the standard prices. Omit it to see US prices with each format’s other-destination amount listed; the prepared order prices every card by its own recipient address.",
"pattern": "^[A-Z]{2}$",
"type": "string"
},
"format": {
"description": "Postcard, flat card in an envelope, or folded card in an envelope. Omit to select flat_card_in_envelope.",
"enum": [
"postcard",
"flat_card_in_envelope",
"folded_card_in_envelope"
],
"type": "string"
},
"humor": {
"enum": [
"any",
"none",
"light",
"playful",
"funny"
],
"type": "string"
},
"include_specs": {
"description": "Include available paper, finish and envelope details. Basic format specifications are always returned. A missing detail is unspecified.",
"type": "boolean"
},
"kind": {
"enum": [
"any",
"standard",
"artist"
],
"type": "string"
},
"limit": {
"default": 3,
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"max_price_cents": {
"description": "Budget per card for the selected format at the destination’s prices.",
"maximum": 1000000,
"minimum": 0,
"type": "integer"
},
"occasion": {
"maxLength": 100,
"type": "string"
},
"printed_text_contains": {
"description": "Required phrase in verified artwork lettering, matched without case sensitivity. This does not search the customizable message.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"query": {
"maxLength": 300,
"type": "string"
},
"require_printed_text": {
"description": "Filter verified wording already printed in the artwork. Unknown wording does not match absent or present.",
"enum": [
"any",
"absent",
"present"
],
"type": "string"
},
"tone": {
"description": "Mood such as warm, cheerful, elegant or gentle. For funny cards, use humor instead.",
"maxLength": 40,
"type": "string"
}
},
"type": "object"
},
"name": "search_cards"
}
]
}What the leaf hashes
{"body":"9d218d3abbfaf221a05c92a5982d87b6c7b466178a091841ac2b899258311944","id":996780,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793250754024886,"prev":780508,"subject":"754e55ee-f58e-48ec-95f9-653a73f5135c","subject_kind":"endpoint"}Proof
Its day has not closed yet. A day closes ten minutes after midnight UTC; the proof appears here then.