{"ok":true,"site":{"host":"fyndling.de","url":"https://fyndling.de/","type":"live","category":"Personal & Media","desc":"Fyndling is a map-based directory of medieval markets, concerts, castle events, living-history gatherings and renfaires across Europe, plus a library of historical (13th-17th century) recipes. Its WebMCP tools let an agent find events near a location or filter them by category/country/date, look up full event details, search and compose historical-recipe menus, and submit a new event or correction to the moderated review queue.","favicon":"/favicons/fyndling.de.png","tools":[{"name":"find_events_near","kind":"answer","impl":"imperative","description":"Find medieval markets, concerts, castle events, living-history events and renfaires near a geographic location, sorted by distance. Each result includes fyndling_url, the canonical event page link.","inputSchema":{"type":"object","properties":{"lat":{"type":"number","description":"Latitude of the search center"},"lon":{"type":"number","description":"Longitude of the search center"},"radius_km":{"type":"number","description":"Search radius in km (default 50, max 500)"},"types":{"type":"array","items":{"type":"string","enum":["market","concert","burg_event","living_history","renfaire"]},"description":"Category filter. Any of: market, concert, burg_event, living_history, renfaire"},"date_from":{"type":"string","description":"Start date ISO 8601, e.g. 2026-06-01"},"date_to":{"type":"string","description":"End date ISO 8601, e.g. 2026-08-31"},"limit":{"type":"integer","description":"Max results, default 20, max 100"}},"required":["lat","lon"]},"executable":true,"handlerField":"execute","page":"/"},{"name":"list_events","kind":"answer","impl":"imperative","description":"List medieval markets, concerts, castle events, living-history events and renfaires on fyndling.de filtered by category, country and/or date range (no location needed). Each result includes fyndling_url, the canonical event page link.","inputSchema":{"type":"object","properties":{"category":{"type":"string","description":"Event category filter","enum":["market","concert","burg_event","living_history","renfaire"]},"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code, e.g. DE, AT, CH, FR"},"date_from":{"type":"string","description":"Start date ISO 8601, e.g. 2026-06-01"},"date_to":{"type":"string","description":"End date ISO 8601, e.g. 2026-08-31"},"limit":{"type":"integer","description":"Max results, default 20, max 100"}}},"executable":true,"handlerField":"execute","page":"/"},{"name":"get_event","kind":"answer","impl":"imperative","description":"Get full details for a single fyndling.de event by its ID (as returned by find_events_near/list_events).","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Event ID, e.g. \"a1b2c3d4e5f6a7b8\""}},"required":["id"]},"executable":true,"handlerField":"execute","page":"/"},{"name":"search_recipes","kind":"answer","impl":"imperative","description":"Search historical recipes (13th-17th century) on fyndling.de by course, difficulty, ingredients, tags and other criteria. Each result includes fyndling_url, the canonical recipe page link.","inputSchema":{"type":"object","properties":{"course":{"type":"string","description":"Course type. Atomic: starter, main_beef, main_pork, main_poultry, main_game, main_fish, main_other, main_vegetarian, side, dessert, drink, condiment, other (plus aliases main, main_meat, beverage). There is no bare \"main\" - always use one of the values above.","enum":["starter","main_beef","main_pork","main_poultry","main_game","main_fish","main_other","main_vegetarian","side","dessert","drink","condiment","other"]},"difficulty_max":{"type":"integer","minimum":1,"maximum":3,"description":"Maximum difficulty (1=easy, 2=medium, 3=advanced)"},"lagerkueche":{"type":"boolean","description":"If true, only recipes suitable for outdoor camp cooking"},"source_key":{"type":"string","description":"Filter by recipe source key (manuscript)","enum":["anonimo_toscano","bockenheim","buch-guter-speise","corema_ka1","corema_ka2","edelike_spijse","form-of-cury","harpestreng","koch_kellermeisterei","koenigsberger_kochbuch","martino","meister_eberhard","meister_hans","menagier","mondseer_kochbuch","muenchner_cgm349","muenchner_cgm384","muenchner_cgm467","muenchner_cgm725","muenchner_cgm811","muenchner_cgm5919","muenchner_clm15632","rheinfraenkisches_kochbuch","severin","tegernsee","viandier"]},"dietary":{"type":"string","enum":["vegetarian","vegan"],"description":"Dietary filter"},"tags":{"type":"array","items":{"type":"string","enum":["pasta","reis","brei","beilage","huelsenfruechte","brot","aspik","blancmanger","vegetarisch","fastenspeise","vegan","hofkueche","buergerlich","bauernkueche","met","methiglyn","bochet","hippocras","festtag"]},"description":"Controlled-vocabulary tags (AND logic)"},"epoch_from":{"type":"integer","description":"Earliest historical source year, e.g. 1350"},"epoch_to":{"type":"integer","description":"Latest historical source year, e.g. 1450"},"ingredients":{"type":"array","items":{"type":"string"},"description":"All listed ingredients must be present (German names preferred), e.g. [\"Zimt\", \"Macis\"]"},"exclude_courses":{"type":"array","items":{"type":"string","enum":["starter","main_beef","main_pork","main_poultry","main_game","main_fish","main_other","main_vegetarian","side","dessert","drink","condiment","other"]},"description":"Exclude these course types"},"exclude_ingredients":{"type":"array","items":{"type":"string"},"description":"Exclude recipes containing any of these ingredients"},"limit":{"type":"integer","description":"Max results, default 20, max 100"}}},"executable":true,"handlerField":"execute","page":"/"},{"name":"get_recipe","kind":"answer","impl":"imperative","description":"Get full details of a single fyndling.de recipe (ingredients, annotations, transcript) by ID, as returned by search_recipes.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Recipe ID, e.g. \"hkb-001\", \"men-042\""}},"required":["id"]},"executable":true,"handlerField":"execute","page":"/"},{"name":"compose_menu","kind":"answer","impl":"imperative","description":"Compose a multi-course historical menu from fyndling.de recipes, minimizing ingredient overlap between courses. Returns one recipe per requested course.","inputSchema":{"type":"object","properties":{"courses":{"type":"array","items":{"type":"string","enum":["starter","main_beef","main_pork","main_poultry","main_game","main_fish","main_other","main_vegetarian","side","dessert","drink","condiment","other"]},"description":"Ordered course list, e.g. [\"starter\", \"main_poultry\", \"dessert\"]. Atomic values: starter, main_beef, main_pork, main_poultry, main_game, main_fish, main_other, main_vegetarian, side, dessert, drink, condiment, other (plus aliases main, main_meat, beverage)"},"persons":{"type":"integer","description":"Number of persons (informational only)"},"max_difficulty":{"type":"integer","minimum":1,"maximum":3,"description":"Maximum recipe difficulty (1-3)"},"lagerkueche":{"type":"boolean","description":"If true, only camp-cooking-suitable recipes"},"dietary":{"type":"string","enum":["vegetarian","vegan"]},"tags":{"type":"array","items":{"type":"string","enum":["pasta","reis","brei","beilage","huelsenfruechte","brot","aspik","blancmanger","vegetarisch","fastenspeise","vegan","hofkueche","buergerlich","bauernkueche","met","methiglyn","bochet","hippocras","festtag"]},"description":"Applied to every course, e.g. [\"hofkueche\"] for a courtly banquet"},"epoch_from":{"type":"integer"},"epoch_to":{"type":"integer"}},"required":["courses"]},"executable":true,"handlerField":"execute","page":"/"},{"name":"report_event","kind":"act","impl":"declarative","description":"Report a new medieval market, concert, castle event, or living-history event to fyndling.de for review, or suggest a correction to an existing one (category 'Korrektur vorschlagen'). Submits to a moderated queue and does not appear on the map immediately. Pre-fills the form; the user must still click submit to send it.","inputSchema":{"type":"object","properties":{"bot-field":{"type":"string"},"category":{"type":"string","enum":["markt","living-history","konzert","metkellerei","burg","gastronomie","meadery","renfaire","korrektur","sonstiges"]},"event_name":{"type":"string","description":"e.g. Hanstein Castle Medieval Market"},"date_from":{"type":"string"},"date_to":{"type":"string"},"anmerkung":{"type":"string","description":"Correction, notes, organiser, ..."},"country":{"type":"string","enum":["DE","AT","CH","LU","NL","BE","FR","PL","CZ","DK","SE","NO","GB","IE","ES","PT","IT","LT","LV","EE","US"]},"plz":{"type":"string","description":"12345"},"ort":{"type":"string","description":"Town / village"},"website":{"type":"string","description":"https://..."},"venue":{"type":"string","description":"e.g. Hanstein Castle, City Park"},"email":{"type":"string","description":"optional - for follow-up only"},"living_history":{"type":"boolean"},"no_dogs":{"type":"boolean"},"free_admission":{"type":"boolean"},"event_id":{"type":"string"}},"required":["category","event_name"]},"executable":true,"page":"/"}],"apiSurface":"spec","_scrape":{"etag":"W/\"dk8fnnopgqsu64ul-br\"","lastModified":"Sun, 26 Jul 2026 10:32:48 GMT","scrapedAt":"2026-07-26T13:00:06.520Z"},"toolCount":7}}