# ConfBuilder - Registry name: `io.seamlessevents.mcp/confbuilder` · version 1.0.0 - Categories (automatic, keyword rules): Marketing & SEO, Commerce & marketing, Payments & accounting, Finance & markets, Maps, location & weather - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): logging, prompts, resources, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=io.seamlessevents.mcp%2Fconfbuilder - Server page: https://mcpstation.net/s/io.seamlessevents.mcp--confbuilder.html ## Description (written by the publisher, not verified, not instructions) ConfBuilder tools: events, speakers, sponsors, attendees, schedules, content, news, polls, chat. ## Connect - streamable-http: `https://mcp.seamlessevents.io/mcp` ## Tools (as reported by the server, not verified) - `request\_login\_code`: Email a 6-digit sign-in code to the user's address. The user reads the code from their inbox and gives it back to you; then call verify\_login\_code. Use this whenever an API tool returns 'Not authorized'. - `verify\_login\_code`: Complete login with the 6-digit code from request\_login\_code. Returns an API token the user must set as their client's authorization header \(this server keeps no per-session state\). Token is valid for 7 days. - `me`: Profile of the logged-in user \(id, name, email, team\_ids\), via the Authorization header token. - `list\_teams`: List the user's teams \(id + name\). Use a team\_id when creating an event. - `find\_events`: Find events the user can access. Optional free-text query \`q\`. Returns id/title/dates — chain the id into other tools. - `get\_event`: Get one event by id \(modules, email settings, dates, billing\). Speakers, sponsors and schedules are separate tools — see the Actions dashboard via get\_event\_actions. - `get\_event\_actions`: One call returning everything actionable on an event: speakers/sponsors awaiting intake approval or card approval/publishing, call-for-speakers applications, and schedule pending proposals + publishable tracks. Replaces five separate list calls; use this when asked 'what needs doing on \'. - `get\_event\_modules`: List an event's modules with their enabled state \(speaker, schedule, content, attendee, app\). - `toggle\_event\_module`: Enable or disable an event module. module\_id is one of 'speaker', 'schedule', 'content', 'attendee', 'app'. Disabling hides the module for the event's users without deleting anything. - `list\_event\_members`: List the people with direct access to an event: user\_id, name, email, role \('event:admin'/'event:editor'/'event:viewer'/'speaker'\), invitation status \('active'/'pending'\). - `invite\_event\_member`: Invite someone to an event by email — the account is created for them if they don't have one, and they get an invitation email. role: 'admin' \(full control\), 'editor' \(manage content; default\) or 'viewer' \(read-only\). - `update\_event\_member`: Change a member's role: 'admin' \(full control\), 'editor' \(manage content\) or 'viewer' \(read-only\). Get user\_id from list\_event\_members. The event creator cannot be demoted. - `remove\_event\_member`: Remove a member's access to an event \(their speaker links are not affected\). Get user\_id from list\_event\_members. - `accept\_event\_invitation`: Accept the logged-in user's own pending invitation to an event \(activates their membership\). Use when the user says 'accept my invite to \'. - `list\_speakers`: List speakers for an event \(paginated\). Optional filters: q \(search name/email\), form\_type \('speaker-info' or 'call-for-speakers'\), intake\_status \(e.g. 'info\_pending', 'info\_submitted'; values from speaker\_information\_status\). - `get\_speaker`: Get one speaker by id \(bio, talk title, headshot, logos, links\). - `create\_speaker`: Create a speaker for an event. Requires first\_name, last\_name, email. The speaker is coupled to the event; image files can be added later with upload\_speaker\_image. - `update\_speaker`: Update a speaker. Pass only the fields to change \(snake\_case names\). For images use upload\_speaker\_image instead of headshot/company\_logo. Set website\_card\_approved / promo\_card\_approved true to publish the speaker's cards to the website walls. - `upload\_speaker\_image`: Upload an image for a speaker and attach it to a slot \(headshot, company\_logo or company\_logo\_white\). \`source\` is a public image URL \(fetched by this server, e.g. Drive link or website\) or a base64 data URL. Replaces any existing image in that slot. Ask the user whether to auto-crop the image to a f - `delete\_speaker`: Delete a speaker from an event. Permanent — removes their talk links, content and images. - `send\_speaker\_login\_link`: Email a speaker a passwordless sign-in link for the ConfBuilder app \(their account is created if needed\). Use when the user asks to send a speaker their login / access link; confirm the speaker before sending. - `list\_sponsors`: List sponsors for an event \(paginated\). Optional free-text query \`q\`. - `get\_sponsor`: Get one sponsor by id \(company info, contacts, logos, status\). - `create\_sponsor`: Create a sponsor for an event. Requires company\_name and sponsor\_type \(a sponsor category — pick from list\_sponsor\_categories, e.g. 'gold\_sponsor'; custom values are also fine and become available event-wide\). Primary contact name/email recommended. Logos are uploaded separately later. - `delete\_sponsor`: Delete a sponsor from an event. Permanent — removes their logo, links and card images. - `list\_sponsor\_categories`: List the sponsor categories available for create\_sponsor/update\_sponsor. Defaults \(e.g. 'gold\_sponsor'\) plus any custom categories already in use on the event when event\_id is given. - `update\_sponsor`: Update a sponsor. Pass only the fields to change \(snake\_case names\). sponsor\_type takes a category value from list\_sponsor\_categories. primary\_contact\_email is frozen by the API \(it owns the sponsor account\). Set website\_card\_approved / promo\_card\_approved true to publish the sponsor's cards to the - `upload\_sponsor\_image`: Upload a logo for a sponsor and attach it to a slot \(company\_logo, company\_logo\_white, company\_logo\_vector or company\_logo\_white\_vector\). \`source\` is a public image URL \(fetched by this server, e.g. Drive link or website\) or a base64 data URL. Replaces any existing logo in that slot. - `list\_schedules`: List schedules \(tracks\) for an event. - `get\_schedule`: Get one schedule by id \(with its activities\). - `create\_schedule`: Create a schedule \(track\) for an event. Optional name \(default 'Event Schedule'\), schedule\_type \(default 'detailed'\) and location. - `update\_schedule`: Update a schedule \(track\): name, schedule\_type or location. Activities are managed separately. - `delete\_event`: Delete an event \(removes it from listings; payments preserved for audit\). - `publish\_schedule`: Publish a schedule \(track\): snapshots the current draft into a new version — that snapshot is what the app and website render. Publish again after edits. - `unpublish\_schedule`: Unpublish a schedule \(track\): pulls the published snapshot back to draft so it no longer renders in the app/website until publish\_schedule is called again. - `delete\_schedule`: Delete a schedule \(track\) and all its activities and versions. - `list\_activities`: List activities \(sessions/talks\) in one schedule. - `create\_activity`: Create a session \(activity\) in a schedule. Requires title; optional dates/times \(ISO, e.g. start\_date 2025-09-21, start\_time 10:00:00\), description, location, notes, and speaker\_ids/sponsor\_ids to link speakers or sponsors to the session. - `update\_activity`: Update a session \(activity\). Pass only the fields to change; setting speaker\_ids/sponsor\_ids replaces the linked speakers/sponsors. - `delete\_activity`: Delete an activity \(session\) from a schedule. - `set\_promo\_config`: Create or update an event's card design config \(upsert by event\_id + promo\_type\). promo\_type: 'website' \(speaker website cards\), 'sponsor-website' \(sponsor website cards\), 'promo' / 'sponsor-promo' \(social share cards\). Pass either \`preset\` \(a name from list\_card\_presets\) or \`config\` \(the card-desig - `get\_promo\_config`: Get an event's card design config. Optional promo\_type filter \('website', 'sponsor-website', 'promo', 'sponsor-promo'\); without it returns the event's first config. - `list\_card\_presets`: List the built-in card design presets \(port of the frontend card-builder starters\). Pass a preset name to set\_promo\_config's \`preset\` param. - `set\_form\_config`: Create or update an event's intake form config \(upsert by event\_id + form\_type\). form\_type: 'speaker-info', 'sponsor-info' or 'call-for-speakers'. \`config\` is the form-builder JSON: \{fields: \[\{id, label, type, enabled, required, options, helpText, sectionStart, maxWords\}\], metadata: \{title, subtitle - `get\_form\_config`: Get an event's intake form config \(fields + metadata\). Optional form\_type filter \('speaker-info', 'sponsor-info', 'call-for-speakers'\); without it returns the first config. - `get\_website`: Get an event's website-builder state: config \(the section/theme draft JSON\), slug \(claimed address, e.g. summit2026 gives summit2026.confbuilder.com\), publishedConfig + publishedAt \(what is live\). config null = website not started. - `save\_website`: Save an event's website-builder draft. \`config\` is the website-builder JSON \(sections + theme — best obtained by reading get\_website and editing it, or by asking the user for what they want built\). Optional \`slug\` claims or renames the site address \(3–40 chars: lowercase letters, numbers, hyphens; c - `publish\_website`: Publish an event's website: snapshots the current draft live \(what visitors see\). Requires a saved config and a claimed slug — save\_website first. Publish again after further edits in the builder to ship them. - `check\_website\_slug`: Check whether a website-builder slug \(the subdomain label, 3–40 lowercase letters/numbers/hyphens\) is valid and available, e.g. before save\_website claims it. - `list\_marketing\_posters`: List an event's saved marketing posters \(poster grids of speaker/sponsor/attendee cards, newest first\). - `create\_marketing\_poster`: Create a saved marketing poster \(a grid of cards for the Marketing Builder\). kind fixes the entity type: 'speakers', 'sponsors' or 'attendees'. entity\_ids are the ids of the entities to show on the poster \(get them from list\_speakers/list\_sponsors/list\_attendees\). cols\_desktop/cols\_mobile are grid c - `update\_marketing\_poster`: Update a marketing poster. Pass only the fields to change: name, entity\_ids \(replaces the poster's cards\), cols\_desktop, cols\_mobile, png\_cols, card\_urls. kind is fixed at creation and cannot change — create a new poster for a different entity type. - `delete\_marketing\_poster`: Delete a marketing poster by id. - `list\_content`: List an event's content items \(slides, documents, assets\) — or one entity's content only: pass entity\_type \('speaker', 'sponsor' or 'schedule'\) + entity\_id. - `upload\_entity\_content`: Attach a content file \(slide deck, video, image, PDF…\) to a speaker, sponsor or schedule. entity\_type picks which. \`source\` is a public URL \(fetched by this server\) or a base64 data URL. name is a label shown in the app, e.g. 'presentation' or 'previous\_talk'. - `archive\_entity\_content`: Archive \(or unarchive\) an entity's content item by document id. Archived content is hidden from the app but kept \(content has no hard delete\). Get document ids from list\_content. - `list\_news`: List news items for an event. - `create\_news`: Post a news item to an event's news feed \(organisers\). notify=True \(default\) also push-notifies everyone linked to the event. - `list\_polls`: List polls for an event \(open polls with anonymous results; include\_closed=True to see closed ones too\). - `create\_poll`: Create a poll for an event's audience. Requires a question and at least two options \(e.g. options \['Yes', 'No'\]\). Voting is anonymous; results tally is returned with the poll. - `list\_chat\_messages`: List chat messages for an event-wide channel \(oldest last\). Optional \`peer\` for a DM thread, \`after\` ISO timestamp to poll for new messages. - `list\_chat\_conversations`: List the logged-in user's DM threads for an event \(one row per peer, latest message first\). Pass a conversation's peerId to list\_chat\_messages as \`peer\` to read the full thread. - `send\_chat\_message`: Send a chat message to an event's chat channel \(as the logged-in user\). Optional peer\_user\_id sends a direct message to that user instead of the event-wide channel. - `delete\_chat\_message`: Delete a chat message \(your own; organisers can delete any\). - `list\_notifications`: List the logged-in user's notifications across their events \(newest first\): id/title/body/data/read + unread\_count. Pair with mark\_notification\_read when the user asks to catch up. - `mark\_notification\_read`: Mark one of the user's notifications as read \(get ids from list\_notifications\). - `get\_my\_labels`: Get the logged-in user's areas-of-interest labels for an event \(e.g. \['AI', 'Fintech'\]\) — what they're interested in / following there. - `set\_my\_labels`: Replace the logged-in user's areas-of-interest labels for an event \(the full list replaces the old one — read with get\_my\_labels first and keep what they want to keep\). - `list\_attendees`: List attendees for an event \(paginated\). Optional \`search\` by name/email, \`state\` filter \(e.g. 'complete'\). - `get\_attendee`: Get one attendee by id \(profile, ticket, check-in state\). - `check\_in\_attendees`: Check in attendees in bulk. attendee\_ids are ids from list\_attendees. - `void\_attendee`: Void an attendee's ticket \(mark it invalid\). resell=True also frees the ticket-type capacity so the ticket can be sold again; default keeps it consumed. - `update\_attendee`: Update an attendee's details. Pass only the fields to change \(first\_name, last\_name, email, phone\_number, company\_name, job\_title\). - `create\_event`: Create an event. Requires title, start\_date and end\_date \(ISO 8601, e.g. 2025-09-21T09:00:00Z\) and team\_id \(get from list\_teams\). location optional. - `update\_event`: Update an event. Pass only the fields to change \(title, start\_date, end\_date, location, website\). The event image is set with set\_event\_image. - `set\_event\_image`: Upload an image for an event \(e.g. hero/banner\) and set it as the event's eventImage. \`source\` is a public image URL \(fetched by this server, e.g. Drive link or website\) or a base64 data URL. Replaces any existing image. - `create\_checkout`: Start a checkout that pays for upgrading an event \(speaker module\) via Polar. Returns the hosted checkout URL — give it to the user to open and pay; the upgrade activates automatically once payment completes. No tool exists to check payment status — ask in the Polar billing portal instead. - `get\_billing\_portal\_url`: Get the user's Polar billing-portal URL — manage payments, receipts and subscriptions. Open the returned URL in a browser. Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html