{"access":{"status":"public_authenticated","sandbox":{"status":"disabled_in_production","checkout":"simulated test checkout or Stripe test mode by deployment configuration","delivery":"simulated","production_enabled":false,"reset_after_days":7},"admin_authentication":["Admin PAT"],"checkout_prefix":"rzi_chk_","confirmation_prefix":"rzi_cfm_","host_authentication":["OAuth 2.0 authorization code with PKCE S256","Host PAT"],"pat_prefix":"rzi_pat_"},"protocol":{"name":"Model Context Protocol","version":"2025-11-25","transport":"Streamable HTTP","admin_endpoint":"https://rizzinvites.com/mcp/admin","host_endpoint":"https://rizzinvites.com/mcp","request_body_limit_bytes":1000000,"response_body_limit_bytes":100000},"product":"Rizz Invites","documentation":{"human":"https://rizzinvites.com/developers/mcp","catalog":"https://rizzinvites.com/developers/mcp/catalog.json","catalog_v1":"https://rizzinvites.com/developers/mcp/catalog/v1.json","catalog_v2":"https://rizzinvites.com/developers/mcp/catalog/v2.json","openapi":"https://rizzinvites.com/developers/api/openapi.json","registry_proof":"https://rizzinvites.com/.well-known/mcp-registry-auth","rest_human":"https://rizzinvites.com/developers/api","security":"https://rizzinvites.com/.well-known/security.txt"},"tools":{"host":[{"http":[{"path":"/api/v1/events/:event_id/cohosts","extensions":{},"method":"post","success_status":201}],"name":"add_cohost","description":"Invite an email-addressed cohost. Call without confirmation_token, review the preview, then repeat identical arguments with its token. Example: {\"event_id\":42,\"name\":\"Sam\",\"email\":\"sam@example.com\"}.","title":"Add Cohost","category":"Lifecycle","example":{"name":"Sam","email":"sam@example.com","event_id":42},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"output_schema":{"additionalProperties":false,"properties":{"data":{},"meta":{"additionalProperties":true,"type":"object"}},"required":["data","meta"],"type":"object"},"input_schema":{"additionalProperties":false,"properties":{"confirmation_token":{"description":"Single-use rzi_cfm_ token from an identical preview call.","type":"string"},"email":{"description":"Guest email address.","format":"email","maxLength":320,"type":"string"},"event_id":{"description":"event id.","type":"integer"},"name":{"description":"name.","maxLength":100,"type":"string"}},"required":["email","event_id","name"],"type":"object"},"availability":"post_beta","required_scopes":["events:write"]},{"http":[{"path":"/api/v1/events/:event_id/guests","extensions":{},"method":"post","success_status":201}],"name":"add_guests","description":"Atomically add 1 to 100 contactable guests to an owned draft. Supply a stable idempotency_key so retries return the original result. Any invalid or blocked contact rejects the entire batch. Example: {\"event_id\":42,\"idempotency_key\":\"guest-import-42-v1\",\"guests\":[{\"name\":\"Sam\",\"email\":\"sam@example.com\"}]}.","title":"Add Guests","category":"Guests","example":{"event_id":42,"idempotency_key":"guest-import-42-v1","guests":[{"name":"Sam","email":"sam@example.com"}]},"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false},"output_schema":{"additionalProperties":false,"properties":{"data":{},"meta":{"additionalProperties":true,"type":"object"}},"required":["data","meta"],"type":"object"},"input_schema":{"additionalProperties":false,"properties":{"event_id":{"description":"event id.","type":"integer"},"guests":{"description":"guests.","items":{"additionalProperties":false,"properties":{"email":{"description":"Guest email address.","format":"email","maxLength":320,"type":"string"},"name":{"description":"name.","maxLength":100,"type":"string"},"phone":{"description":"Guest phone number; E.164 is preferred.","type":"string"}},"required":["name"],"type":"object"},"type":"array"},"idempotency_key":{"description":"Caller-generated stable retry key, 8 to 200 characters.","maxLength":200,"minLength":8,"type":"string"}},"required":["event_id","guests","idempotency_key"],"type":"object"},"availability":"live","required_scopes":["guests:write"]},{"http":[{"path":"/api/v1/events/:event_id/cancellations","extensions":{},"method":"post","success_status":200}],"name":"cancel_event","description":"Cancel an owned sent event after preview confirmation. Repeat identical arguments with the token within 15 minutes; committed-token retries do not cancel twice. Example: {\"event_id\":42}.","title":"Cancel Event","category":"Lifecycle","example":{"event_id":42},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"output_schema":{"additionalProperties":false,"properties":{"data":{},"meta":{"additionalProperties":true,"type":"object"}},"required":["data","meta"],"type":"object"},"input_schema":{"additionalProperties":false,"properties":{"confirmation_token":{"description":"Single-use rzi_cfm_ token from an identical preview call.","type":"string"},"event_id":{"description":"event id.","type":"integer"}},"required":["event_id"],"type":"object"},"availability":"post_beta","required_scopes":["events:write"]},{"http":[{"path":"/api/v1/checkouts/:checkout_id/reconcile","extensions":{"divergence":"Mutating reconciliation uses POST over REST."},"method":"post","success_status":200}],"name":"check_payment_status","description":"Reconcile an opaque rzi_chk_ checkout. A paid result upgrades the draft but never sends invitations. Example: {\"checkout_id\":\"rzi_chk_example\"}.","title":"Check Payment Status","category":"Billing","example":{"checkout_id":"rzi_chk_example"},"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false},"output_schema":{"additionalProperties":false,"properties":{"data":{},"meta":{"additionalProperties":true,"type":"object"}},"required":["data","meta"],"type":"object"},"input_schema":{"additionalProperties":false,"properties":{"checkout_id":{"description":"checkout id.","type":"string"}},"required":["checkout_id"],"type":"object"},"availability":"live","required_scopes":["billing:checkout"]},{"http":[{"path":"/api/v1/events/:event_id/checkouts","extensions":{},"method":"post","success_status":201}],"name":"create_checkout_link","description":"Create or reuse an owner-bound Stripe checkout after payment_required. Complete the URL, poll check_payment_status, then retry send_invites. Example: {\"event_id\":42,\"idempotency_key\":\"checkout-42-v1\",\"tier\":\"pro\"}.","title":"Create Checkout Link","category":"Billing","example":{"event_id":42,"idempotency_key":"checkout-42-v1","tier":"pro"},"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false},"output_schema":{"additionalProperties":false,"properties":{"data":{},"meta":{"additionalProperties":true,"type":"object"}},"required":["data","meta"],"type":"object"},"input_schema":{"additionalProperties":false,"properties":{"event_id":{"description":"event id.","type":"integer"},"idempotency_key":{"description":"Caller-generated stable retry key, 8 to 200 characters.","maxLength":200,"minLength":8,"type":"string"},"tier":{"description":"tier.","enum":["pro","premium","elite"]}},"required":["event_id","idempotency_key","tier"],"type":"object"},"availability":"live","required_scopes":["billing:checkout"]},{"http":[{"path":"/api/v1/events","extensions":{},"method":"post","success_status":201}],"name":"create_event","description":"Create an owned draft event. template_id is optional for the AI-cover flow; a design-less draft cannot be sent until set_event_design succeeds. Dates and times are venue-local and timezone defaults to the account timezone. Example: {\"name\":\"Maya's birthday\",\"timezone\":\"America/New_York\",\"party_date\":\"2026-09-12\",\"time_from\":\"15:00\"}.","title":"Create Event","category":"Events","example":{"name":"Maya's birthday","timezone":"America/New_York","party_date":"2026-09-12","time_from":"15:00"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"output_schema":{"additionalProperties":false,"properties":{"data":{},"meta":{"additionalProperties":true,"type":"object"}},"required":["data","meta"],"type":"object"},"input_schema":{"additionalProperties":false,"properties":{"address":{"description":"address.","maxLength":200,"type":"string"},"allow_plus_ones":{"description":"allow plus ones.","type":"boolean"},"host_message":{"description":"host message.","maxLength":500,"type":"string"},"name":{"description":"name.","maxLength":100,"type":"string"},"party_date":{"description":"Venue-local ISO 8601 date in YYYY-MM-DD format.","type":"string"},"template_id":{"description":"template id.","type":"integer"},"time_from":{"description":"Venue-local 24-hour time in HH:MM format.","type":"string"},"time_to":{"description":"Venue-local 24-hour time in HH:MM format.","type":"string"},"timezone":{"description":"IANA timezone such as America/New_York.","type":"string"}},"required":["name","party_date","time_from"],"type":"object"},"availability":"live","required_scopes":["events:write"]},{"http":[{"path":"/api/v1/events/:event_id","extensions":{},"method":"delete","success_status":200}],"name":"delete_event","description":"Permanently delete an eligible owned event after preview confirmation. Repeat identical arguments with the token within 15 minutes. Example: {\"event_id\":42}.","title":"Delete Event","category":"Lifecycle","example":{"event_id":42},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"output_schema":{"additionalProperties":false,"properties":{"data":{},"meta":{"additionalProperties":true,"type":"object"}},"required":["data","meta"],"type":"object"},"input_schema":{"additionalProperties":false,"properties":{"confirmation_token":{"description":"Single-use rzi_cfm_ token from an identical preview call.","type":"string"},"event_id":{"description":"event id.","type":"integer"}},"required":["event_id"],"type":"object"},"availability":"post_beta","required_scopes":["events:write"]},{"http":[{"path":"/api/v1/events/:event_id/covers","extensions":{},"method":"post","success_status":202}],"name":"generate_cover","description":"Start an AI cover for an owned draft with an idempotency key. Poll get_cover_status, then select a succeeded generation with set_event_design. Example: {\"event_id\":42,\"theme\":\"enchanted garden\",\"idempotency_key\":\"cover-42-v1\"}.","title":"Generate Cover","category":"Design","example":{"event_id":42,"theme":"enchanted garden","idempotency_key":"cover-42-v1"},"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false},"output_schema":{"additionalProperties":false,"properties":{"data":{},"meta":{"additionalProperties":true,"type":"object"}},"required":["data","meta"],"type":"object"},"input_schema":{"additionalProperties":false,"properties":{"event_id":{"description":"event id.","type":"integer"},"idempotency_key":{"description":"Caller-generated stable retry key, 8 to 200 characters.","maxLength":200,"minLength":8,"type":"string"},"theme":{"description":"theme.","maxLength":300,"type":"string"}},"required":["event_id","idempotency_key"],"type":"object"},"availability":"live","required_scopes":["ai:generate"]},{"http":[{"path":"/api/v1/account","extensions":{},"method":"get","success_status":200}],"name":"get_account","description":"Get the authenticated account summary, masked email, default timezone, and AI Pro availability. Example: {}.","title":"Get Account","category":"Account","example":{},"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true},"output_schema":{"additionalProperties":false,"properties":{"data":{},"meta":{"additionalProperties":true,"type":"object"}},"required":["data","meta"],"type":"object"},"input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"availability":"live","required_scopes":["account:read"]},{"http":[{"path":"/api/v1/events/:event_id/covers/:generation_id","extensions":{},"method":"get","success_status":200}],"name":"get_cover_status","description":"Read the current state of an owned cover generation. Responses return immediately; select a succeeded generation with set_event_design. Example: {\"event_id\":42,\"generation_id\":9}.","title":"Get Cover Status","category":"Design","example":{"event_id":42,"generation_id":9},"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true},"output_schema":{"additionalProperties":false,"properties":{"data":{},"meta":{"additionalProperties":true,"type":"object"}},"required":["data","meta"],"type":"object"},"input_schema":{"additionalProperties":false,"properties":{"event_id":{"description":"event id.","type":"integer"},"generation_id":{"description":"generation id.","type":"integer"},"include_previews":{"default":true,"description":"include previews.","type":"boolean"},"wait_seconds":{"default":0,"description":"Deprecated compatibility field. Responses return immediately.","maximum":25,"minimum":0,"type":"integer"}},"required":["event_id","generation_id"],"type":"object"},"availability":"live","required_scopes":["events:read"]},{"http":[{"path":"/api/v1/events/:event_id","extensions":{},"method":"get","success_status":200}],"name":"get_event","description":"Get one accessible event with design, tier, timezone, and RSVP summary. Cross-tenant identifiers return not_found. Example: {\"event_id\":42}.","title":"Get Event","category":"Events","example":{"event_id":42},"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true},"output_schema":{"additionalProperties":false,"properties":{"data":{},"meta":{"additionalProperties":true,"type":"object"}},"required":["data","meta"],"type":"object"},"input_schema":{"additionalProperties":false,"properties":{"event_id":{"description":"event id.","type":"integer"}},"required":["event_id"],"type":"object"},"availability":"live","required_scopes":["events:read"]},{"http":[{"path":"/api/v1/events/:event_id/share-link","extensions":{},"method":"get","success_status":200}],"name":"get_event_link","description":"Get the owner-only entitled event link. payment_required identifies create_checkout_link as recovery. Example: {\"event_id\":42}.","title":"Get Event Link","category":"Events","example":{"event_id":42},"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true},"output_schema":{"additionalProperties":false,"properties":{"data":{},"meta":{"additionalProperties":true,"type":"object"}},"required":["data","meta"],"type":"object"},"input_schema":{"additionalProperties":false,"properties":{"event_id":{"description":"event id.","type":"integer"}},"required":["event_id"],"type":"object"},"availability":"live","required_scopes":["events:read"]},{"http":[{"path":"/api/v1/events","extensions":{},"method":"get","success_status":200}],"name":"list_events","description":"List events accessible as owner or accepted cohost with RSVP rollups and opaque cursor pagination. Example: {\"limit\":50}.","title":"List Events","category":"Events","example":{"limit":50},"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true},"output_schema":{"additionalProperties":false,"properties":{"data":{},"meta":{"additionalProperties":true,"type":"object"}},"required":["data","meta"],"type":"object"},"input_schema":{"additionalProperties":false,"properties":{"cursor":{"description":"Opaque pagination cursor returned in meta.next_cursor.","type":"string"},"limit":{"default":50,"description":"Page size from 1 to the tool's documented maximum.","maximum":100,"minimum":1,"type":"integer"}},"type":"object"},"availability":"live","required_scopes":["events:read"]},{"http":[{"path":"/api/v1/events/:event_id/guests","extensions":{},"method":"get","success_status":200}],"name":"list_guests","description":"List guests. Contacts are masked unless the token has guests:contacts; guest-controlled text is untrusted. Example: {\"limit\":50,\"event_id\":42}.","title":"List Guests","category":"Guests","example":{"limit":50,"event_id":42},"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true},"output_schema":{"additionalProperties":false,"properties":{"data":{},"meta":{"additionalProperties":true,"type":"object"}},"required":["data","meta"],"type":"object"},"input_schema":{"additionalProperties":false,"properties":{"cursor":{"description":"Opaque pagination cursor returned in meta.next_cursor.","type":"string"},"event_id":{"description":"event id.","type":"integer"},"limit":{"default":50,"description":"Page size from 1 to the tool's documented maximum.","maximum":100,"minimum":1,"type":"integer"}},"required":["event_id"],"type":"object"},"availability":"live","required_scopes":["guests:read"]},{"http":[{"path":"/api/v1/events/:event_id/guest-messages","extensions":{},"method":"post","success_status":202}],"name":"message_guests","description":"Send a reviewed email-only message. Call without confirmation_token, review the preview, then repeat identical arguments with its token. A stable idempotency_key makes external delivery retries safe. Example: {\"event_id\":42,\"message\":\"New venue\",\"idempotency_key\":\"change-42-v1\"}.","title":"Message Guests","category":"Messaging","example":{"message":"New venue","event_id":42,"idempotency_key":"change-42-v1"},"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false},"output_schema":{"additionalProperties":false,"properties":{"data":{},"meta":{"additionalProperties":true,"type":"object"}},"required":["data","meta"],"type":"object"},"input_schema":{"additionalProperties":false,"properties":{"confirmation_token":{"description":"Single-use rzi_cfm_ token from an identical preview call.","type":"string"},"event_id":{"description":"event id.","type":"integer"},"guest_ids":{"description":"guest ids.","items":{"type":"integer"},"type":"array"},"idempotency_key":{"description":"Caller-generated stable retry key, 8 to 200 characters.","maxLength":200,"minLength":8,"type":"string"},"message":{"description":"message.","maxLength":300,"type":"string"},"segment":{"description":"segment.","enum":["pending","confirmed","all","explicit"]}},"required":["event_id","idempotency_key","message"],"type":"object"},"availability":"post_beta","required_scopes":["messaging:send"]},{"http":[{"path":"/api/v1/events/:event_id/cohosts/:cohost_id","extensions":{},"method":"delete","success_status":200}],"name":"remove_cohost","description":"Remove an event cohost. Call without confirmation_token, review the preview, then repeat identical arguments with its token. Example: {\"event_id\":42,\"cohost_id\":7}.","title":"Remove Cohost","category":"Lifecycle","example":{"event_id":42,"cohost_id":7},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"output_schema":{"additionalProperties":false,"properties":{"data":{},"meta":{"additionalProperties":true,"type":"object"}},"required":["data","meta"],"type":"object"},"input_schema":{"additionalProperties":false,"properties":{"cohost_id":{"description":"cohost id.","type":"integer"},"confirmation_token":{"description":"Single-use rzi_cfm_ token from an identical preview call.","type":"string"},"event_id":{"description":"event id.","type":"integer"}},"required":["cohost_id","event_id"],"type":"object"},"availability":"post_beta","required_scopes":["events:write"]},{"http":[{"path":"/api/v1/events/:event_id/guests/:guest_id","extensions":{},"method":"delete","success_status":200}],"name":"remove_guest","description":"Remove a draft guest after preview confirmation. Repeat identical arguments with the actor- and argument-bound token. Example: {\"event_id\":42,\"guest_id\":7}.","title":"Remove Guest","category":"Guests","example":{"event_id":42,"guest_id":7},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"output_schema":{"additionalProperties":false,"properties":{"data":{},"meta":{"additionalProperties":true,"type":"object"}},"required":["data","meta"],"type":"object"},"input_schema":{"additionalProperties":false,"properties":{"confirmation_token":{"description":"Single-use rzi_cfm_ token from an identical preview call.","type":"string"},"event_id":{"description":"event id.","type":"integer"},"guest_id":{"description":"guest id.","type":"integer"}},"required":["event_id","guest_id"],"type":"object"},"availability":"live","required_scopes":["guests:write"]},{"http":[{"path":"/api/v1/templates","extensions":{},"method":"get","success_status":200}],"name":"search_templates","description":"Search active invitation designs. Use a returned template id with create_event or set_event_design. Results use opaque cursor pagination. Example: {\"category\":\"kids_birthday\",\"limit\":20}.","title":"Search Templates","category":"Design","example":{"category":"kids_birthday","limit":20},"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true},"output_schema":{"additionalProperties":false,"properties":{"data":{},"meta":{"additionalProperties":true,"type":"object"}},"required":["data","meta"],"type":"object"},"input_schema":{"additionalProperties":false,"properties":{"category":{"description":"category.","type":"string"},"cursor":{"description":"Opaque pagination cursor returned in meta.next_cursor.","type":"string"},"include_previews":{"default":true,"description":"include previews.","type":"boolean"},"limit":{"default":20,"description":"Page size from 1 to the tool's documented maximum.","maximum":50,"minimum":1,"type":"integer"},"query":{"description":"query.","type":"string"}},"type":"object"},"availability":"live","required_scopes":["events:read"]},{"http":[{"path":"/api/v1/events/:event_id/invitation-deliveries","extensions":{},"method":"post","success_status":202}],"name":"send_invites","description":"Queue initial delivery with preview confirmation. Call with event_id only, review confirmation_required, then repeat identical arguments with its token within 15 minutes. An identical committed-token retry within 24 hours returns the original receipt without sending twice. Example: {\"event_id\":42}.","title":"Send Invites","category":"Messaging","example":{"event_id":42},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"output_schema":{"additionalProperties":false,"properties":{"data":{},"meta":{"additionalProperties":true,"type":"object"}},"required":["data","meta"],"type":"object"},"input_schema":{"additionalProperties":false,"properties":{"confirmation_token":{"description":"Single-use rzi_cfm_ token from an identical preview call.","type":"string"},"event_id":{"description":"event id.","type":"integer"}},"required":["event_id"],"type":"object"},"availability":"live","required_scopes":["messaging:send"]},{"http":[{"path":"/api/v1/events/:event_id/design","extensions":{},"method":"put","success_status":200}],"name":"set_event_design","description":"Select exactly one active template_id or succeeded owned generation_id for a draft. This resolves design_missing. Example: {\"event_id\":42,\"generation_id\":9}.","title":"Set Event Design","category":"Design","example":{"event_id":42,"generation_id":9},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"output_schema":{"additionalProperties":false,"properties":{"data":{},"meta":{"additionalProperties":true,"type":"object"}},"required":["data","meta"],"type":"object"},"input_schema":{"additionalProperties":false,"properties":{"event_id":{"description":"event id.","type":"integer"},"generation_id":{"description":"generation id.","type":"integer"},"include_previews":{"default":true,"description":"include previews.","type":"boolean"},"template_id":{"description":"template id.","type":"integer"}},"required":["event_id"],"type":"object"},"availability":"live","required_scopes":["events:write"]},{"http":[{"path":"/api/v1/events/:event_id","extensions":{},"method":"patch","success_status":200}],"name":"update_event","description":"Update an accessible event. Draft changes apply directly. For a sent event, call without confirmation_token, review the preview, then repeat identical arguments with its token; messaging:send is required because guests are notified. Example: {\"event_id\":42,\"party_date\":\"2026-09-12\"}.","title":"Update Event","category":"Events","example":{"event_id":42,"party_date":"2026-09-12"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"output_schema":{"additionalProperties":false,"properties":{"data":{},"meta":{"additionalProperties":true,"type":"object"}},"required":["data","meta"],"type":"object"},"input_schema":{"additionalProperties":false,"properties":{"address":{"description":"address.","maxLength":200,"type":"string"},"allow_plus_ones":{"description":"allow plus ones.","type":"boolean"},"confirmation_token":{"description":"Single-use rzi_cfm_ token from an identical preview call.","type":"string"},"event_id":{"description":"event id.","type":"integer"},"host_message":{"description":"host message.","maxLength":500,"type":"string"},"name":{"description":"name.","maxLength":100,"type":"string"},"party_date":{"description":"Venue-local ISO 8601 date in YYYY-MM-DD format.","type":"string"},"time_from":{"description":"Venue-local 24-hour time in HH:MM format.","type":"string"},"time_to":{"description":"Venue-local 24-hour time in HH:MM format.","type":"string"},"timezone":{"description":"IANA timezone such as America/New_York.","type":"string"}},"required":["event_id"],"type":"object"},"availability":"live","required_scopes":["events:write"]},{"http":[{"path":"/api/v1/events/:event_id/guests/:guest_id","extensions":{},"method":"patch","success_status":200}],"name":"update_guest","description":"Update a guest on an accessible draft. Blocked or malformed contacts are rejected. Example: {\"name\":\"Sam Lee\",\"event_id\":42,\"guest_id\":7}.","title":"Update Guest","category":"Guests","example":{"name":"Sam Lee","event_id":42,"guest_id":7},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"output_schema":{"additionalProperties":false,"properties":{"data":{},"meta":{"additionalProperties":true,"type":"object"}},"required":["data","meta"],"type":"object"},"input_schema":{"additionalProperties":false,"properties":{"email":{"description":"Guest email address.","format":"email","maxLength":320,"type":"string"},"event_id":{"description":"event id.","type":"integer"},"guest_id":{"description":"guest id.","type":"integer"},"name":{"description":"name.","maxLength":100,"type":"string"},"phone":{"description":"Guest phone number; E.164 is preferred.","type":"string"}},"required":["event_id","guest_id"],"type":"object"},"availability":"live","required_scopes":["guests:write"]}]},"errors":{"codes":[{"code":"not_found","retryable":false,"recovery":"Use error.next_action and refresh current resource state."},{"code":"malformed_request","retryable":false,"recovery":"Use error.next_action and refresh current resource state."},{"code":"validation_failed","retryable":false,"recovery":"Use error.next_action and refresh current resource state."},{"code":"invalid_state","retryable":false,"recovery":"Use error.next_action and refresh current resource state."},{"code":"not_draft","retryable":false,"recovery":"Use error.next_action and refresh current resource state."},{"code":"design_missing","retryable":false,"recovery":"Call set_event_design."},{"code":"payment_required","retryable":false,"recovery":"Call create_checkout_link with details.required_tier, complete payment, poll, and retry."},{"code":"guest_limit_reached","retryable":false,"recovery":"Use error.next_action and refresh current resource state."},{"code":"quota_exceeded","retryable":false,"recovery":"Use error.next_action and refresh current resource state."},{"code":"contact_blocked","retryable":false,"recovery":"Remove or correct the redacted row index."},{"code":"confirmation_required","retryable":false,"recovery":"Review the preview and repeat identical arguments with its token."},{"code":"confirmation_expired","retryable":false,"recovery":"Request a new preview."},{"code":"rate_limited","retryable":true,"recovery":"Wait details.retry_after_seconds."},{"code":"conflict","retryable":false,"recovery":"Use error.next_action and refresh current resource state."},{"code":"idempotency_conflict","retryable":false,"recovery":"Use error.next_action and refresh current resource state."},{"code":"request_too_large","retryable":false,"recovery":"Use error.next_action and refresh current resource state."},{"code":"response_too_large","retryable":false,"recovery":"Use error.next_action and refresh current resource state."},{"code":"temporarily_unavailable","retryable":true,"recovery":"Retry later with the request_id."},{"code":"unauthorized","retryable":false,"recovery":"Use error.next_action and refresh current resource state."},{"code":"insufficient_scope","retryable":false,"recovery":"Use error.next_action and refresh current resource state."}],"envelope":{"error":{"code":"stable machine-readable code","message":"short human-readable explanation","details":{},"retryable":false,"next_action":{}},"meta":{"request_id":"support and retry correlation id"}}},"resources":[{"name":"pricing","description":"Current invitation tiers and guest limits.","title":"Pricing","uri":"rizzinvites://pricing","template":false,"media_type":"application/json","scopes":["events:read"],"required_scopes":["events:read"]},{"name":"templates_by_category","description":"Active invitation templates for a category.","title":"Templates by category","uri":"rizzinvites://templates/{category}","template":true,"media_type":"application/json","scopes":["events:read"],"required_scopes":["events:read"]},{"name":"event","description":"One event accessible to the authenticated actor.","title":"Event","uri":"rizzinvites://events/{id}","template":true,"media_type":"application/json","scopes":["events:read"],"required_scopes":["events:read"]},{"name":"account","description":"Authenticated account summary.","title":"Account","uri":"rizzinvites://account","template":false,"media_type":"application/json","scopes":["account:read"],"required_scopes":["account:read"]},{"name":"host_playbook","description":"A concise guide to the event-host workflow.","title":"Host playbook","uri":"rizzinvites://guides/host-playbook","template":false,"media_type":"text/markdown","scopes":["events:read"],"required_scopes":["events:read"]}],"prompts":[{"name":"plan_my_party","description":"Turn party details into a safe event setup sequence.","title":"Plan my party","arguments":{"additionalProperties":false,"properties":{"guest_count":{"description":"guest count.","type":"integer"},"occasion":{"description":"occasion.","type":"string"}},"type":"object"},"scopes":["events:write"],"argument_schema":{"additionalProperties":false,"properties":{"guest_count":{"description":"guest count.","type":"integer"},"occasion":{"description":"occasion.","type":"string"}},"type":"object"},"required_scopes":["events:write"]},{"name":"import_guest_list","description":"Normalize a guest list before atomic import.","title":"Import guest list","arguments":{"additionalProperties":false,"properties":{"event_id":{"description":"event id.","type":"integer"}},"required":["event_id"],"type":"object"},"scopes":["guests:write"],"argument_schema":{"additionalProperties":false,"properties":{"event_id":{"description":"event id.","type":"integer"}},"required":["event_id"],"type":"object"},"required_scopes":["guests:write"]},{"name":"rsvp_check_in","description":"Review RSVP status and identify follow-up needs.","title":"RSVP check-in","arguments":{"additionalProperties":false,"properties":{"event_id":{"description":"event id.","type":"integer"}},"required":["event_id"],"type":"object"},"scopes":["events:read","guests:read"],"argument_schema":{"additionalProperties":false,"properties":{"event_id":{"description":"event id.","type":"integer"}},"required":["event_id"],"type":"object"},"required_scopes":["events:read","guests:read"]},{"name":"announce_change","description":"Draft a concise email-only event update.","title":"Announce a change","arguments":{"additionalProperties":false,"properties":{"change":{"description":"change.","type":"string"},"event_id":{"description":"event id.","type":"integer"}},"required":["change","event_id"],"type":"object"},"scopes":["events:read","messaging:send"],"argument_schema":{"additionalProperties":false,"properties":{"change":{"description":"change.","type":"string"},"event_id":{"description":"event id.","type":"integer"}},"required":["change","event_id"],"type":"object"},"required_scopes":["events:read","messaging:send"]},{"name":"design_studio","description":"Develop a safe, focused cover theme.","title":"Design studio","arguments":{"additionalProperties":false,"properties":{"direction":{"description":"direction.","type":"string"},"event_id":{"description":"event id.","type":"integer"}},"required":["event_id"],"type":"object"},"scopes":["events:write","ai:generate"],"argument_schema":{"additionalProperties":false,"properties":{"direction":{"description":"direction.","type":"string"},"event_id":{"description":"event id.","type":"integer"}},"required":["event_id"],"type":"object"},"required_scopes":["events:write","ai:generate"]}],"scopes":[{"name":"events:read","description":"Read accessible events, templates, cover status, and entitled event links."},{"name":"events:write","description":"Create and update events and select event designs."},{"name":"guests:read","description":"Read guest lists with contacts masked by default."},{"name":"guests:write","description":"Add, update, and remove guests on eligible drafts."},{"name":"guests:contacts","description":"Reveal guest email addresses and phone numbers after explicit consent."},{"name":"messaging:send","description":"Confirm invitation sends and eligible messaging."},{"name":"ai:generate","description":"Generate AI invitation covers within account quota."},{"name":"billing:checkout","description":"Create and reconcile owner-bound MCP checkouts."},{"name":"account:read","description":"Read the authenticated account summary."}],"oauth":{"resource":"https://rizzinvites.com","introspection_endpoint":"https://rizzinvites.com/oauth/introspect","token_endpoint_auth_methods":["none"],"response_types":["code"],"legacy_resource":"https://rizzinvites.com/mcp","access_token_ttl_seconds":3600,"admin_protected_resource_metadata":"https://rizzinvites.com/.well-known/oauth-protected-resource/mcp/admin","authorization_endpoint":"https://rizzinvites.com/oauth/authorize","authorization_server_metadata":"https://rizzinvites.com/.well-known/oauth-authorization-server","code_challenge_methods":["S256"],"grants":["authorization_code","refresh_token"],"legacy_resource_status":"accepted_for_one_release","protected_resource_metadata":"https://rizzinvites.com/.well-known/oauth-protected-resource","refresh_token_ttl_seconds":2592000,"registration_endpoint":"https://rizzinvites.com/oauth/register","revocation_endpoint":"https://rizzinvites.com/oauth/revoke","token_endpoint":"https://rizzinvites.com/oauth/token"},"changelog":[{"summary":"Closed typed outputs, venue timezones, structured errors, confirmation receipts, and normalized checkout/design fields.","published_at":"2026-08-08","schema_version":2,"breaking":true}],"limits":{"templates":{"default":20,"maximum":50},"collections":{"default":50,"maximum":100},"rate_classes":[{"unit":"credential","class":"ai","limit":10,"window_seconds":3600},{"unit":"credential","class":"checkout","limit":10,"window_seconds":3600},{"unit":"IP","class":"dcr","limit":10,"window_seconds":3600},{"unit":"event","class":"event_messaging","limit":3,"window_seconds":86400},{"unit":"credential","class":"messaging","limit":5,"window_seconds":3600},{"unit":"credential","class":"mutation","limit":30,"window_seconds":60},{"unit":"IP","class":"pre_auth","limit":60,"window_seconds":60},{"unit":"credential","class":"read","limit":120,"window_seconds":60},{"unit":"credential","class":"sandbox_ai","limit":4,"window_seconds":3600},{"unit":"credential","class":"sandbox_checkout","limit":4,"window_seconds":3600},{"unit":"credential","class":"sandbox_messaging","limit":3,"window_seconds":3600},{"unit":"credential","class":"sandbox_mutation","limit":15,"window_seconds":60},{"unit":"credential","class":"sandbox_read","limit":60,"window_seconds":60}]},"schema_version":1,"versioning":{"additive_changes":"No version bump for new optional fields or tools.","breaking_changes":"Version bump, changelog, and 90-day dual-publication window.","current_catalog":"/developers/mcp/catalog/v2.json","current_schema_version":2,"previous_catalog":"/developers/mcp/catalog/v1.json","v1_sunset":"2026-11-06"},"deprecation":{"status":"deprecated","successor":"/developers/mcp/catalog/v2.json","sunset":"2026-11-06"}}