Skip to main content
Glama
joshuachestang

Eventbrite MCP Server

README.md
# 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

B3.4/5.0

Scored across 13 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness3/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues