MCP Server

CultureLib Discover

io.github.tbalcinha/culturelib-discover
Commerce & Retail Media & Content Public & reachable MCP 2025-11-25

What this MCP does

Searches French cultural events and venues and compares live ticket offers, prices, availability, and booking links across resellers.

compare_offers
Price comparison for one event across French ticket resellers (Fnac Spectacles, BilletReduc, L'Officiel des spectacles…). Returns each live offer with price, availability, booking URL, and how fresh the price is (verified_at). Recommends the cheapest.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'pattern': '^[a-z0-9-]{1,120}$'}}}
fetch
Fetch the full detail of one CultureLib cultural event by its id (the slug returned by `search`): description, venue, dates, and all live reseller offers with prices, freshness and booking links, as a single citable document.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'The event id (slug) returned by search'}}}
find_venues
Find French cultural venues (theaters, concert halls, museums…) by name and/or city. Returns canonical venues with coordinates and the number of shows currently playing.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'city': {'type': 'string', 'maxLength': 60}, 'query': {'type': 'string', 'maxLength': 80, 'description': 'Venue name, fuzzy-matched'}}}
get_catalog_meta
Trust endpoint: how many shows and live offers the catalog currently holds, which resellers are covered, and when the data was last refreshed. Call this to assess data freshness before relying on prices.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
get_show
Full detail of one cultural event by slug: description, canonical venue with coordinates, upcoming performance dates, and ALL live reseller offers sorted by price with booking URLs, availability and price freshness timestamps.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'pattern': '^[a-z0-9-]{1,120}$'}}}
search
Search the CultureLib catalog of French cultural events (theater, concerts, exhibitions, kids shows, guided tours) and their multi-reseller ticket offers. Returns matching events as citable documents; use `fetch` with a returned id to get full detail, prices and booking links.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'maxLength': 120, 'description': 'Free-text search, e.g. "cantatrice chauve paris"'}}}
search_shows
Search French cultural events (theater, concerts, exhibitions, kids shows, guided tours) across multiple ticket resellers. Returns canonical shows with cross-reseller offer counts, price ranges, ratings, cities and dates. Query matching tolerates noisy titles (venue/city/tour suffixes are normalized).
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'city': {'type': 'string', 'maxLength': 60, 'description': 'Exact city name, e.g. "Paris"'}, 'date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Show must have a performance on this date (YYYY-MM-DD) or be running'}, 'limit': {'type': 'integer', 'maximum': 25, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 120, 'description': 'Free-text title/artist search, e.g. "cantatrice chauve"'}, 'category': {'enum': ['theatre', 'concerts', 'expositions', 'enfants', 'visites', 'cinema'], 'type': 'string'}, 'price_max': {'type': 'number', 'description': 'Maximum price in EUR', 'exclusiveMinimum': 0}}}
whats_on
What is on in a French city on a given date — the typical "find me something to do tonight" query. Returns cultural events (theater, concerts, exhibitions…) with prices and reseller offer counts, cheapest first when a budget is given.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['city'], 'properties': {'city': {'type': 'string', 'maxLength': 60, 'description': 'City name, e.g. "Paris"'}, 'date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Defaults to today (Europe/Paris)'}, 'budget': {'type': 'number', 'description': 'Max price per ticket in EUR', 'exclusiveMinimum': 0}, 'category': {'enum': ['theatre', 'concerts', 'expositions', 'enfants', 'visites', 'cinema'], 'type': 'string'}}}
Added
fetch
Sept. 17, 2026, 12:52 p.m.
Added
search
Sept. 17, 2026, 12:52 p.m.
Added
get_catalog_meta
Sept. 17, 2026, 12:52 p.m.
Added
find_venues
Sept. 17, 2026, 12:52 p.m.
Added
compare_offers
Sept. 17, 2026, 12:52 p.m.
Added
get_show
Sept. 17, 2026, 12:52 p.m.
Added
whats_on
Sept. 17, 2026, 12:52 p.m.
Added
search_shows
Sept. 17, 2026, 12:52 p.m.