Skip to main content
Glama

create_rules_wizard

Generate official sweepstakes rules via the 14-step wizard. BEFORE CALLING: 1) fetch_sweepstakes to get token, dates, name. 2) get_business + get_profile to pre-fill sponsor fields. 3) fetch_rules to check for existing primary rules — if primary exists, warn user new rules will be SECONDARY. Ask wizard questions in order (steps A-N), one at a time or in small groups. Only ask for data you cannot get from API calls. PRIMARY RULES LINK: If result is_primary=true, give user the URL: https://swpp.me/r/[handler] (handler in lowercase from fetch_sweepstakes). RULES LANGUAGE: Always set rules_language="en". The wizard generates ALL legal text server-side — NEVER compose rules language yourself. AMOE URL: The AMOE URL is NOT the entry page URL — the wizard handles AMOE language automatically based on method_of_entry. AGE GATE: Only activate Age Gate when min_age=2 (21+). NEVER for min_age=1 (18+) or min_age=3 (13+). AGE-RESTRICTED PRODUCTS: two independent 21+ triggers. Alcohol (alcohol_sweeps=1) applies only when the SPONSOR produces or manufactures alcohol — a retailer that merely sells it is 2. Tobacco, nicotine and vaping (nicotine_tobacco_sweeps=1) has NO such distinction: federal Tobacco 21 sets 21 for every tobacco and nicotine product, whoever sponsors it. Do not apply the producer/retailer reasoning to a vape or tobacco promotion — it is 21+ either way. Either trigger requires min_age=2. A nicotine promotion additionally needs states=4 with Massachusetts, Michigan and Virginia left out (those three prohibit tobacco sweepstakes), and the prize may never be the product itself — a discount or a coupon redeemed at a paid age-verified purchase is the permitted shape. SPONSOR DATA: every sponsor field is published verbatim in a public legal document. Take it from the user or from get_business for THIS promotion — never from an earlier conversation, another sweepstakes, or your own memory — show the complete block to the user, get their approval, and only then set sponsor_data_confirmed: true. If a value is missing, ask; never fill it with a plausible guess, and never use a placeholder domain (example.com, .example, .test) in any URL. REGISTRATION AND BONDING: prizes with an ARV over USD 5,000 require registration and a surety bond in Florida and New York (Rhode Island adds a registration requirement of its own for retail promotions). Always name the USD 5,000 threshold AND all three states when the prize value is near or above it, and offer the states values that exclude them: 5 (excl. FL, NY), 6 (excl. FL, NY, RI), 8 and 9 for the Canada variants. GEOLOCATION: Use the states parameter for geographic eligibility. NEVER use GeoLocation entry settings for state restrictions — GeoLocation is for GPS/IP boundaries only.

create_rules_wizard

When to use

Generate official sweepstakes rules via the 14-step wizard. BEFORE CALLING: 1) fetch_sweepstakes to get token, dates, name. 2) get_business + get_profile to pre-fill sponsor fields. 3) fetch_rules to check for existing primary rules — if primary exists, warn user new rules will be SECONDARY. Ask wizard questions in order (steps A-N), one at a time or in small groups. Only ask for data you cannot get from API calls. PRIMARY RULES LINK: If result is_primary=true, give user the URL: https://swpp.me/r/[handler] (handler in lowercase from fetch_sweepstakes). RULES LANGUAGE: Always set rules_language="en". The wizard generates ALL legal text server-side — NEVER compose rules language yourself. AMOE URL: The AMOE URL is NOT the entry page URL — the wizard handles AMOE language automatically based on method_of_entry. AGE GATE: Only activate Age Gate when min_age=2 (21+). NEVER for min_age=1 (18+) or min_age=3 (13+). GEOLOCATION: Use the states parameter for geographic eligibility. NEVER use GeoLocation entry settings for state restrictions — GeoLocation is for GPS/IP boundaries only.

Pre-calls required

  1. fetch_sweepstakes if the user gave you a sweepstakes name instead of a token

  2. fetch_rules(sweepstakes_token) — if primary rules already exist, WARN that new rules will be SECONDARY (not published)

  3. get_business — auto-populate sponsor info (legal name, address)

  4. get_entry_settings — confirm AMOE state matches the entry method

Parameters to validate before calling

  • sweepstakes_token (string, required) — Sweepstakes token (UUID). Get via fetch_sweepstakes.

  • arv (number, required) — one of: 1, 2 — Approximate Retail Value threshold. 1 = ARV >= $5,000. 2 = ARV < $5,000.

  • alcohol_sweeps (number, required) — one of: 1, 2 — Does the SPONSOR produce or manufacture alcoholic products? 1 = Yes, 2 = No. Only producers/manufacturers count: a retailer, store, supermarket, bar or restaurant that merely sells alcohol is NOT an alcohol sponsor and should be 2. The trigger is who the sponsor is, not what the prize is — a brewery giving away concert tickets is 1. When 1, min_age must be 2 (21+).

  • sweepstakes_name (string, required) — Official promotional name (6-60 characters).

  • start_date (string, required) — Start date (YYYY-MM-DD).

  • start_time (string, required) — Start time (e.g. "09:00 AM" or "14:00").

  • start_timezone (string, required) — Start timezone (e.g. "US/Eastern", "EST", "CST").

  • end_date (string, required) — End date (YYYY-MM-DD).

  • end_time (string, required) — End time (e.g. "11:59 PM" or "23:59").

  • end_timezone (string, required) — End timezone.

  • prize_description (string, required) — Detailed prize description (max 5000 chars).

  • prize_include_travel (boolean, required) — Does the prize include travel?

  • prize_is_vehicle (boolean, required) — Is the prize a vehicle?

  • prize_value (number, required) — Total prize value in USD. Must be > 0.

  • entry_period_selector (number, required) — one of: 1, 2 — 1 = single drawing period, 2 = multiple entry periods.

  • sponsor_name (string, required) — Legal sponsor name. Pre-fill from get_business.

  • sponsor_address (string, required) — Sponsor street address. Pre-fill from get_business.

  • sponsor_city (string, required) — Sponsor city. Pre-fill from get_business.

  • sponsor_state (string, required) — Sponsor state or abbreviation. Pre-fill from get_business.

  • sponsor_zip_code (string, required) — Sponsor zip code (5 digits). Pre-fill from get_business.

  • method_of_entry (number, required) — one of: 1, 2, 3, 4, 5, 6, 7, 8 — Entry method: 1=Website, 2=SMS, 3=Social Media, 4=Other, 5=Purchase ($1=1 entry), 6=Purchase (1 order=1 entry), 7=Donation, 8=Subscription.

  • min_age (number, required) — one of: 1, 2, 3 — Minimum age: 1=18+, 2=21+, 3=13+ with parental consent.

  • states (number, required) — one of: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 — Geographic eligibility. 1 = 48 contiguous US + DC. 2 = 50 US + DC. 3 = 50 US + DC + US Virgin Islands + Puerto Rico. 4 = specific states (requires list_of_states). 5 = 50 US + DC excluding FL and NY. 6 = 50 US + DC excluding FL, NY and RI. 7 = 50 US + DC + Canada. 8 = 50 US + DC + Canada excluding FL and NY. 9 = 50 US + DC + Canada excluding FL, NY and RI. 10 = Canada only. Values 5, 6, 8 and 9 exist to avoid the registration/bonding requirements of FL, NY and RI. Values 7-10 include Canada: the rules must state that Canadian winners answer a mathematical skill-testing question to receive the prize.

  • privacy_policy_url (string, required) — Privacy policy URL (min 11 chars, must include http/https).

  • sweeppea_entry_page (number, required) — one of: 1, 2, 3 — 1 = Sweeppea hosted page, 2 = custom URL, 3 = none.

  • winners_to_draw (number, optional) — Number of winners to draw (>= 1). Required when entry_period_selector = 1.

  • winner_drawing_date (string, optional) — Drawing date (YYYY-MM-DD). Required when entry_period_selector = 1.

  • winner_drawing_time (string, optional) — Drawing time. Required when entry_period_selector = 1.

  • winner_drawing_timezone (string, optional) — Drawing timezone. Required when entry_period_selector = 1.

  • winner_notification_date (string, optional) — Winner notification date (YYYY-MM-DD). Required when entry_period_selector = 1.

  • winner_notification_time (string, optional) — Winner notification time. Required when entry_period_selector = 1.

  • winner_notification_timezone (string, optional) — Winner notification timezone. Required when entry_period_selector = 1.

  • entry_period_items (array, optional) — Array of period objects. Required when entry_period_selector = 2. Each object: { start_date, start_time, end_date, end_time, drawing_date, winners_drawn, notification_date, prize_description, prize_value }.

  • sponsor_telephone (string, optional) — Sponsor phone number (optional). Pre-fill from get_profile.

  • sponsor_email (string, optional) — Sponsor email (optional). Pre-fill from get_profile.

  • social_media_entry_description (string, optional) — Social media entry details. Required when method_of_entry = 3.

  • other_description (string, optional) — Other entry method description. Required when method_of_entry = 4.

  • sponsor_ecommerce_store_url_a (string, optional) — Ecommerce store URL. Required when method_of_entry = 5.

  • sponsor_ecommerce_store_url_b (string, optional) — Ecommerce store URL. Required when method_of_entry = 6.

  • sponsor_donations_acceptance_page_url (string, optional) — Donations acceptance page URL. Required when method_of_entry = 7.

  • sponsor_ecommerce_store_url_c (string, optional) — Ecommerce/subscription store URL. Required when method_of_entry = 8.

  • total_number_of_entries_awarded_amoe (number, optional) — Total entries awarded via AMOE (>= 1). Required when method_of_entry is 5, 6, 7, or 8.

  • limit_or_max_number_of_entries_amoe (number, optional) — Max entries via AMOE (>= 1). Required when method_of_entry is 5, 6, 7, or 8.

  • list_of_states (array, optional) — Array of state names. Required when states = 4.

  • custom_entry_page (string, optional) — Custom entry page URL (min 11 chars). Required when sweeppea_entry_page = 2.

  • sponsor_offering_multiplier (number, optional) — one of: 1, 2 — Is sponsor offering entry multiplier? 1=Yes, 2=No. Default: 2.

  • sponsor_awarding_bonus_email_social (number, optional) — one of: 1, 2 — Awarding bonus for email/social? 1=Yes, 2=No. Default: 2.

  • sponsor_asking_to_submit_video (number, optional) — one of: 1, 2 — Asking for video submission? 1=Yes, 2=No. Default: 2.

  • rules_language (string, optional) — Rules language code. MUST always be "en" (English). The wizard generates all legal text server-side using its own templates — NEVER compose or modify rules language yourself.

Notes

  • Compliance pre-checks: ARV > $5,000 + FL/NY not excluded → WARN about bonding/registration

  • ARV > $500 + sponsor is an RI retailer + entry requires a store visit → WARN about RI registration (all three conditions must be met)

  • Purchase/donation/subscription entry → VERIFY AMOE is configured

  • alcohol_sweeps=1 ONLY when the SPONSOR produces/manufactures alcoholic products — a retailer, store, bar or restaurant that merely sells alcohol is 2; the prize is irrelevant (a brewery giving away concert tickets is 1)

  • Alcohol = yes → VERIFY min_age=21 and Age Gate active; in AL, IN, ME, MD, NC, VT and WV, State Alcohol Board approval is required before launch — warn the user

  • states 5/6/8/9 exist to exclude the FL/NY/RI registration-and-bonding states; 7-10 include Canada (10 is Canada ONLY)

  • Open to Canada (states 7-10) → the rules must state the mathematical skill-testing question for Canadian winners; Quebec-only or Quebec-designated prizes → RACJ registration + French translation of the rules (Canada-wide needs neither)

  • Age < 13 → REFUSE (COPPA violation)

  • After creation: call fetch_rules to verify; use update_rule for corrections

  • at the end of the Official Rules document always include a copyright notice that say "All rights reserved."

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
arvYesApproximate Retail Value threshold. 1 = ARV >= $5,000. 2 = ARV < $5,000. A prize at or above USD 5,000 triggers registration and bonding in Florida and New York (and registration in Rhode Island) when residents of those states can enter — warn the user and offer states=5 or 6 to exclude them.
statesYesGeographic eligibility. 1 = 48 contiguous US + DC. 2 = 50 US + DC. 3 = 50 US + DC + US Virgin Islands + Puerto Rico. 4 = specific states (requires list_of_states). 5 = 50 US + DC excluding FL and NY. 6 = 50 US + DC excluding FL, NY and RI. 7 = 50 US + DC + Canada. 8 = 50 US + DC + Canada excluding FL and NY. 9 = 50 US + DC + Canada excluding FL, NY and RI. 10 = Canada only. Values 5, 6, 8 and 9 exist to avoid the registration/bonding requirements of FL, NY and RI. Values 7-10 include Canada: the rules must state that Canadian winners answer a mathematical skill-testing question to receive the prize.
min_ageYesMinimum age: 1=18+, 2=21+, 3=13+ with parental consent. Must be 2 (21+) whenever alcohol_sweeps=1 or nicotine_tobacco_sweeps=1. Do NOT confuse this enum with AgeGateMinAge in update_entry_settings, which uses different codes (1=13+, 2=18+, 3=21+) — 21+ is min_age=2 here and AgeGateMinAge=3 there.
end_dateYesEnd date (YYYY-MM-DD).
end_timeYesEnd time (e.g. "11:59 PM" or "23:59").
start_dateYesStart date (YYYY-MM-DD).
start_timeYesStart time (e.g. "09:00 AM" or "14:00").
prize_valueYesTotal prize value in USD. Must be > 0. Must be consistent with arv: >= 5000 when arv=1, < 5000 when arv=2. Above USD 5,000, registration and bonding apply in Florida and New York (plus registration in Rhode Island).
end_timezoneYesEnd timezone.
sponsor_cityYesSponsor city. Pre-fill from get_business.
sponsor_nameYesLegal sponsor name. Pre-fill from get_business.
sponsor_emailNoContact email of the SPONSOR organization, as given by the user. It is printed in the public Official Rules and legally identifies who is responsible for the promotion. NEVER substitute the account owner email from get_profile: the account owner is not necessarily the sponsor. If the user has not given you a sponsor email, ask for it or omit the field.
sponsor_stateYesSponsor state or abbreviation. Pre-fill from get_business.
alcohol_sweepsYesDoes the SPONSOR produce or manufacture alcoholic products? 1 = Yes, 2 = No. Only producers/manufacturers count: a retailer, store, supermarket, bar or restaurant that merely sells alcohol is NOT an alcohol sponsor and should be 2. The trigger is who the sponsor is, not what the prize is — a brewery giving away concert tickets is 1. When 1, min_age must be 2 (21+).
list_of_statesNoArray of state names. Required when states = 4.
rules_languageNoRules language code. MUST always be "en" (English). The wizard generates all legal text server-side using its own templates — NEVER compose or modify rules language yourself.en
start_timezoneYesStart timezone (e.g. "US/Eastern", "EST", "CST").
method_of_entryYesEntry method: 1=Website, 2=SMS, 3=Social Media, 4=Other, 5=Purchase ($1=1 entry), 6=Purchase (1 order=1 entry), 7=Donation, 8=Subscription.
sponsor_addressYesSponsor street address. Pre-fill from get_business.
winners_to_drawNoNumber of winners to draw (>= 1). Required when entry_period_selector = 1.
prize_is_vehicleYesIs the prize a vehicle?
sponsor_zip_codeYesSponsor zip code (5 digits). Pre-fill from get_business.
sweepstakes_nameYesOfficial promotional name (6-60 characters).
custom_entry_pageNoCustom entry page URL (min 11 chars). Required when sweeppea_entry_page = 2.
other_descriptionNoOther entry method description. Required when method_of_entry = 4.
prize_descriptionYesDetailed prize description (max 5000 chars). It is printed verbatim in the public Official Rules, so it must describe what the winner actually receives. A tobacco, nicotine or vaping product cannot be a prize (free sample ban, 21 CFR 1140.16(d)(1)); a discount or a coupon redeemed at the time of a paid age-verified purchase can.
sponsor_telephoneNoSponsor phone number (optional). Pre-fill from get_profile.
sweepstakes_tokenYesSweepstakes token (UUID). Get via fetch_sweepstakes.
entry_period_itemsNoArray of period objects. Required when entry_period_selector = 2. Each object: { start_date, start_time, end_date, end_time, drawing_date, winners_drawn, notification_date, prize_description, prize_value }.
privacy_policy_urlYesPrivacy policy URL (min 11 chars, must include http/https).
sweeppea_entry_pageYes1 = Sweeppea hosted page, 2 = custom URL, 3 = none.
winner_drawing_dateNoDrawing date (YYYY-MM-DD). Required when entry_period_selector = 1.
winner_drawing_timeNoDrawing time. Required when entry_period_selector = 1.
prize_include_travelYesDoes the prize include travel?
entry_period_selectorYes1 = single drawing period, 2 = multiple entry periods.
sponsor_data_confirmedYesMust be true. Confirms you showed the user the EXACT sponsor block that will be printed in the public Official Rules (name, address, city, state, zip, email, phone) and they approved it in this conversation. Sponsor data comes from the user or from get_business — NEVER from an earlier conversation, another sweepstakes, or memory. If you are unsure where a sponsor value came from, ask the user again instead of setting this flag.
nicotine_tobacco_sweepsYesDoes the promotion involve tobacco, nicotine or vaping products — as the prize, as the sponsor product, or as the subject of the promotion? 1 = Yes, 2 = No. UNLIKE ALCOHOL there is no producer/retailer distinction: federal Tobacco 21 sets 21 as the minimum age for every tobacco and nicotine product, so a store that merely sells vapes is 1, not 2. Covers cigarettes, cigars, chewing and smokeless tobacco, hookah, e-cigarettes, vapes, vape juice and nicotine pouches. When 1: min_age must be 2 (21+), and states must be 4 with a list_of_states that excludes Massachusetts, Michigan and Virginia, which prohibit tobacco-related sweepstakes. Separately, the PRIZE may never be the product itself (free sample ban, 21 CFR 1140.16(d)(1)) — a discount or a coupon redeemed at the time of a paid age-verified purchase is permitted. Used by the MCP legal guardrail; it is not sent to the Sweeppea API.
winner_drawing_timezoneNoDrawing timezone. Required when entry_period_selector = 1.
winner_notification_dateNoWinner notification date (YYYY-MM-DD). Required when entry_period_selector = 1.
winner_notification_timeNoWinner notification time. Required when entry_period_selector = 1.
sponsor_offering_multiplierNoIs sponsor offering entry multiplier? 1=Yes, 2=No. Default: 2.
winner_notification_timezoneNoWinner notification timezone. Required when entry_period_selector = 1.
sponsor_ecommerce_store_url_aNoEcommerce store URL. Required when method_of_entry = 5.
sponsor_ecommerce_store_url_bNoEcommerce store URL. Required when method_of_entry = 6.
sponsor_ecommerce_store_url_cNoEcommerce/subscription store URL. Required when method_of_entry = 8.
social_media_entry_descriptionNoSocial media entry details. Required when method_of_entry = 3.
sponsor_asking_to_submit_videoNoAsking for video submission? 1=Yes, 2=No. Default: 2.
sponsor_email_is_account_ownerNoSet true ONLY when the user explicitly confirmed that the account owner own email is the sponsor contact to be published in the Official Rules. The server blocks a sponsor_email equal to the account profile email until you do.
limit_or_max_number_of_entries_amoeNoMax entries via AMOE (>= 1). Required when method_of_entry is 5, 6, 7, or 8.
sponsor_awarding_bonus_email_socialNoAwarding bonus for email/social? 1=Yes, 2=No. Default: 2.
total_number_of_entries_awarded_amoeNoTotal entries awarded via AMOE (>= 1). Required when method_of_entry is 5, 6, 7, or 8.
sponsor_donations_acceptance_page_urlNoDonations acceptance page URL. Required when method_of_entry = 7.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changed
    • changedInput schema / properties / arv / description
      Previous value: -"Approximate Retail Value threshold. 1 = ARV >= $5,000. 2 = ARV < $5,000."New value: +"Approximate Retail Value threshold. 1 = ARV >= $5,000. 2 = ARV < $5,000. A prize at or above USD 5,000 triggers registration and bonding in Florida and New York (and registration in Rhode Island) when residents of those states can enter — warn the user and offer states=5 or 6 to exclude them."
    • changedInput schema / properties / min_age / description
      Previous value: -"Minimum age: 1=18+, 2=21+, 3=13+ with parental consent."New value: +"Minimum age: 1=18+, 2=21+, 3=13+ with parental consent. Must be 2 (21+) whenever alcohol_sweeps=1 or nicotine_tobacco_sweeps=1. Do NOT confuse this enum with AgeGateMinAge in update_entry_settings, which uses different codes (1=13+, 2=18+, 3=21+) — 21+ is min_age=2 here and AgeGateMinAge=3 there."
    • addedInput schema / properties / nicotine_tobacco_sweeps
      Added value: +{
      +  "description": "Does the promotion involve tobacco, nicotine or vaping products — as the prize, as the sponsor product, or as the subject of the promotion? 1 = Yes, 2 = No. UNLIKE ALCOHOL there is no producer/retailer distinction: federal Tobacco 21 sets 21 as the minimum age for every tobacco and nicotine product, so a store that merely sells vapes is 1, not 2. Covers cigarettes, cigars, chewing and smokeless tobacco, hookah, e-cigarettes, vapes, vape juice and nicotine pouches. When 1: min_age must be 2 (21+), and states must be 4 with a list_of_states that excludes Massachusetts, Michigan and Virginia, which prohibit tobacco-related sweepstakes. Separately, the PRIZE may never be the product itself (free sample ban, 21 CFR 1140.16(d)(1)) — a discount or a coupon redeemed at the time of a paid age-verified purchase is permitted. Used by the MCP legal guardrail; it is not sent to the Sweeppea API.",
      +  "enum": [
      +    1,
      +    2
      +  ],
      +  "type": "number"
      +}
    • changedInput schema / properties / prize_description / description
      Previous value: -"Detailed prize description (max 5000 chars)."New value: +"Detailed prize description (max 5000 chars). It is printed verbatim in the public Official Rules, so it must describe what the winner actually receives. A tobacco, nicotine or vaping product cannot be a prize (free sample ban, 21 CFR 1140.16(d)(1)); a discount or a coupon redeemed at the time of a paid age-verified purchase can."
    • changedInput schema / properties / prize_value / description
      Previous value: -"Total prize value in USD. Must be > 0."New value: +"Total prize value in USD. Must be > 0. Must be consistent with arv: >= 5000 when arv=1, < 5000 when arv=2. Above USD 5,000, registration and bonding apply in Florida and New York (plus registration in Rhode Island)."
    • addedInput schema / properties / sponsor_data_confirmed
      Added value: +{
      +  "description": "Must be true. Confirms you showed the user the EXACT sponsor block that will be printed in the public Official Rules (name, address, city, state, zip, email, phone) and they approved it in this conversation. Sponsor data comes from the user or from get_business — NEVER from an earlier conversation, another sweepstakes, or memory. If you are unsure where a sponsor value came from, ask the user again instead of setting this flag.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / sponsor_email / description
      Previous value: -"Sponsor email (optional). Pre-fill from get_profile."New value: +"Contact email of the SPONSOR organization, as given by the user. It is printed in the public Official Rules and legally identifies who is responsible for the promotion. NEVER substitute the account owner email from get_profile: the account owner is not necessarily the sponsor. If the user has not given you a sponsor email, ask for it or omit the field."
    • addedInput schema / properties / sponsor_email_is_account_owner
      Added value: +{
      +  "description": "Set true ONLY when the user explicitly confirmed that the account owner own email is the sponsor contact to be published in the Official Rules. The server blocks a sponsor_email equal to the account profile email until you do.",
      +  "type": "boolean"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "sweepstakes_token",
      -  "arv",
      -  "alcohol_sweeps",
      -  "sweepstakes_name",
      -  "start_date",
      -  "start_time",
      -  "start_timezone",
      -  "end_date",
      -  "end_time",
      -  "end_timezone",
      -  "prize_description",
      -  "prize_include_travel",
      -  "prize_is_vehicle",
      -  "prize_value",
      -  "entry_period_selector",
      -  "sponsor_name",
      -  "sponsor_address",
      -  "sponsor_city",
      -  "sponsor_state",
      -  "sponsor_zip_code",
      -  "method_of_entry",
      -  "min_age",
      -  "states",
      -  "privacy_policy_url",
      -  "sweeppea_entry_page"
      -]New value: +[
      +  "sweepstakes_token",
      +  "arv",
      +  "alcohol_sweeps",
      +  "nicotine_tobacco_sweeps",
      +  "sponsor_data_confirmed",
      +  "sweepstakes_name",
      +  "start_date",
      +  "start_time",
      +  "start_timezone",
      +  "end_date",
      +  "end_time",
      +  "end_timezone",
      +  "prize_description",
      +  "prize_include_travel",
      +  "prize_is_vehicle",
      +  "prize_value",
      +  "entry_period_selector",
      +  "sponsor_name",
      +  "sponsor_address",
      +  "sponsor_city",
      +  "sponsor_state",
      +  "sponsor_zip_code",
      +  "method_of_entry",
      +  "min_age",
      +  "states",
      +  "privacy_policy_url",
      +  "sweeppea_entry_page"
      +]
  2. Changed2 schema fields changed
    • changedInput schema / properties / alcohol_sweeps / description
      Previous value: -"Is this an alcohol-related sweepstakes? 1 = Yes, 2 = No."New value: +"Does the SPONSOR produce or manufacture alcoholic products? 1 = Yes, 2 = No. Only producers/manufacturers count: a retailer, store, supermarket, bar or restaurant that merely sells alcohol is NOT an alcohol sponsor and should be 2. The trigger is who the sponsor is, not what the prize is — a brewery giving away concert tickets is 1. When 1, min_age must be 2 (21+)."
    • changedInput schema / properties / states / description
      Previous value: -"Geographic eligibility. 1=All 50+DC, 2=+PR, 3=+All Territories, 4=Select specific, 5=US&Canada, 6=US&Canada+PR, 7=US&UK, 8=US&Mexico, 9=Worldwide, 10=US,Canada,Mexico."New value: +"Geographic eligibility. 1 = 48 contiguous US + DC. 2 = 50 US + DC. 3 = 50 US + DC + US Virgin Islands + Puerto Rico. 4 = specific states (requires list_of_states). 5 = 50 US + DC excluding FL and NY. 6 = 50 US + DC excluding FL, NY and RI. 7 = 50 US + DC + Canada. 8 = 50 US + DC + Canada excluding FL and NY. 9 = 50 US + DC + Canada excluding FL, NY and RI. 10 = Canada only. Values 5, 6, 8 and 9 exist to avoid the registration/bonding requirements of FL, NY and RI. Values 7-10 include Canada: the rules must state that Canadian winners answer a mathematical skill-testing question to receive the prize."
  3. Changed2 schema fields changed
    • addedInput schema / properties / rules_language / default
      Added value: +"en"
    • changedInput schema / properties / rules_language / description
      Previous value: -"Rules language code. Default: \"en\"."New value: +"Rules language code. MUST always be \"en\" (English). The wizard generates all legal text server-side using its own templates — NEVER compose or modify rules language yourself."
  4. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations mark this as mutating and non-idempotent, and the description supports that by saying 'After creation' and directing the agent to verify with fetch_rules. It adds meaningful behavioral context: primary vs. secondary rules, secondary rules not being published, and the wizard owning all legal text generation. It does not describe failure modes or response shape in detail, so it is not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely long and heavily repetitious: the AGE GATE, RULES LANGUAGE, GEOLOCATION, alcohol, and states guidance appear nearly verbatim in the opening block, the 'When to use' section, and the Notes. The 'Parameters to validate' section duplicates the schema's parameter descriptions. It is organized into sections, but many sentences do not earn their place.

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?

For a 52-parameter, 14-step wizard with no output schema, the description covers pre-calls, conditional parameter requirements, legal registration thresholds, post-creation verification, and the primary-rules URL. It omits a full response shape and error/failure behavior, which the missing output schema would otherwise require, so it is a 4 rather than a 5.

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?

The schema already covers 100% of the 52 parameters, so the baseline is 3. The description earns a 4 by adding cross-parameter constraints beyond the schema: Age Gate only for min_age=2, rules_language always 'en', no placeholder domains, sponsor_data_confirmed requiring user approval of the exact block, and the alcohol producer/retailer distinction. Much of this repeats the schema, but the interactions are genuinely additive.

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 first sentence names the exact action and artifact ('Generate official sweepstakes rules via the 14-step wizard'), which is unambiguous and specific. It does not explicitly contrast itself with the sibling create_rule, so the distinction is implied by the wizard framing rather than stated.

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 provides explicit when-to-use context, required pre-calls, and post-creation verification steps, which is strong usage guidance. It does not explicitly state when to use an alternative such as create_rule instead, so it stops short of full exclusion/alternative coverage.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources