{"serverId":"mcp-registry/com.eventmatey.mcp/event-discovery","tools":[{"name":"get_event_details","fixed":{"name":"get_event_details","description":"Get fuller public details for one discoverable EventMatey event, including the canonical hosted booking URL.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["event_id"],"properties":{"event_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$","description":"EventMatey event UUID"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":140,"tokensAfter":140},{"name":"search_events_by_keyword","fixed":{"name":"search_events_by_keyword","description":"Search public EventMatey events by keyword, optional UK location text, date range, categories, and price range. Returns only published and bookable events that the organiser has enabled for AI discovery.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["keyword"],"properties":{"limit":{"type":"integer","default":10,"maximum":25,"minimum":1,"description":"Maximum number of events to return"},"keyword":{"type":"string","maxLength":120,"minLength":1,"description":"Keyword or phrase to search for, such as baking class or live music"},"end_date":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","description":"Optional inclusive end date in YYYY-MM-DD format"},"categories":{"type":"array","items":{"type":"string","maxLength":40,"minLength":1},"maxItems":10,"description":"Optional category or tag filters"},"start_date":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","description":"Optional inclusive start date in YYYY-MM-DD format"},"location_text":{"type":"string","maxLength":160,"minLength":1,"description":"Optional UK location hint such as Bristol, Manchester, or London"},"max_price_gbp":{"type":"number","maximum":100000,"minimum":0,"description":"Optional maximum price in GBP"},"min_price_gbp":{"type":"number","maximum":100000,"minimum":0,"description":"Optional minimum price in GBP"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":507,"tokensAfter":507},{"name":"search_events_nearby","fixed":{"name":"search_events_nearby","description":"Search EventMatey events by location. The current v1 implementation uses location_text plus date/category/price filters. Latitude/longitude and radius are accepted for forward compatibility but are not yet used for true distance search.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","default":10,"maximum":25,"minimum":1,"description":"Maximum number of events to return"},"end_date":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","description":"Optional inclusive end date in YYYY-MM-DD format"},"latitude":{"type":"number","maximum":90,"minimum":-90,"description":"Optional latitude for future geo-capable search"},"longitude":{"type":"number","maximum":180,"minimum":-180,"description":"Optional longitude for future geo-capable search"},"radius_km":{"type":"number","maximum":250,"minimum":1,"description":"Optional search radius in kilometres for future geo-capable search"},"categories":{"type":"array","items":{"type":"string","maxLength":40,"minLength":1},"maxItems":10,"description":"Optional category or tag filters"},"start_date":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","description":"Optional inclusive start date in YYYY-MM-DD format"},"location_text":{"type":"string","maxLength":160,"minLength":1,"description":"Use this for the current v1 location search, such as Bristol or Leeds"},"max_price_gbp":{"type":"number","maximum":100000,"minimum":0,"description":"Optional maximum price in GBP"},"min_price_gbp":{"type":"number","maximum":100000,"minimum":0,"description":"Optional minimum price in GBP"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":577,"tokensAfter":577}],"toolsChanged":3,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}