ConfBuilder
ConfBuilder tools: events, speakers, sponsors, attendees, schedules, content, news, polls, chat.
| Endpoint | https://mcp.seamlessevents.io/mcp (streamable-http) |
|---|---|
| Registry version | 1.0.0 |
| Now | 78 tools · grade C (65) · pin ts_43d70b7990d0f3b4243e21e65bf53306 · protocol 2025-06-18 |
| First / last listed | 2026-11-13 00:27 UTC / 2026-11-13 00:27 UTC |
| Grade over time | 2026-11-13: C (65), 78 tools |
Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.
Tools: request_login_code verify_login_code me list_teams find_events get_event get_event_actions get_event_modules toggle_event_module list_event_members invite_event_member update_event_member remove_event_member accept_event_invitation list_speakers get_speaker create_speaker update_speaker upload_speaker_image delete_speaker send_speaker_login_link list_sponsors get_sponsor create_sponsor delete_sponsor list_sponsor_categories update_sponsor upload_sponsor_image list_schedules get_schedule create_schedule update_schedule delete_event publish_schedule unpublish_schedule delete_schedule list_activities create_activity update_activity delete_activity set_promo_config get_promo_config list_card_presets set_form_config get_form_config get_website save_website publish_website check_website_slug list_marketing_posters create_marketing_poster update_marketing_poster delete_marketing_poster list_content upload_entity_content archive_entity_content list_news create_news list_polls create_poll list_chat_messages list_chat_conversations send_chat_message delete_chat_message list_notifications mark_notification_read get_my_labels set_my_labels list_attendees get_attendee check_in_attendees void_attendee update_attendee create_event update_event set_event_image create_checkout get_billing_portal_url
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'. params: email* |
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. params: email*, code* |
me | Profile of the logged-in user (id, name, email, team_ids), via the Authorization header token. params: none |
list_teams | List the user's teams (id + name). Use a team_id when creating an event. params: none |
find_events | Find events the user can access. Optional free-text query `q`. Returns id/title/dates — chain the id into other tools. params: q, page, page_size |
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. params: event_id* |
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 <event>'. params: event_id* |
get_event_modules | List an event's modules with their enabled state (speaker, schedule, content, attendee, app). params: event_id* |
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. params: event_id*, module_id*, enabled* |
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'). params: event_id* |
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). params: event_id*, email*, role, name |
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. params: event_id*, user_id*, role* |
remove_event_member | Remove a member's access to an event (their speaker links are not affected). Get user_id from list_event_members. params: event_id*, user_id* |
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 <event>'. params: event_id* |
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). params: event_id*, q, intake_status, form_type, page, page_size |
get_speaker | Get one speaker by id (bio, talk title, headshot, logos, links). params: event_id*, speaker_id* |
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. params: event_id*, first_name*, last_name*, email*, company_name, company_role, linkedin, bio, talk_title, talk_description, form_type |
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. params: event_id*, speaker_id*, first_name, last_name, company_name, company_role, linkedin, bio, talk_title, talk_description, internal_notes, form_type, website_card_approved, promo_card_approved, embed_enabled |
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 face (face_crop) before uploading if they haven't said. params: event_id*, speaker_id*, source*, slot, face_crop |
delete_speaker | Delete a speaker from an event. Permanent — removes their talk links, content and images. params: event_id*, speaker_id* |
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. params: event_id*, speaker_id* |
list_sponsors | List sponsors for an event (paginated). Optional free-text query `q`. params: event_id*, q, page, page_size |
get_sponsor | Get one sponsor by id (company info, contacts, logos, status). params: event_id*, sponsor_id* |
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. params: event_id*, company_name*, sponsor_type*, primary_contact_name, primary_contact_email, primary_contact_phone, tagline, description, website_url, linkedin_url, form_type |
delete_sponsor | Delete a sponsor from an event. Permanent — removes their logo, links and card images. params: event_id*, sponsor_id* |
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. params: event_id |
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 website walls. params: event_id*, sponsor_id*, company_name, tagline, description, website_url, linkedin_url, sponsor_type, primary_contact_name, primary_contact_phone, sponsor_information_status, internal_notes, website_card_approved, promo_card_approved, embed_enabled |
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. params: event_id*, sponsor_id*, source*, slot |
list_schedules | List schedules (tracks) for an event. params: event_id* |
get_schedule | Get one schedule by id (with its activities). params: event_id*, schedule_id* |
create_schedule | Create a schedule (track) for an event. Optional name (default 'Event Schedule'), schedule_type (default 'detailed') and location. params: event_id*, name, schedule_type, location |
update_schedule | Update a schedule (track): name, schedule_type or location. Activities are managed separately. params: event_id*, schedule_id*, name, schedule_type, location |
delete_event | Delete an event (removes it from listings; payments preserved for audit). params: event_id* |
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. params: event_id*, schedule_id* |
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. params: event_id*, schedule_id* |
delete_schedule | Delete a schedule (track) and all its activities and versions. params: event_id*, schedule_id* |
list_activities | List activities (sessions/talks) in one schedule. params: event_id*, schedule_id* |
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. params: event_id*, schedule_id*, title*, start_date, end_date, start_time, end_time, description, location, notes, speaker_ids, sponsor_ids |
update_activity | Update a session (activity). Pass only the fields to change; setting speaker_ids/sponsor_ids replaces the linked speakers/sponsors. params: event_id*, schedule_id*, activity_id*, title, start_date, end_date, start_time, end_time, description, location, notes, speaker_ids, sponsor_ids |
delete_activity | Delete an activity (session) from a schedule. params: event_id*, schedule_id*, activity_id* |
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-design JSON the card builder saves: templateUrl, bgColor, canvasWidth/canvasHeight, field descriptors). e params: event_id*, promo_type*, config, preset, embed_max_card_width, embed_background_color, embed_speaker_order, embed_sponsor_order, embed_expandable, embed_expand_count |
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. params: event_id*, promo_type |
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. params: none |
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, showTitle, shareCaption, welcomeInfo: {tabLabel, heading, body}}}. params: event_id*, form_type*, config* |
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. params: event_id*, form_type |
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. params: event_id* |
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; check with check_website_slug first — taken slugs fail with 409, and old slugs stay reserved forever params: event_id*, config*, slug |
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. params: event_id* |
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. params: slug* |
list_marketing_posters | List an event's saved marketing posters (poster grids of speaker/sponsor/attendee cards, newest first). params: event_id* |
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 columns; png_cols is the cards-per-row used for PNG export; card_urls carries hosted card PNGs ({fp: params: event_id*, kind*, name*, entity_ids, cols_desktop, cols_mobile, png_cols, card_urls |
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. params: event_id*, poster_id*, name, entity_ids, cols_desktop, cols_mobile, png_cols, card_urls |
delete_marketing_poster | Delete a marketing poster by id. params: event_id*, poster_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. params: event_id*, entity_type, 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'. params: event_id*, entity_type*, entity_id*, name*, source* |
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. params: event_id*, entity_type*, entity_id*, document_id*, archive |
list_news | List news items for an event. params: event_id* |
create_news | Post a news item to an event's news feed (organisers). notify=True (default) also push-notifies everyone linked to the event. params: event_id*, title*, body, notify |
list_polls | List polls for an event (open polls with anonymous results; include_closed=True to see closed ones too). params: event_id*, include_closed |
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. params: event_id*, question*, options* |
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. params: event_id*, limit, after, peer |
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. params: event_id* |
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. params: event_id*, body*, peer_user_id |
delete_chat_message | Delete a chat message (your own; organisers can delete any). params: event_id*, message_id* |
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. params: none |
mark_notification_read | Mark one of the user's notifications as read (get ids from list_notifications). params: notification_id* |
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. params: event_id* |
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). params: event_id*, labels* |
list_attendees | List attendees for an event (paginated). Optional `search` by name/email, `state` filter (e.g. 'complete'). params: event_id*, search, state, page, page_size |
get_attendee | Get one attendee by id (profile, ticket, check-in state). params: event_id*, attendee_id* |
check_in_attendees | Check in attendees in bulk. attendee_ids are ids from list_attendees. params: event_id*, attendee_ids* |
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. params: event_id*, attendee_id*, resell |
update_attendee | Update an attendee's details. Pass only the fields to change (first_name, last_name, email, phone_number, company_name, job_title). params: event_id*, attendee_id*, 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. params: title*, start_date*, end_date*, team_id*, location, website |
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. params: event_id*, title, start_date, end_date, location, website |
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. params: event_id*, source* |
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. params: event_id*, locale, currency |
get_billing_portal_url | Get the user's Polar billing-portal URL — manage payments, receipts and subscriptions. Open the returned URL in a browser. params: none |
Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.