Eventbrite MCP README

The full upstream README, mirrored for reference. Install config, tool schemas, adoption signals and our own overview live on the Eventbrite MCP listing page.

eventbrite-mcp

This project was developed and is maintained by AI (Claude Code). Use at your own discretion.

MCP server for Eventbrite: your tickets and orders, organizer data (events, attendees, orders), any public event by id, and public event search — which Eventbrite removed from its documented API in 2019 and now only exists on the consumer site.

Two data paths, matched to how Eventbrite is reachable:

  • Documented API (eventbriteapi.com/v3) — plain server-side HTTPS with a personal OAuth token (EVENTBRITE_TOKEN, free: create one). Powers the account, organizer, event-by-id, and reference tools.
  • Consumer discovery API (www.eventbrite.com/api/v3/destination/…) — the site WAF-blocks server-side clients, so search routes through your own signed-in eventbrite.com browser tab via the fetchproxy bridge (ContextMint Bridge extension), reusing your authenticated session. Powers eb_search_events, eb_resolve_place, eb_event_details, eb_healthcheck.

All tools are read-only.

Setup

Terminal
npm install -g @chrischall/eventbrite-mcp

Claude Code (.mcp.json):

config.json
{
  "mcpServers": {
    "eventbrite": {
      "command": "eventbrite-mcp",
      "env": { "EVENTBRITE_TOKEN": "your-private-token" }
    }
  }
}
  • Without EVENTBRITE_TOKEN the server still boots; account tools error helpfully on first use, and discovery tools work regardless.
  • For discovery tools: install ContextMint Bridge from its releases (unzip the chrome zip and load it unpacked; use Chrome for now — Safari support will ship inside the ContextMint app, which has no public download yet), keep an eventbrite.com tab open, and approve the one-time pair prompt (the prompt covers the csrftoken cookie read the search POST needs). Run eb_healthcheck to verify the hop (with no token it checks the bridge; with a token it checks the token).
  • ContextMint Bridge is the fetchproxy browser extension under its new name, from the same maintainer — fetchproxy's own README points to it. Its source is public at nullnet-app/contextmint-bridge: build it yourself, or check a release zip against the .sha256 file published beside it (shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256).

Tools

ToolPathNotes
eb_metokenyour profile
eb_my_orderstokenyour tickets, event expanded
eb_my_organizationstokenorganizer orgs
eb_org_events / eb_org_attendees / eb_org_orderstokenorganizer data
eb_org_venues / eb_org_discounts / eb_org_ticket_groups / eb_org_webhookstokenorg-scoped collections
eb_org_reporttokensales / attendees analytics, date-windowed
eb_event / eb_event_descriptiontokenany public event by id
eb_ticket_classes / eb_ticket_classtokenan event's ticket types
eb_event_attendees / eb_event_attendeetokenper-event attendees (changed_since polls incrementally)
eb_event_orderstokenper-event orders
eb_event_questionstokenregistration questions (canned: true for the standard bank)
eb_ordertokena single order by id
eb_venue / eb_venue_eventstokenvenue detail and its events
eb_organizer / eb_organizer_eventstokenorganizer profile and everything they run
eb_series_eventstokenoccurrences of a recurring series
eb_usertokena public user profile
eb_referencetokencategories / subcategories / formats / timezones / countries / regions
eb_resolve_placetokenlocation → place id (Charlotte, NC → 85981333), plus browse shelves
eb_search_eventstokenthe consumer search; compact: true for slim results, aggs for facets
eb_event_detailstokenbatch event detail
eb_healthchecktoken, else bridgewith a token: probes GET /users/me/ and reports error.kind (credential_rejected, edge_blocked for a CDN/WAF block page, timeout, http, transport); without one: diagnoses the bridge discovery falls back to and says the token is missing (no_credential when there is no bridge either)

Search flow: eb_resolve_place {location: "Charlotte, NC"} → eb_search_events {q: "blues", place_id: "85981333", compact: true}.

eb_resolve_place also accepts a raw slug (nc--charlotte). A bare city with no state or country is rejected rather than guessed.

Development

Terminal
npm install
npm test          # node suite
npm run build     # tsc + esbuild bundle

API shape notes (captured + verified): docs/EVENTBRITE-API.md. A shell-level access skill (curl + fpx, no server needed) ships in skills/eventbrite/.