# Dolby Cinema Tracker Observed AMC premium showtimes, prices, theatres and double features. Public facts are free. Unknown data remains unknown; check coverage/freshness and confirm on AMC. - Guide: https://dolbycinematracker.xyz/agents - Public MCP: https://dolbycinematracker.xyz/mcp - Claude/ChatGPT OAuth connector URL: https://dolbycinematracker.xyz/mcp?auth=1 - Protected resource metadata: https://dolbycinematracker.xyz/.well-known/oauth-protected-resource - Authorization metadata: https://dolbycinematracker.xyz/.well-known/oauth-authorization-server - REST/OpenAPI: https://dolbycinematracker.xyz/openapi.json ## Connect Claude: Customize → Connectors → Add custom connector; paste the OAuth connector URL, choose Sign in now and Register automatically, Connect, then approve scopes in your browser. ChatGPT: Settings → Apps → Advanced settings → Developer mode, Create app; paste the same URL, choose OAuth, leave client credentials blank for dynamic registration, Connect and approve. Labels and availability depend on your plan/workspace. The auth=1 URL challenges initialization so clients start OAuth immediately. /mcp keeps initialize, tools/list and public tools anonymous and challenges only private calls. The resource/audience is always https://dolbycinematracker.xyz/mcp (without query). OAuth uses S256 PKCE, exact registered redirects, resource binding, access tokens lasting at most one hour (never beyond the refresh-family deadline), rotating hashed refresh tokens (90-day absolute family lifetime), and revocation at /oauth/revoke or /agents. Restore the human owner key in Following or /plan in this browser before consent. Scopes: read, alerts:write, billing, planner:write. Consent may downgrade scopes. Manual tokens at /agents expire after 365 days; send Authorization: Bearer dct_... privately, never in a URL. Never share owner keys. At most 10 connections per owner, 120 requests/minute and 30 writes/minute per connection; OAuth access tokens share their stable family's quotas across refresh rotations. alerts:write and every planner tool need the plan (402 subscription-required otherwise); read and billing work after a lapse. ## Safety and onboarding start_subscription (POST /api/v1/onboarding) returns checkoutUrl, agentToken, pending_payment; new subscribers get the 7-day free trial. Only the human opens Stripe and confirms; poll get_subscription_status. No tool charges, buys tickets or completes payments. Email needs consent and confirmation; push needs browser permission. start_planner (POST /api/v1/start_planner) creates an owner, a private agentToken and the trial Checkout, returning checkoutUrl and pending_payment. $4.99/mo after a 7-day free trial; everything included; the human confirms on Stripe; agents never handle cards. After the human confirms, Stripe returns them to /plan/connected?claim=... (24 h, single use), which saves their planner key in their browser and shows their plan once the trial is active. If that link is lost before it's opened, reissue_claim with that agentToken returns a new single-use claimUrl and the unused one stops working (at most 3 a day). Once any link has been opened the person has their key, so reissue_claim answers already_claimed: their saved planner link, or Restore on the planner page, opens the planner again. Existing owners reuse their token; create_checkout_link starts or renews their plan. list_releases (connected token) supplies upcoming releases with tiers, suggestions and a releaseDate (dateSource amc, or first-showing when AMC has no date); query, from/to, format, untieredOnly and limit (50, max 200) narrow it, and special screenings are listed under their base film. Its filmId is the AMC movie id, the same before and after the film joins the plan. Every planner tool accepts it as well as the planner's own id, and planner responses name both: filmId (the planner's own) and amcMovieId. set_home_theatres selects 1–10 active theatre IDs. Top/Want/Maybe map to follows. get_best_showings ranks formats missing from the owner's order last, as "(not in your list)". Its formatsScheduled lists the formats scheduled for the film at the home theatres, and its note says when a preferred format offered there isn't scheduled for the film yet (new showtimes are checked every 3 hours). Booking requests and cancellation are executor-only; otherwise use the showing purchaseUrl on AMC. ## Set someone up Paste this prompt into your agent: ```text Set me up with a Release Planner on Dolby Cinema Tracker. The planner is part of one plan with new-showtime alerts and reminders: $4.99/mo after a 7-day free trial; everything included; the human confirms on Stripe; agents never handle cards. Use https://dolbycinematracker.xyz/mcp (Streamable HTTP), or the REST tools documented at https://dolbycinematracker.xyz/openapi.json. Ask for my ZIP and preferred AMC theatres, format order (default Dolby > IMAX > PRIME > Laser > Standard, 3D off), and the next releases I care about. You may infer preferences only from Letterboxd or history I choose to share; ask before importing my public Letterboxd username. Use my existing connected token, or call start_planner once and keep agentToken private. Show me checkoutUrl: I start the 7-day free trial on Stripe myself, and Stripe returns me to a one-time link that saves my planner key in my browser. If I lose that link before opening it, call reissue_claim and give me the new claimUrl. Poll get_subscription_status until entitled. Use find_theatres for my theatres and list_releases with a query for each film I name (it needs the connected token; special screenings are listed under their film), then set_home_theatres, set_format_preference and set_tier (Top, Want, Maybe, Skip, using the filmId from list_releases) to reflect my choices. Suggestions are advice, not booking intent. Summarize my plan. Top, Want and Maybe follow new showtimes for me, but email requires separate opt-in and confirmation and push requires browser permission. Never pay or buy tickets for me. Never share or log my tokens or owner key. Booking is handled by me on AMC using get_best_showings purchaseUrl. Never infer booking consent or change protected tickets. ``` Reminders use a configured Following deliverySubscriptionId and honor quiet hours, even on-sale. Movie dates are explicitly supplied, never predicted. Ticket reminders use real booked planner tickets. Planner tiers/preferences never create booking requests. Only an explicit request_booking with selected showing or complete flexibility and stable clientKey queues intent for your booking assistant (private executor accounts only). Protected tickets cannot be modified by these tools. ## Tools search_showtimes and list_drops preserve identifiers and include movieTitle, theatreName, theatreCity, theatreState and formatLabel. Unknown facts stay null; on-sale aggregate displays describe their firstBookableEvidence rather than implying every theatre/format is the same. update_notification_settings accepts a partial JSON object. Supply only the fields to change; omitted settings retain their stored values, including channel toggles, timezone, quiet hours and digest schedule. - start_planner: public; Start a release planner - list_releases: read; List releases to plan - set_home_theatres: planner:write; Set your home theatres - list_reminders: alerts:write; List your reminders - set_reminder: alerts:write; Set a movie or booked-ticket reminder - delete_reminder: alerts:write; Delete your reminder - get_plan: read; Get your movie plan - get_capacity: read; Get as-planned capacity - get_best_showings: read; Rank showings for your plan - set_tier: planner:write; Set a movie's planner tier - set_format_preference: planner:write; Set planner format preference - request_booking: planner:write; Explicitly request a booking - cancel_booking_request: planner:write; Cancel a queued booking request - search_showtimes: public; Search AMC showtimes - list_drops: public; List new ticket drops - get_movie: public; Get movie details - find_theatres: public; Find AMC theatres - find_double_features: public; Find double features - get_pricing: public; Get subscription pricing - get_subscription_status: read; Get subscription status - create_checkout_link: billing; Create Stripe Checkout link - create_billing_portal_link: billing; Create billing portal link - list_alerts: read; List your alerts - create_alert: alerts:write; Follow a movie - update_alert: alerts:write; Update an alert - pause_alert: alerts:write; Pause an alert - resume_alert: alerts:write; Resume an alert - delete_alert: alerts:write; Delete an alert - get_notification_settings: read; Get notification settings - update_notification_settings: alerts:write; Update notification settings - list_agent_tokens: read; List agent connections - revoke_this_token: read; Disconnect this agent - reissue_claim: read; Reissue the connection link - start_subscription: public; Connect a new subscriber REST mirrors each tool at /api/v1/: GET query for reads, POST JSON for writes. Private responses are no-store. Audit keeps operation/outcome metadata for 90 days, no request bodies or secrets. Registry publishing, automatic payment and ticket purchasing are not supported.