Eventbrite MCP Server
# Eventbrite MCP Server
A Model Context Protocol (MCP) server that provides natural language access to the Eventbrite API. This server allows you to create, manage, and interact with Eventbrite events using conversational AI.
## Features
- **Create Events**: Create new events with natural language descriptions
- **List Events**: View and filter your events
- **Update Events**: Modify existing event details
- **Publish Events**: Make draft events live
- **Cancel Events**: Cancel events when needed
- **Venue Management**: Create and manage venues
- **Category Support**: Browse and use Eventbrite categories
## Setup
### 1. Get Eventbrite API Credentials
1. Go to [Eventbrite Developer Portal](https://www.eventbrite.com/platform/)
2. Create an account or sign in
3. Create a new app to get your API key
4. Note your Organization ID (optional, for listing organization events)
### 2. Environment Variables
Create a `.env` file in this directory or set the following environment variables:
```bash
EVENTBRITE_API_KEY=your_eventbrite_api_key_here
EVENTBRITE_ORGANIZATION_ID=your_organization_id_here # Optional
```
### 3. Install Dependencies
```bash
cd src/mcp-servers/eventbrite
npm install
```
### 4. Build (Optional)
If you want to compile TypeScript:
```bash
npm run build
```
## Usage
### Running the Server
```bash
# Development mode with auto-reload
npm run dev
# Production mode
npm start
```
### MCP Client Configuration
Add this server to your MCP client configuration (e.g., Claude Desktop):
```json
{
"mcpServers": {
"eventbrite": {
"command": "node",
"args": ["/path/to/cyber-guard/src/mcp-servers/eventbrite/index.js"],
"env": {
"EVENTBRITE_API_KEY": "your_api_key_here",
"EVENTBRITE_ORGANIZATION_ID": "your_org_id_here"
}
}
}
}
```
## Available Tools
### create_event
Create a new event on Eventbrite.
**Parameters:**
- `name` (required): Event name
- `start_date` (required): Start date/time in ISO 8601 format
- `end_date` (required): End date/time in ISO 8601 format
- `description`: Event description (HTML allowed)
- `timezone`: Event timezone (default: UTC)
- `currency`: Currency code (default: USD)
- `online_event`: Whether it's an online event (default: false)
- `listed`: Whether to list publicly (default: true)
- `capacity`: Maximum attendees
- `venue_name`: Venue name (for in-person events)
- `venue_address`: Venue address
- `venue_city`: Venue city
- `venue_region`: Venue state/region
- `venue_postal_code`: Venue postal code
- `venue_country`: Venue country (2-letter code)
- `category_id`: Eventbrite category ID
- `subcategory_id`: Eventbrite subcategory ID
### list_events
List your events with optional filtering.
**Parameters:**
- `status`: Filter by status (live, draft, canceled, etc.)
- `order_by`: Sort order (start_asc, start_desc, created_asc, created_desc)
- `page`: Page number for pagination
### get_event
Get detailed information about a specific event.
**Parameters:**
- `event_id` (required): The event ID
### update_event
Update an existing event.
**Parameters:**
- `event_id` (required): The event ID
- `name`: New event name
- `description`: New description
- `start_date`: New start date/time
- `end_date`: New end date/time
- `timezone`: New timezone
### publish_event
Publish a draft event to make it live.
**Parameters:**
- `event_id` (required): The event ID
### cancel_event
Cancel an event.
**Parameters:**
- `event_id` (required): The event ID
### list_categories
List available Eventbrite categories.
### create_venue
Create a new venue.
**Parameters:**
- `name` (required): Venue name
- `address`: Street address
- `city`: City
- `region`: State/region
- `postal_code`: Postal code
- `country`: Country (2-letter code)
## Example Natural Language Commands
Once connected to an MCP client, you can use natural language like:
- "Create a tech meetup event next Friday at 7 PM called 'AI and the Future'"
- "List all my upcoming events"
- "Update the description of event 123456789"
- "Publish the draft event with ID 987654321"
- "Create a venue called 'Tech Hub' in San Francisco"
- "Show me all available event categories"
## Error Handling
The server includes comprehensive error handling for:
- Missing API credentials
- Invalid event data
- Network errors
- Eventbrite API errors
## Development
### Project Structure
```
src/mcp-servers/eventbrite/
├── index.ts # Main server implementation
├── package.json # Dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # This file
```
### Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Test thoroughly
5. Submit a pull request
## License
MIT License - see the main project license for details.
## Support
For issues related to:
- **Eventbrite API**: Check [Eventbrite API Documentation](https://www.eventbrite.com/platform/api)
- **MCP Protocol**: Check [Model Context Protocol Documentation](https://modelcontextprotocol.io/)
- **This Server**: Open an issue in the main project repository TDQS
Scored across 13 tools
Tools are mostly distinct, with clear purposes. Minor overlap exists between cancel_event (changes status to canceled) and delete_event (permanent removal), and delete_canceled_events is a bulk operation. Overall, an agent can differentiate them.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., get_event, create_event, list_events). Verbs are uniform and predictable, making it easy to infer tool function.
13 tools is appropriate for an event management server, covering core event operations (CRUD, status changes), categories, venues, and webhooks. The scope is well-defined without unnecessary bloat.
Event CRUD and status management are complete, but venue tools lack update/delete, webhooks lack update, and there are no tools for tickets, orders, or attendees. These gaps may hinder complex workflows.