@ibraheem4/eventbrite-mcp
Version:
An Eventbrite MCP server for interacting with Eventbrite's API
107 lines (106 loc) • 2.29 kB
TypeScript
export interface EventbriteEvent {
id: string;
name: {
text: string;
html: string;
};
description?: {
text: string;
html: string;
};
url: string;
start: {
timezone: string;
local: string;
utc: string;
};
end: {
timezone: string;
local: string;
utc: string;
};
venue_id?: string;
venue?: {
id: string;
name: string;
address: {
address_1: string;
address_2?: string;
city: string;
region?: string;
postal_code: string;
country: string;
};
};
capacity?: number;
category_id?: string;
is_free: boolean;
logo_id?: string;
logo?: {
url: string;
};
}
export interface EventbriteVenue {
id: string;
name: string;
address: {
address_1: string;
address_2?: string;
city: string;
region?: string;
postal_code: string;
country: string;
};
capacity?: number;
}
export interface EventbriteCategory {
id: string;
name: string;
short_name?: string;
}
export interface SearchEventsParams {
q?: string;
location?: {
latitude: number;
longitude: number;
within?: string;
};
categories?: string[];
start_date?: string;
end_date?: string;
price?: "free" | "paid";
page?: number;
page_size?: number;
}
export declare class EventbriteApiClient {
private apiKey;
private client;
private baseUrl;
constructor(apiKey: string);
/**
* Search for events
*/
searchEvents(params: SearchEventsParams): Promise<{
events: EventbriteEvent[];
pagination: any;
}>;
/**
* Get event details by ID
*/
getEvent(eventId: string): Promise<EventbriteEvent>;
/**
* Get venue details by ID
*/
getVenue(venueId: string): Promise<EventbriteVenue>;
/**
* Get categories
*/
getCategories(): Promise<EventbriteCategory[]>;
/**
* Get user's events (requires user OAuth token)
*/
getUserEvents(page?: number, pageSize?: number): Promise<{
events: EventbriteEvent[];
pagination: any;
}>;
}