DocsDevelopersMCP server

MCP server

Let Claude, ChatGPT, Codex or any other AI assistant work on your event with you — ask for what you want in chat, and it uses Trackstage on your behalf.

Connect your AI assistant

Do it from inside the app: open the Copilot screen (in your event’s sidebar) and click Connect MCP in the top-right corner. It walks you through a one-click connection for Claude, ChatGPT, Codex and other assistants — with the right link and the right steps for each one, so there is nothing to get wrong.

The Copilot screen with the Connect MCP button in the top-right corner of the header.
The Copilot screen — Connect MCP sits in the top-right corner.

Or add it yourself

Every assistant asks for the same thing — one address. This is it:

Your MCP address
https://dev-api.trackstage.app/mcp

In Claude or ChatGPT: Settings → Connectors → add a custom connector, paste the address, and sign in with your Trackstage account when your browser opens. Nothing else to fill in — no key, no config file.

Assistants that run in a terminal (Claude Code, Codex, Cursor) want the same address plus an API key instead of the browser sign-in. Create one under Account settings → API & MCP, then use Connect MCP on the Copilot screen — it prints the exact command or config for the assistant you pick, with your address already filled in.

However it connects, the assistant acts as you: it can see and change exactly what your account can, in the workspaces you belong to.

Say this first

  • “Summarise my event.”
  • “Show me everything in the accept queue.”
  • “Auto-fill the agenda.”
  • “Which speakers still owe me slides?”
  • “Send a reminder to speakers with open tasks.”

All 85 tools

Everything an assistant can do in Trackstage, in one list.

Only looks things up — runs right awayCreates something — asks you firstChanges or deletes something — asks you first

Workspaces & events

  • whoami

    Returns the Trackstage account this connection is authenticated as — name, email, and the workspaces it belongs to with its role in each.

  • list_workspaces

    Lists every Trackstage workspace (organization) you belong to, your role in each (owner/admin/member), and how many events each one holds.

  • list_events

    Lists every event you can access, across all your workspaces, with each event's id, slug, dates, venue and timezone.

  • create_event

    Creates a new event in one of your workspaces.

    Requires name, confirm

  • update_event

    Updates an event's details (name, dates, venue, timezone, type, description, website) and its speaker-portal toggles: alwaysShowTasks (tasks tab visible even when empty), allowSubmissionEdits (speakers may edit submitted talks), extendTaskDeadlines (overdue tasks stay completable).

    Requires event, confirm

  • delete_event

    Permanently deletes an event and EVERYTHING belonging to it: every submission, speaker, CFP form, task, uploaded file, email template and outbox row.

    Requires event, confirmName, confirm

  • get_event_overview

    DEPRECATED ALIAS of get_event_summary, kept so existing scripts keep working; it returns exactly the same payload.

    Requires event

  • get_event_summary

    THE status call, and the one that used to be split in two (it absorbed get_event_overview).

    Requires event

  • list_workspace_members

    Lists everyone in a workspace: email, role (owner/admin/member), whether they've accepted their invite, and their event scope (null means every event).

  • invite_workspace_member

    Invites a teammate to the workspace by email — they get an invite email and their access starts the moment they sign up with that address.

    Requires email, role, confirm

  • update_workspace

    Renames a workspace and/or changes its address (the first segment of every app and public link).

    Requires confirm

  • update_workspace_member

    Changes a workspace member's role (owner only) and/or their event scope (admin+; pass an empty eventRefs array to give them every event again).

    Requires memberId, confirm

  • remove_workspace_member

    Removes a member from the workspace — their access ends immediately.

    Requires memberId, confirm

CFP forms

  • list_forms

    Lists the call-for-papers forms on an event with their open/closed status, close date, public submission URL, and how many submissions and drafts each has collected.

    Requires event

  • get_form

    Returns a form in full: every question (type, required/enabled, options, conditional showIf rules, which one routes to tracks), the participant configuration, and the submission settings.

    Requires form

  • create_form

    Creates a new call-for-papers form on an event, pre-filled with the standard question set (title, description, format, track, level, language, tags) and speaker fields.

    Requires event, name, confirm

  • update_form

    Edits the parts of a CFP form that update_form_settings doesn't: the public title, page heading and welcome message, the addresses notified on each submission, and the participant rules (speaker min/max, chairperson/moderator roles, confirmation email).

    Requires form, confirm

  • update_form_settings

    Opens or closes a CFP form, sets or clears its close date, and updates submission settings (per-user limit, drafts allowed, reminder emails, success message).

    Requires form, confirm

  • manage_form_question

    Edits the questions on the event's CFP forms — the same custom-field model the form builder uses.

    Requires event, action, confirm

  • get_public_form_link

    Returns the shareable public submission URL for a form and whether it is currently accepting submissions.

    Requires form

  • delete_form

    Permanently deletes a call-for-papers form.

    Requires form, confirm

Submissions & decisions

  • list_submissions

    Lists submissions (abstracts and sessions) for an event, optionally filtered by status, track name, or a free-text search across titles, descriptions and speaker names/emails.

    Requires event

  • get_submission

    Returns one submission in full: description, every form answer, participants with roles and emails, uploaded files with their approval state, and review scores (average plus evaluator comments).

    Requires submissionId

  • update_submission

    Edits a submission's content and classification: title, description, format, level, language, tags, duration, its answers to custom form questions (answers merge — only the keys you pass change), track (pass a track id from list_field_options resource "tracks", or "" to clear), and publicVisible (false embargoes it from the public programme without touching its status).

    Requires submissionId, confirm

  • set_submission_status

    Moves a submission along the pipeline.

    Requires submissionId, status, confirm

  • commit_decision_queue

    Commits every submission staged in the accept or decline queue: flips them to accepted/declined and QUEUES REAL DECISION EMAILS to their speakers (accepted speakers also get their onboarding tasks created).

    Requires event, queue, confirm

  • add_manual_session

    Adds a programme item that never came through the CFP — a sponsor slot, keynote, break or invited talk.

    Requires event, title, confirm

  • delete_submission

    Soft-deletes a submission: it leaves every list, board and public page but sits in the trash and can be brought back with restore_submission.

    Requires submissionId, confirm

  • list_trash

    Everything soft-deleted on the event, newest deletion first, with the date it went.

    Requires event

  • restore_submission

    Brings a soft-deleted submission back from the trash with its status, participants and files intact.

    Requires event, submissionId, confirm

  • add_participant

    Attaches a person to a submission with a role (speaker, chairperson or moderator).

    Requires submissionId, speaker, confirm

  • remove_participant

    Detaches a person from a submission's line-up.

    Requires submissionId, speaker, confirm

Agenda

  • get_agenda

    The programme itself — WHICH session is in which room at what time.

    Requires event

  • schedule_session

    Places an accepted session in a room at a time.

    Requires submissionId, room, startsAt, confirm

  • unschedule_session

    Removes a session from its agenda slot and returns it to the unscheduled tray.

    Requires submissionId, confirm

  • auto_place_sessions

    Greedily fills the agenda with every accepted-but-unscheduled session, skipping any slot that would double-book a room or a speaker.

    Requires event, confirm

  • set_agenda_published

    The public go-live gate: published: true puts the accepted, scheduled programme on the event's public page (and its .ics feed and embeds); false takes it back down to "Schedule coming soon".

    Requires event, published, confirm

Speakers

  • list_speakers

    The confirmed speaker roster: everyone attached to an accepted session, their sessions, their outstanding onboarding tasks with due dates, and what's still missing from their profile (bio, headshot, slides).

    Requires event

  • get_speaker_portal_link

    Returns the private magic link that signs one speaker straight into their portal (no password).

    Requires event, speaker

  • add_speaker

    Adds a person to the event by hand — a keynote you invited, a panelist someone emailed you about.

    Requires event, email, confirm

  • update_speaker

    Edits a speaker's profile from the organizer side: name, job title, company, bio, pronouns, links, workflow status (invited/confirmed/dropped) and publicVisible (false hides them from every public surface — the embargo toggle).

    Requires event, speaker, confirm

  • remove_speaker

    Deletes a person from the event along with their tasks, uploads and headshot.

    Requires event, speaker, confirm

  • bulk_add_speakers

    Imports up to 500 speakers in one call — the CSV-import path.

    Requires event, rows, confirm

Speaker tasks

  • list_tasks

    The outstanding-tasks dashboard as a call: every task on the event with its speaker, kind, due date and completion state.

    Requires event

  • assign_task

    Assigns an onboarding task to one or more speakers — it appears in their portal immediately.

    Requires event, speakers, title, confirm

  • update_task

    Edits one task: retitle it, rewrite its instructions, move its due date, or set completed: true/false to mark it done or reopen it (marking done is normally the speaker's job in the portal — do it here when they confirmed out-of-band).

    Requires event, taskId, confirm

  • remove_task

    Deletes one onboarding task, retracting it from that speaker's portal — the inverse of assign_task, for a task assigned by mistake or no longer needed.

    Requires taskId, confirm

  • list_task_library

    Lists the event's reusable task library — the wording an organizer saved once and assigns all season, with each entry's id, title, kind and instructions.

    Requires event

  • save_task_template

    Saves a reusable task into the event's library (or updates it, matching on the title — saving twice edits the wording rather than creating a near-duplicate).

    Requires event, title, confirm

  • assign_task_from_template

    Assigns a task from the library to one or more speakers without retyping it — the saved wording is copied onto each speaker's task, so editing the library later never rewrites tasks already sent.

    Requires template, speakers, confirm

  • delete_task_template

    Removes a saved task from the event's reusable library.

    Requires template, confirm

  • send_reminders

    Queues a reminder email to every speaker with incomplete tasks, using the event's reminder template.

    Requires event, confirm

Files & review

  • list_files

    The event's files library: everything speakers uploaded (and organizers filed for them), with version, approval status (pending / approved / changes_requested), review note, the speaker, and the session or task it belongs to.

    Requires event

  • review_file

    The file review gate: sets a file to approved (public surfaces may expose it), changes_requested (the speaker's upload task reopens so they see it needs another pass — add a reviewNote saying what to fix), or back to pending.

    Requires fileId, approvalStatus, confirm

  • delete_file

    Permanently deletes one uploaded file — the row and the stored bytes.

    Requires fileId, confirm

Email

  • list_templates

    Lists the event's email templates (accepted, declined, waitlisted, reminder, confirmation) with their subject, a 200-character body preview, and whether each has been customised or is still the built-in default.

    Requires event

  • get_template

    Returns one email template in full — subject and complete body, and whether it is customised for this event or still the built-in default.

    Requires event, key

  • update_template

    Rewrites an email template's subject and/or body for this event.

    Requires event, key, confirm

  • list_outbox

    Shows what Trackstage has emailed (or is about to email) for this event: recipient, subject, template, delivery status and any error.

    Requires event

  • send_test_email

    Renders a template with real event data and sends it to you (or an address you name) so you can proof it before it goes to speakers.

    Requires event, key, confirm

  • count_bulk_audience

    Counts exactly who a bulk email would reach before anything is sent: audiences are all_speakers, accepted (everyone on an accepted session), incomplete_tasks (speakers with open tasks), or manual (the speakers you name).

    Requires event, audience

  • send_bulk_email

    Sends a one-off email to an audience — "the venue changed", "here's your green-room time".

    Requires event, audience, subject, body, confirm

Evaluation

  • list_evaluation_plans

    Lists the event's evaluation plans (review rounds): name, round number, status, blind flag, window, submission pool size, evaluator count and completion progress.

    Requires event

  • get_evaluation_plan

    One plan in full: its criteria (numeric with weights, select, text), the submission pool, every evaluator with their private review link and progress, and per-submission score tallies.

    Requires event, planId

  • create_evaluation_plan

    Creates a review round: a name, a round number, scoring criteria (numeric 1–5 with optional weights, select with options, or free text — default is one unweighted 1–5 "Overall" score), the submission pool (omit submissionIds for every pending submission), an optional opens/due window, and blind: true to hide speaker identities from evaluators.

    Requires event, name, confirm

  • update_evaluation_plan

    Edits a plan: rename it, change the round number or window, replace the criteria or the submission pool, toggle blind, or set status "closed" / "open" to end or reopen the round.

    Requires event, planId, confirm

  • delete_evaluation_plan

    Permanently deletes a plan together with its evaluators and every score they entered.

    Requires event, planId, confirm

  • add_evaluator

    Adds a reviewer to a plan by email.

    Requires event, planId, email, confirm

  • update_evaluator

    Hand-picks which submissions one evaluator reviews (they must be in the plan's pool).

    Requires event, evaluatorId, confirm

  • rotate_evaluator_token

    Issues a fresh magic link for one evaluator and kills the old one instantly — the fix for a review link that was forwarded, leaked or pasted somewhere public.

    Requires evaluatorId, confirm

  • remove_evaluator

    Removes an evaluator from their plan together with the scores they entered.

    Requires event, evaluatorId, confirm

  • distribute_evaluations

    Splits a plan's submission pool evenly across its evaluators, round-robin, so each submission lands with exactly one reviewer.

    Requires planId, confirm

  • remind_evaluators

    Emails every evaluator on a plan who still has outstanding reviews — each gets their own review link and their own outstanding count.

    Requires planId, confirm

  • list_evaluations

    The raw scorecard data behind every average: each evaluator × submission row with its per-criterion scores, comment, completion time — and recusals (declared conflicts of interest), which are excluded from averages.

    Requires event

Event setup

  • list_field_options

    Reads the event's setup lists in one call: resource "rooms" or "tracks" (real records with ids), "tags", "formats", "levels" or "languages" (the option sets on the CFP form's questions, unioned with any value actually in use), or "statuses" (the submission pipeline, built-ins plus custom labels).

    Requires event, resource

  • manage_room

    Manages the event's rooms: create (name + optional capacity), update (rename, change capacity or order), delete (refused while sessions are scheduled in it).

    Requires event, action, confirm

  • manage_track

    Manages the event's tracks — the colored single-select that drives routing and agenda columns.

    Requires event, action, confirm

  • manage_field_option

    Edits the option sets behind the CFP form's dropdowns: tags, formats, levels, languages.

    Requires event, resource, action, confirm

  • manage_session_status

    Manages the event's status labels.

    Requires event, action, confirm

Webhooks & embeds

  • list_webhooks

    Lists the workspace's webhook endpoints — URL, subscribed events, enabled state, delivery stats.

  • manage_webhook

    Manages webhook endpoints: create (returns the whsec_… signing secret ONCE — relay it to the user immediately, it cannot be read again), update (URL, subscribed events, enabled), test (queues a signed webhook.test delivery), rotate (new secret, shown once), delete.

    Requires action, confirm

  • list_embeds

    Lists the event's saved embed configurations — named widget setups (agenda, itinerary, sessions, speaker-gallery, speaker-list) an organizer reuses across their website.

    Requires event

  • save_embed

    Creates a named embed configuration (or overwrites one by embedId): which widget, its delivery format (iframe, html, link, json, xml, ics), its branding and display options, and whether it is switched on.

    Requires event, name, widget, confirm

  • delete_embed

    Deletes a saved embed configuration.

    Requires embedId, confirm

Activity

  • list_activity

    The event's audit trail, newest first: who changed what, when, with a one-line receipt.

    Requires event

Nothing changes without your yes. Any tool that would create, change or delete something in your event refuses to run until you approve it — so an assistant can never email your speakers or touch your agenda behind your back. Deleting an event goes one step further: you also have to type the event’s exact name.
The in-app AI copilot uses these same tools, and shows you an approval card before anything that changes your event.