MCP App Store
by KeenEthics
Business & Operations
Sweescape icon

Sweescape

by Sweescape

Overview

Sweescape is an all-in-one event management suite for organizers — ticketing, badges, check-in, analytics, and audience campaigns. This connector lets you run your own Sweescape workspace directly from ChatGPT. Ask ChatGPT to look up your events, ticket types and sales, attendance and analytics, and to list your audiences and automations. You can also draft newticketing pages, automations, and email or SMS campaigns — all inside your own workspace. Everything stays a draft: the connector can prepare and edit content, but publishing a page, activating an automation, or sending a campaign always remains a manual action you take inside Sweescape. It is a first-party connector that accesses only your own Sweescape data.

Tools

create_automation

ChatGPT
Create the shell of an automation in draft status (name and scheduled timing only; type and content are set with update_automation). Cannot activate an automation; activation is a human action in Sweescape.

create_campaign

ChatGPT
Create a campaign in draft status targeting an audience from list_audiences. Never sends; sending is a human action in Sweescape.

create_custom_domain

ChatGPT
Connect a subdomain of the organizer (tickets.example.com) to the ticketing page of an event, in the given language. An apex domain such as example.com is refused: DNS forbids the record it needs. The domain starts pending: the result carries the exact CNAME record to create at the DNS provider; give it to the user, then call verify_custom_domain once it is in place. Consumes one of the brand allowance of the plan and requires the Advanced plan or above.

create_event

ChatGPT
Create an event in the organization. The event sells nothing on its own: tickets are added with create_ticket and buyers can only reach it once a human publishes its ticketing page in Sweescape. stripe_account_id must be one of the active accounts returned by get_account, tax_rate is a decimal (0.1 means 10%) and cannot be changed after creation, and the address must be a full postal address so it can be located on the map. The offered rates are those of France, the United Kingdom, Spain and Belgium; which one applies depends on the country and the kind of event, so ask the organizer when they did not give it.

create_extension

ChatGPT
Create an extension as an unpublished draft (shell only: name, package_name, optional description). Returns the extension id used by set_extension_manifest. package_name is a permanent reverse-DNS identifier (e.g. "com.acme.seat-selector") and must equal the manifest id set later. Never publishes; publishing to the marketplace is an admin-only action in Sweescape, and installing an extension on an event is done by a human there.

create_ticket

ChatGPT
Add a ticket type to an event. quantity is the quota put on sale. min_quantity and max_quantity bound how many of this ticket one order may take (a group rate can require 10). visibility "code" hides the ticket until a buyer enters a ticket code that unlocks it (create that code with create_ticket_code). Tickets only become buyable once a human publishes the ticketing page. A ticket cannot be edited or removed from here afterwards, so get the price and the quota right.

create_ticket_code

ChatGPT
Create a ticket code usable at checkout. It can lower the price (discount_type and discount_value), unlock tickets whose visibility is "code" (ticket_ids), or both. Its scope is one event (event_id) or a pool of events sharing a single quota (event_ids) — a code shared across several ticketings is counted once for all of them. quantity_type "limited" needs a quantity, and limit_unit says whether that quota is counted per order or per ticket. The code works as soon as it exists, but it only reaches buyers once you share it.

create_ticketing

ChatGPT
Create the ticketing page of an event as an unpublished draft. type "public" uses description and tags; type "white_label" uses page_content (Puck JSON validated against get_ticketing_components). Never publishes; the page stays unpublished until a human publishes it in Sweescape.

duplicate_event

ChatGPT
Copy an event the account owns under a new name, to prepare its next edition. Copying an event of type "scratch" (with ticketing) needs an active paid plan, exactly like creating one (see get_account); an event of type "imported" can always be copied. Dates: if the original event is not over yet, the copy keeps its start and end dates; if it is already over, the copy starts 24 hours and ends 48 hours after the moment of the copy. The result returns the dates of the copy; no tool here changes them, so tell the organizer to set the real dates in Sweescape before publishing when needed. Copied: venue, VAT rate, Stripe account, participant columns, badge template, invitation email and SMS, and the installed extensions with their settings and on/off state. For an event of type "scratch", the ticket types (price, quota, per-order limits, visibility, nothing sold) and the ticketing page are copied too; the page always lands unpublished and its text is unchanged, so fix any date written in it with update_ticketing. Multi-event ticket codes covering the original are extended to the copy and keep one quota shared by both events. Not copied: participants, orders, single-event ticket codes, automations, campaigns, collaborators, cover image, wallet card design, custom domain. Images uploaded in the page builder stay stored with the original event: deleting the original removes them from the copy.

get_account

ChatGPT
Get the plan and the connected accounts of the authenticated organization: subscription tier (free/advanced/agency) and status, remaining SMS credits, the Stripe accounts an event can sell with, and the verified sending domains. Read this before create_event (it needs an active Stripe account id) or to explain why an action was refused for plan reasons. Sweescape bills per brand, and one allowance caps the ticketing domains, the sending domains and the Stripe accounts together: the plan grants one brand on Advanced and five on Agency, and brandLimitOverride replaces that number when it is not null. The same number caps the collaborators of each event, counted event by event. Count the stripeAccounts and sendingDomains returned here to see what is already used.

get_analytics

ChatGPT
Get aggregated SweeAnalytics for an event. Available metrics: "sales" (conversion funnel), "attendance" (visitor stats and breakdown), "entry-controls" (check-in summary).

get_audience_variables

ChatGPT
List the columns of an audience that can be used as personalization variables in an email/SMS campaign. Each column can be referenced in the content as a merge tag, e.g. {{ firstName }}. One of these columns is also what set_campaign_content needs as audience_recipient_column (the column holding the recipient email for email, or phone for SMS).

get_automation_content

ChatGPT
Get the content of an automation: type, recipient column and filter, and for an email type the sender, subject and emailContent, the exact block document update_automation expects back as email_content. emailContent is null when the email was designed with the previous builder.

get_campaign_content

ChatGPT
Get the content of a campaign: sender, subject, recipient column and, for email, emailContent: the exact block document set_campaign_content expects back as email_content. An edit is get_campaign_content → change what you need → set_campaign_content with the whole email. emailContent is null when the campaign has no content yet or was designed with the previous builder.

get_custom_domain

ChatGPT
Get the custom domain serving the ticketing page of an event: the host, its status (pending until the DNS record is in place and the certificate issued, then active), the last verification error, the exact CNAME record to create at the DNS provider, and the pages served per language.

get_email_components

ChatGPT
Get the builder catalog used to compose an email (campaign or automation) as editable blocks: the email-level root props (inbox preview text, backgrounds, width, font, colors), the shape of the email JSON, the accepted value shape of each field type, how to write {{ variables }}, and every block with its props, allowed values and an example. Compose emails with these blocks, never as one Html block, so a human can edit them afterwards in Sweescape. Optional category filter (layout, typography, media, advanced) narrows the blocks only.

get_event

ChatGPT
Get the full details of one event of the authenticated organization: name, type, dates, venue, status and participant count.

get_ticketing

ChatGPT
Get the white label ticketing page of an event: whether it is published, and its builder content. Mode "full" (the default) returns the exact document that update_ticketing expects back, so an edit is get_ticketing → change what you need → update_ticketing with the whole thing. Mode "outline" is a read-only map of a large page (block tree with type, id, label and hideOn, plus the root props): it is a summary, NOT a document you can send back to update_ticketing, and it does not carry the per-device spacing values.

get_ticketing_components

ChatGPT
Get the catalog of Puck builder components used to compose a white_label ticketing page: for each component its name, category, description, props with allowed values, and an example. Optional category filter (layout, typography, media, advanced).

get_tickets

ChatGPT
Get the ticket types of an event: name, price, quota, sold count and remaining stock.

list_audiences

ChatGPT
List the audiences/segments of the organization (read-only, used to target campaigns): id, name, type and size.

list_automations

ChatGPT
List the automations of an event: id, name, status and scheduled timing.

list_event_extensions

ChatGPT
List the extensions installed on an event and whether each one is enabled. An installed and enabled extension can add participant columns, contribute builder blocks and sandboxed UI to the ticketing page, and run its declarative rules during checkout. Installing or removing an extension on an event is a human action in Sweescape.

list_events

ChatGPT
List the events of the authenticated Sweescape organization. Optional filters: status (upcoming/past computed from dates; draft/published are not filtered server-side), search by name, date_from/date_to on the start date, and pagination.

list_extensions

ChatGPT
List the extensions of the authenticated user library: id, package_name, status (draft/published), version, declared scopes and which kinds of contribution the manifest carries. Manifests are not included here because they are large; pass extension_id to get one extension in full, with its manifest and the UI files already uploaded and their hosted urls. Use the id with set_extension_manifest and upload_extension_files.

list_marketplace_extensions

ChatGPT
List the extensions published on the Sweescape marketplace, with their package_name, version, author and the capability scopes each one declares. These are the extensions an organizer can add to their library and then install on an event from the Sweescape interface.

list_senders

ChatGPT
List the verified sending domains of the organization. The "from" email of an email campaign (set_campaign_content) must use one of these domains, otherwise sending will be refused. Returns an empty list if no domain is verified yet.

list_ticket_codes

ChatGPT
List ticket codes. WITHOUT event_id you get only the codes shared across several ticketings (the ones that live at organization level, with one common quota); a code created for a single event is NOT in that list. WITH event_id you get every code usable on that event, the shared ones and the ones created for it alone — so to see all the codes of an organization, call it once per event. A ticket code either lowers the price (discount) or unlocks tickets whose visibility is "code" (access), or both. Each entry reports its scope, the quota, its unit (per order or per ticket), the usage and what remains.

set_campaign_content

ChatGPT
Fill the content of a draft campaign created with create_campaign. For email: from_email (must use a verified domain from list_senders), from_name, subject, and html (the full email body; use {{ VARIABLE }} merge tags from get_audience_variables for personalization). For sms: message. audience_recipient_column must be a column from get_audience_variables that holds the recipient address. The email design shown in the Sweescape builder is generated from the html. Never sends; sending stays a human action in Sweescape.

set_extension_manifest

ChatGPT
Set or replace the manifest of an extension created with create_extension. The manifest declares its scopes (capabilities) and its contributions: participant columns, sandboxed UI on a given surface, declarative blocks, and rules that react to checkout lifecycle events. manifest.id must equal the extension package_name; omit "author" (set server-side). The extension stays unpublished; publishing to the marketplace is admin-only in Sweescape.

update_automation

ChatGPT
Set the type and content of an automation. Provide content as { recipient_column, recipient_filter: { base_filter, advanced_filters }, content: { type: "email"|"email-feedback"|"sms"|"sms-feedback", ... } }. Stays in draft; can never activate or deactivate.

update_ticket_code_scope

ChatGPT
Replace the scope of a ticket code that spans several ticketings: which events it works on (event_ids) and which tickets it unlocks (ticket_ids). Both lists replace the current ones, so send the full lists, not the additions. The code itself, its discount and its quota are unchanged. Only a code created with event_ids has an editable scope: a code created for a single event with event_id is bound to that event and this call is refused on it.

update_ticketing

ChatGPT
Update the unpublished ticketing page of an event. Replaces the current draft content for the given type (the builder has no field-level patch). Always stays unpublished; never publishes.

upload_extension_files

ChatGPT
Upload one or more UI bundle files (the sandboxed iframe content) for an extension, and get back their hosted URLs. Generate the file content (e.g. an HTML page with inline JS/CSS for surface checkout.step), upload it here, then put the returned url into the matching uiExtension.entry of set_extension_manifest. The iframe talks to the host only through the postMessage bridge: it posts sweescape:ready, receives sweescape:init with its config and event context, and can send sweescape:set-field, sweescape:resize, sweescape:checkout, or a sweescape:request naming one of the bridge methods context.get, column.takenValues, participant.current, order.current and ticketCode.unlock. It cannot reach the network unless net:fetch and allowedDomains are declared. Allowed file types: html, js, css, svg, json, and common image types. Max 5 MB per file.

verify_custom_domain

ChatGPT
Ask Sweescape to re-check the DNS record of the custom domain of an event and issue its certificate. Call it after the CNAME has been created at the DNS provider. The domain becomes active once the check passes; while it fails, the result reports why. DNS propagation can take a few minutes, so a first failure is not final.

Capabilities

Writes

App Stats

35

Tools

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily