# PhotoMatchFun > Personalized physical photo matching games, with public MCP discovery and customer-approved ordering through x402 payments. ## About the product - [Custom photo matching game](https://photomatchfun.com/products/custom-photo-matching-game): product, current prices, and delivery choices. - [How it helps](https://photomatchfun.com/about): familiar-photo activities for families and caregivers. - [Research](https://photomatchfun.com/research): sources and limits of the supporting research. - [Walgreens pickup guide](https://photomatchfun.com/walgreens-pickup): store selection, contact sharing, payment review, and readiness confirmation. Pickup is a website flow, not part of the MCP delivery catalog. - [FAQ](https://photomatchfun.com/faq): common questions. - [Ready-made collections](https://photomatchfun.com/photo-match-pre-filled-games): editable starting points. - [Returns](https://photomatchfun.com/returns) and [Privacy](https://photomatchfun.com/privacy): customer policies. PhotoMatchFun is a photo activity, not a medical treatment; research on related activities does not establish clinical benefits for this product. Product pages contain the current offer and fulfillment details. The website supports pickup, delivery, and optional digital copies. MCP currently supports only the physical delivery products returned by the live catalog. ## Developer documentation - [MCP reference (Markdown)](https://developers.photomatchfun.com/developers/mcp.md): endpoint, setup, example prompts, capabilities, permissions, pricing, limits, data handling, and sample results. - [MCP developer page](https://developers.photomatchfun.com/developers/mcp): human-readable reference and VS Code installation shortcut. - [Integration overview](https://developers.photomatchfun.com/integrations): MCP and x402 together. - [Ordering workflow](https://developers.photomatchfun.com/integrations/mcp): artwork, consent, order intents, and status. - [x402 guide](https://developers.photomatchfun.com/integrations/x402): payment requirements and safe retries. ## Sitemaps - [Product and caregiver pages](https://photomatchfun.com/sitemap.xml) - [Developer documentation](https://developers.photomatchfun.com/sitemap.xml) ## Live interfaces - [Commerce manifest](https://photomatchfun.com/api/agent/commerce): current catalog and payment configuration. - [MCP endpoint](https://photomatchfun.com/api/mcp): Streamable HTTP; use an MCP client. The MCP resource photomatchfun://commerce/guide provides the ordering workflow; photomatchfun://commerce/x402 reports current payment configuration. Re-read live prices and artwork requirements for every order. Obtain customer confirmation before creating an order intent or paying. Keep capabilities private and wallet secrets inside the buyer’s trusted wallet runtime. ## Required order preflight Before create_order_intent or payment, collect the actual recipient's first and last name in customer.name, separated by a space. Do not use a single first name, wallet label, or agent nickname. Ask the customer for missing name details; never invent a surname. If the recipient has only one name, stop and contact support before ordering. Border rendering belongs to the agent. get_product_configuration returns artwork.borders with renderer: agent, serverAppliesBorder: false, and available options. artwork.composition exposes the website's resolved Classic corner-thumbnail and logo switches, sizes, rotations, public asset URLs, and whiteBorderLayout. Use the default white border to match the website, a configured classic overlay, a customer-approved custom border, or no decorative border. Obey the per-corner switches and scaled layout, fit rotated graphics inside the safe bounds, and composite all graphics before upload: serverAppliesGraphics is false. Do not add a second border to an already rendered front. Website theme choices are not MCP order parameters; do not send borderId, themeId, or rendering instructions to create_order_intent. Payment success is not fulfillment success. After HTTP 200/202, poll get_order_status with the original intentId and statusToken. Report provider acceptance only when status is fulfilled and fulfillment.providerOrderId is present; this does not mean delivery. If status is fulfillment_failed or fulfillment.needsOperatorReview is true, report that payment succeeded but fulfillment failed, stop automatic ordering, and do not create another order or payment. This file is a documentation navigation aid, not universal agent registration or a guarantee of discovery.