TicketSource MCP server
This MCP server lets AI assistants work with a TicketSource box office to view events, performances, bookings, seats and customers.
Events: List events (optionally archived), or get a single event with venues and upcoming performance dates.
Performances: List upcoming performances across active events within a date range, including cancelled ones if requested.
Bookings: Get all bookings for a performance with totals (gross, net, fees, refunds, donations), optionally including seats and attendee names; also fetch a single booking's totals, seats and attendee details.
Customers: Search customers by name, email or phone fragment (paging through the customer list), and view a customer's contact details, membership, marketing consent, staff notes and recent bookings.
Customer notes: Add a staff note to a customer (only when write access is explicitly enabled).
Safety features: Read-only by default, contact details only returned when explicitly requested, and IDs validated before API calls.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TicketSource MCP server What's on in the next two weeks?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
TicketSource MCP server
An MCP server that lets Claude, ChatGPT and other MCP clients work with a TicketSource box office: events, performance dates, bookings, seats and customers. It is built on TicketSource's public API and its published OpenAPI spec.
Once it's connected, an organiser can ask things like:
"What's on in the next two weeks?"
"Who's booked for tomorrow's Macbeth, and how much have we taken after fees?"
"Find Sam Evans. What else has she booked this year, and are there notes on her record?"
"List everyone in row C for Friday with their booking references."
Tools
Tool | What it does | API calls |
| Events with category, published and archived status. Archived events are hidden unless requested. |
|
| One event with its venues and performance dates (upcoming only by default). |
|
| Performances across active events in the next N days, soonest first. |
|
| Bookings for one performance, with gross, net, fees, refunds and donations per booking and in total. Optionally seats and attendee names. |
|
| One booking with its totals and seats. |
|
| Search customers by name, email or phone (UK numbers match with 0 or +44). |
|
| Contact details, membership, marketing consent, staff notes and recent bookings. |
|
| Adds a staff note. Only registered when writes are enabled. |
|
Related MCP server: Line-Up MCP server
Setup
Requires Node 18 or later.
npm install
npm run buildCreate an API key in TicketSource under Settings > API.
Claude Desktop: add this to claude_desktop_config.json:
{
"mcpServers": {
"ticketsource": {
"command": "node",
"args": ["/absolute/path/to/ticketsource-mcp/dist/index.js"],
"env": { "TICKETSOURCE_API_KEY": "skl-your-key" }
}
}
}Claude Code:
claude mcp add ticketsource -e TICKETSOURCE_API_KEY=skl-your-key -- node /absolute/path/to/ticketsource-mcp/dist/index.jsVariable | Required | Meaning |
| yes | Your API key, sent as a Bearer token. |
| no |
|
| no | Defaults to |
Safety defaults
Read-only unless
TICKETSOURCE_ALLOW_WRITES=true. Read tools carry the MCPreadOnlyHintannotation.Attendee emails and phone numbers are only returned when the assistant explicitly asks for them (
include_contact_details).IDs are validated against the formats in your spec before any call is made.
Requests are spaced to stay under the 240 calls per minute limit, and 429 responses are retried using
Retry-After.A rejected API key produces a message that tells the user where to fix it.
Tests
npm testThe test suite:
Validates every fixture record against the component schemas in TicketSource's published OpenAPI spec. The spec is downloaded from
github.com/ticketsource/openapi-spectospec.yamlon the first run.Starts a local mock of the API that serves those fixtures with JSON:API pagination, a 401 on a bad key, 404s, and a one-off 429.
Starts the built server and drives it over stdio with the official MCP client: 15 checks covering every tool, pagination, refunds and donations in totals, the 429 retry, the write gate, contact-detail redaction, and that every request used the Bearer key and a documented endpoint.
Status
This is a working prototype. It has not yet been run against the live API, because it was built without a TicketSource account. Two things to confirm on a real account:
The body accepted by
POST /customers/{id}/notes. The server sends{"data": {"type": "customer_note", "attributes": {"description": "..."}}}as documented.The format of
starton dates. It is parsed as ISO 8601; dates that can't be parsed are kept rather than dropped.
The API has no server-side customer search, so find_customers pages through the customer list (100 per call, 10 pages by default). On large accounts, a search parameter on GET /customers would make this much cheaper.
Going to production
This version runs locally over stdio, with the organiser's own API key. For organisers to connect from claude.ai or ChatGPT without handling keys, the next step is a remote server (Streamable HTTP) behind OAuth, hosted by TicketSource, and then a listing in the Claude and ChatGPT connector directories.
Licence
MIT. Built by Alexandru Dragoș (alexandru.dragos96@gmail.com) with an AI agent (Claude) working under his direction.
Available Tools
7 toolsfind_customersFind customersARead-only
Search customers by part of their name, email or phone number. The API has no server-side search, so this pages through the customer list (100 per call) up to max_pages.
Inputs: query (required), max_pages, max_results.
get_bookingGet a bookingARead-only
One booking with its totals, seats and attendee names, plus the customer ID.
Inputs: booking_id (required), include_contact_details.
get_customerGet a customerBRead-only
A customer's contact details, membership and marketing consent, with their staff notes and most recent bookings.
Inputs: customer_id (required), max_bookings.
get_eventGet event with venues and datesARead-only
Get one event with its venues and performance dates. By default only dates from today onwards are returned.
Inputs: event_id (required), upcoming_only.
get_performance_bookingsBookings for a performanceARead-only
Who is coming to one performance date: every booking with totals (gross, net, fees, refunds, donations) and an overall summary. Set include_attendees to also list seats and attendee names.
Inputs: date_id (required), max_bookings, include_attendees, include_contact_details.
list_eventsList eventsARead-only
List the events on this TicketSource account (name, category, published and archived status). Archived events are skipped unless asked for.
Inputs: limit, include_archived.
list_upcoming_performancesList upcoming performancesARead-only
What's on: performance dates across all active events in the next N days, soonest first, with the event name. Use the returned dat- id with get_performance_bookings.
Inputs: limit, days_ahead, include_cancelled.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
Each tool targets a distinct resource and action: events, performances, bookings, and customers are clearly separated. Even list_events and list_upcoming_performances differ in scope (all events vs. upcoming performance dates), eliminating ambiguity.
All tools follow the consistent verb_noun pattern in snake_case (list_*, get_*, find_*). The naming is uniform and predictable, with no mixed conventions or vague verbs.
Seven tools is well-scoped for a read-only ticketing information server. Each tool has a clear purpose and the count falls comfortably in the ideal 3-15 range.
The surface covers core retrieval workflows: events, performances, bookings, and customers. Minor gaps exist (e.g., no create/update operations, no direct booking-by-event search), but these align with a read-only information source and do not block typical usage.
Maintenance
Related MCP Connectors
Tiqets MCP server for ChatGPT, Claude and any AI agent: search tickets, check availability, book tickets, list my bookings, download e-tickets and cancel booking in your own Tiqets account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Tiqets yourself; Cotlet does not store your password and you need no Tiqets API key. About the official Tiqets API: Tiqets has an API only for distribution partners such as travel agencies, not for customers (checked 11 Oct 2026). It lists the orders a partner generated, so it cannot see the bookings or tickets of your own Tiqets account. Setup and FAQ: https://cotlet.dev/integrations/tiqets-api-mcp-server
Skiddle MCP server for ChatGPT, Claude and any AI agent: add guests to the guestlist, refund orders, resend ticket receipts, close and reopen tickets, create discount codes, copy events and read ticket sales in your own Skiddle account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Skiddle yourself; Cotlet does not store your password and you need no Skiddle API key. About the official Skiddle API: Skiddle has a public events API, still in beta and for non-commercial use only, but no official MCP server (checked 31 Oct 2026). It lists events for apps and sites. Setup and FAQ: https://cotlet.dev/integrations/skiddle-api-mcp-server
Query your warehouse or a CSV with Claude/ChatGPT over MCP, governed by table-level ACL + audit.
DICE MCP server for ChatGPT, Claude and any AI agent: create event, update ticket tier, get sales report, list ticket holders and issue comp tickets in your own DICE account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to DICE yourself; Cotlet does not store your password and you need no DICE API key. About the official DICE API: DICE has a read-only partner API, the Ticket Holders GraphQL API, with a token you generate in MIO (checked 11 Oct 2026). It reads events, tickets, orders, returns and transfers, and documents no mutations, so it cannot create events, change ticket types or message fans. Setup and FAQ: https://cotlet.dev/integrations/dice-api-mcp-server
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables any MCP client to run natural-language queries and actions against CRM and ticket systems, with schema-validated tools, audit logging, and server-side write gating.7MIT
- AlicenseAqualityCmaintenanceEnables MCP clients such as Claude and ChatGPT to read events, performances, seating, packages, visits, transactions, and organisation context from a ticketing channel, and, when writes are enabled, create and release reservations.10MIT
- AlicenseBqualityCmaintenanceEnables Claude, ChatGPT and other MCP clients to read practice-management data including organization, clinicians, diaries, availability, bookings, patients, invoices, payments, staff tasks, services, and locations, and optionally create staff tasks, create bookings, and cancel bookings.15MIT
- AlicenseNot gradedqualityCmaintenanceEnables Claude, ChatGPT and other MCP clients to search a membership database's people and organisations, read a contact's summary and membership history, list events with ticket types and attendance lists, read invoices, and find and count segments. When writes are enabled, it also lets clients record who attended an event.MIT