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+). 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.
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.
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.
end_timezoneYesEnd timezone.
sponsor_cityYesSponsor city. Pre-fill from get_business.
sponsor_nameYesLegal sponsor name. Pre-fill from get_business.
sponsor_emailNoSponsor email (optional). Pre-fill from get_profile.
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).
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.
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.
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.

TDQS

A4.1/5.0
Behavior4/5

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

The description adds significant behavioral context beyond the annotations: the wizard generates all legal text server-side, Age Gate and GeoLocation rules, AMOE handling, and compliance warnings. Annotations only provide readOnlyHint, openWorldHint, and destructiveHint, so the description carries the burden and does well. However, the length and redundancy slightly reduce clarity.

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 excessively long and contains significant redundancy – the first paragraph is repeated verbatim under 'When to use', and the parameter list duplicates the schema. While it is structured with sections, the verbosity makes it harder for an agent to quickly parse. Many sentences could be removed or merged without losing critical information.

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?

Given the tool's complexity (49 parameters, conditional logic, legal compliance), the description covers all necessary context: pre-calls, parameter validation, conditional requirements, post-call actions (verify with fetch_rules), and edge cases (e.g., alcohol sweeps, Canadian rules). However, the lack of an output schema and the excessive length slightly reduce completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds some value by grouping parameters into 'Pre-calls required' and 'Notes' sections (e.g., pre-fill instructions, conditional requirements). However, much of the parameter information is duplicated from the schema, and the added context is mostly at a higher level.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Generate official sweepstakes rules via the 14-step wizard.' It specifies the verb (generate), resource (official sweepstakes rules), and the method (14-step wizard). It also distinguishes itself from siblings like create_rule and update_rule by mentioning the wizard process and pre-call requirements.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool, including a list of required pre-calls (fetch_sweepstakes, fetch_rules, get_business, get_entry_settings) and conditions for warning the user (e.g., if primary rules exist). It tells the agent to ask wizard questions in order and only ask for data not obtainable via API. This is comprehensive and actionable.

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.

TDQS

A3.6/5.0
Disambiguation4/5

Most tools follow a clear resource+action pattern (fetch_* for lists, get_* for single items, create/update/delete for writes), making them distinguishable. A few near-overlaps exist (fetch_billing_transactions vs fetch_wallet_transactions, draw_winners vs schedule_drawing) but the descriptions clarify the boundaries.

Naming Consistency4/5

Tool names consistently use snake_case verb_noun, with fetch_ for list operations and get_ for single-item retrieval. Some verb variation (add_participant, count_participants, draw_winners, schedule_drawing) deviates from the dominant create/fetch/update/delete pattern but remains predictable and readable.

Tool Count1/5

With 83 tools, this is far beyond a well-scoped server (typically 3-15, with 25+ considered too many). Even though the platform has broad functionality, the sheer number of tools creates significant agent confusion and selection overhead.

Completeness4/5

The sweepstakes domain is thoroughly covered: lifecycle management, participants, groups, rules, drawings, winners, calendar, notes, todos, tickets, surveys, invoices, billing, files, and entry settings. A few minor gaps exist (e.g., no general participant field update, no archive action) but the surface is remarkably complete for its scope.

Resources