@prmichaelsen/eventbrite-mcp
v1.0.5
Published
Eventbrite MCP server providing event management and ticketing capabilities
Maintainers
Readme
@prmichaelsen/eventbrite-mcp
An MCP (Model Context Protocol) server that provides comprehensive event management and ticketing capabilities through the Eventbrite API v3.
Note: Not every tool in this repository has been tested. Ticket creation workflow is supported. If other tools fail, please create an issue for that tool.
Features
- Event Management: Create, update, publish, delete, cancel, and copy events
- Ticket Management: Create, update, and manage ticket classes
- Order Management: Retrieve and list orders
- Attendee Management: Get and list attendee information
- Organization Support: Manage organizations, venues, and members
- Discount Management: Create and manage discount codes
- Media & Content: Upload media and manage structured content
- Webhooks: Create and manage webhooks
- Categories & Formats: Access event categories and formats
- Inventory Management: Manage inventory tiers
- And more: 42 tools total - see
./src/toolsfor complete list
Installation
Using npx (Recommended)
npx @prmichaelsen/eventbrite-mcpConfiguration
Environment Variables
Create a .env file in your project root or set the following environment variables:
# Required
EVENTBRITE_API_TOKEN=your_eventbrite_api_token
# Optional
EVENTBRITE_API_URL=https://www.eventbriteapi.com/v3 # Default API URL
EVENTBRITE_TIMEOUT=30000 # Request timeout in ms
EVENTBRITE_RETRIES=3 # Number of retry attemptsGetting an Eventbrite API Token
- Go to Eventbrite API Keys Page
- Sign in to your Eventbrite account
- Copy your Private Token
- Add it to your MCP client configuration (see below)
Note: You must create your own Eventbrite OAuth application if you need to access other users' data. For personal use, a private token is sufficient.
MCP Client Configuration
Add to your MCP client configuration (e.g., Claude Desktop, Kilo Code):
{
"mcpServers": {
"eventbrite": {
"command": "npx",
"args": ["-y", "@prmichaelsen/eventbrite-mcp"],
"env": {
"EVENTBRITE_API_TOKEN": "your_eventbrite_api_token"
}
}
}
}Tool Examples
create_event
Create a new event on Eventbrite.
Parameters:
name(required): Event namestartTime(required): Start time in ISO 8601 formatendTime(required): End time in ISO 8601 formattimezone(required): Timezone (e.g., "America/New_York")currency(required): Currency code (e.g., "USD")description(optional): Event description (supports HTML)online(optional): Whether this is an online eventlisted(optional): Whether to list publiclycapacity(optional): Maximum capacityorganizationId(optional): Organization ID
Example:
{
"name": "Tech Conference 2024",
"description": "Annual technology conference",
"startTime": "2024-12-31T09:00:00",
"endTime": "2024-12-31T17:00:00",
"timezone": "America/New_York",
"currency": "USD",
"online": false,
"listed": true,
"capacity": 500
}update_event
Update an existing event by event ID. Supports partial updates.
Parameters:
event_id(required): Event IDname(optional): Event name object with html propertysummary(optional): Event summarystart(optional): Start datetime with timezone and utcend(optional): End datetime with timezone and utccurrency(optional): Currency codeonline_event(optional): Is online onlylisted(optional): Publicly searchable- Plus 20+ additional optional fields
Example:
{
"event_id": "123456789",
"name": { "html": "Updated Conference Name" },
"summary": "New event description",
"listed": true
}create_ticket_class
Create a ticket class for an event.
Parameters:
eventId(required): The event IDname(required): Ticket class namequantityTotal(required): Total tickets availablefree(optional): Whether the ticket is freecost(optional): Ticket cost in minor units (e.g., cents)currency(optional): Currency codedescription(optional): Ticket descriptionsalesStart(optional): Sales start time (ISO 8601)salesEnd(optional): Sales end time (ISO 8601)
Example:
{
"eventId": "123456789",
"name": "General Admission",
"quantityTotal": 100,
"free": false,
"cost": 5000,
"currency": "USD",
"description": "Standard entry ticket"
}publish_event
Publish an event to make it live and available for ticket sales.
Parameters:
event_id(required): Event ID
Example:
{
"event_id": "123456789"
}All Available Tools
For a complete list of all 42 supported tools, please see ./src/tools directory.
Tool Categories:
- Events (9 tools)
- Tickets (4 tools)
- Orders (2 tools)
- Attendees (2 tools)
- Organizations (3 tools)
- Venues (4 tools)
- Discounts (5 tools)
- Categories & Formats (6 tools)
- Webhooks (3 tools)
- Media & Content (4 tools)
- Inventory Tiers (5 tools)
- Display Settings (2 tools)
- Questions (3 tools)
- User (1 tool)
- API Documentation (1 tool)
Using as a Library
Option 1: MCP-Auth Integration (Multi-Tenant)
For multi-tenant applications using @prmichaelsen/mcp-auth:
import { createEventbriteServer } from '@prmichaelsen/eventbrite-mcp/factory';
import { wrapServer } from '@prmichaelsen/mcp-auth';
const wrappedServer = wrapServer({
serverFactory: (accessToken: string, userId: string) => {
return createEventbriteServer(accessToken, userId);
},
authProvider: new FirebaseAuthProvider({ projectId: 'your-project' }),
tokenResolver: new PlatformTokenResolver({
platformUrl: 'https://your-platform.com',
serviceToken: process.env.PLATFORM_SERVICE_TOKEN
}),
resourceType: 'eventbrite',
transport: { type: 'sse', port: 8080, basePath: '/mcp' }
});
await wrappedServer.start();Option 2: Individual Tool Usage (OpenAI Agents)
Import and use individual tools in your applications:
import { CreateEventTool, EventbriteClient, EventbriteConfig } from '@prmichaelsen/eventbrite-mcp';
// Configure the Eventbrite client
const config: EventbriteConfig = {
apiToken: process.env.EVENTBRITE_API_TOKEN!, // Required
apiUrl: 'https://www.eventbriteapi.com/v3',
timeout: 30000,
retries: 3
};
const client = new EventbriteClient(config);
const createEventTool = new CreateEventTool(client);
// Use the tool
const result = await createEventTool.execute({
name: "My Event",
startTime: "2024-12-31T09:00:00",
endTime: "2024-12-31T17:00:00",
timezone: "America/New_York",
currency: "USD"
});Environment Variables Required:
EVENTBRITE_API_TOKEN: Your Eventbrite API token (required)
All 57 tool classes and the createServer factory function are exported. See src/index.ts for the complete list of exports.
Development
Setup
# Clone the repository
git clone https://github.com/prmichaelsen/eventbrite-mcp.git
cd eventbrite-mcp
# Install dependencies
npm install
# Build the project
npm run build
# Run in development mode with watch
npm run watchProject Structure
eventbrite-mcp/
├── src/
│ ├── server.ts # Main MCP server
│ ├── eventbrite/
│ │ └── client.ts # Eventbrite API client
│ ├── tools/ # MCP tool implementations (42 tools)
│ ├── types/ # TypeScript type definitions
│ └── utils/ # Utility functions
├── agent/ # Development documentation
├── package.json
├── tsconfig.json
└── README.mdTesting
npm testBuilding
npm run buildLicense
MIT
Author
Patrick Michaelsen
