MCP Live Events Server

from mcp.server.fastmcp import FastMCP from .utils import format_events from .events_api_client import EventsApiClient mcp = FastMCP("mcp-live-events") @mcp.tool() async def get_upcoming_events(city: str, start_dttm_str: str, end_dttm_str: str, keyword: str | None = None) -> str: """ Get upcoming music events for a city. Args: city: City in which to search for events. start_dttm_str: Start date/time in ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ). Example: 2025-02-08T00:00:00Z end_dttm_str: Start date/time in ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ). Example: 2025-02-10T00:00:00Z keyword: Any optional keywords to help filter search results. """ data = await EventsApiClient().fetch_events(city=city, start_dttm_str=start_dttm_str, end_dttm_str=end_dttm_str, keyword=keyword) return format_events(data)