get_event
Retrieve detailed information about a specific event using its unique ID to access event data from the EventHorizon platform.
Instructions
Get detailed information about a specific event by its ID.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes | The ID of the event to retrieve |
Implementation Reference
- src/index.ts:92-105 (handler)The async handler function that executes the 'get_event' tool: fetches the event using apiClient.getEvent, formats it, and returns the response or error.async ({ event_id }) => { try { const apiClient = getClient(); const event = await apiClient.getEvent(event_id); return { content: [{ type: 'text', text: formatEvent(event) }] }; } catch (error) { return { content: [{ type: 'text', text: `Error: ${error instanceof Error ? error.message : String(error)}` }], isError: true }; } }
- src/index.ts:89-91 (schema)Zod input schema defining the 'event_id' parameter for the 'get_event' tool.{ event_id: z.number().describe('The ID of the event to retrieve') },
- src/index.ts:86-106 (registration)Registration of the 'get_event' tool on the MCP server using server.tool().server.tool( 'get_event', 'Get detailed information about a specific event by its ID.', { event_id: z.number().describe('The ID of the event to retrieve') }, async ({ event_id }) => { try { const apiClient = getClient(); const event = await apiClient.getEvent(event_id); return { content: [{ type: 'text', text: formatEvent(event) }] }; } catch (error) { return { content: [{ type: 'text', text: `Error: ${error instanceof Error ? error.message : String(error)}` }], isError: true }; } } );
- src/index.ts:29-38 (helper)Helper function used by the handler to format the event data into a readable string.function formatEvent(event: Event): string { return `Event: ${event.title} (ID: ${event.id}) Description: ${event.description} Location: ${event.location} Start: ${event.start_time} End: ${event.end_time} Capacity: ${event.capacity} Organizer: ${event.organizer.username} Registered: ${event.is_registered ? 'Yes' : 'No'}`; }
- src/api-client.ts:121-128 (helper)API client method called by the tool handler to fetch event details via HTTP GET request.async getEvent(eventId: number): Promise<Event> { try { const response: AxiosResponse<Event> = await this.client.get(`/api/events/${eventId}/`); return response.data; } catch (error) { throw new Error(`Failed to get event ${eventId}: ${getErrorMessage(error)}`); } }