UNPKG

@ibraheem4/eventbrite-mcp

Version:

An Eventbrite MCP server for interacting with Eventbrite's API

132 lines 4.25 kB
import axios from "axios"; export class EventbriteApiClient { constructor(apiKey) { this.apiKey = apiKey; this.baseUrl = "https://www.eventbriteapi.com/v3"; this.client = axios.create({ baseURL: this.baseUrl, headers: { Authorization: `Bearer ${this.apiKey}`, "Content-Type": "application/json", }, }); } /** * Search for events */ async searchEvents(params) { try { const queryParams = {}; if (params.q) { queryParams.q = params.q; } if (params.location) { queryParams.location_latitude = params.location.latitude; queryParams.location_longitude = params.location.longitude; if (params.location.within) { queryParams.location_within = params.location.within; } } if (params.categories && params.categories.length > 0) { queryParams.categories = params.categories.join(","); } if (params.start_date) { queryParams.start_date = params.start_date; } if (params.end_date) { queryParams.end_date = params.end_date; } if (params.price) { queryParams.price = params.price; } if (params.page) { queryParams.page = params.page; } if (params.page_size) { queryParams.page_size = params.page_size; } const response = await this.client.get("/events/search/", { params: queryParams, }); return { events: response.data.events, pagination: response.data.pagination, }; } catch (error) { if (axios.isAxiosError(error)) { throw new Error(`Eventbrite API error: ${error.response?.data?.error_description || error.message}`); } throw error; } } /** * Get event details by ID */ async getEvent(eventId) { try { const response = await this.client.get(`/events/${eventId}/`); return response.data; } catch (error) { if (axios.isAxiosError(error)) { throw new Error(`Eventbrite API error: ${error.response?.data?.error_description || error.message}`); } throw error; } } /** * Get venue details by ID */ async getVenue(venueId) { try { const response = await this.client.get(`/venues/${venueId}/`); return response.data; } catch (error) { if (axios.isAxiosError(error)) { throw new Error(`Eventbrite API error: ${error.response?.data?.error_description || error.message}`); } throw error; } } /** * Get categories */ async getCategories() { try { const response = await this.client.get("/categories/"); return response.data.categories; } catch (error) { if (axios.isAxiosError(error)) { throw new Error(`Eventbrite API error: ${error.response?.data?.error_description || error.message}`); } throw error; } } /** * Get user's events (requires user OAuth token) */ async getUserEvents(page = 1, pageSize = 50) { try { const response = await this.client.get("/users/me/events/", { params: { page, page_size: pageSize, }, }); return { events: response.data.events, pagination: response.data.pagination, }; } catch (error) { if (axios.isAxiosError(error)) { throw new Error(`Eventbrite API error: ${error.response?.data?.error_description || error.message}`); } throw error; } } } //# sourceMappingURL=eventbrite-api.js.map