← WebMCP Directory

Tool tree

fyndling.de

livePersonal & Media
https://fyndling.de/
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.
Explore capabilities
find_events_nearanswer

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.

View tool JSON
{
  "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"
    ]
  },
  "page": "/"
}
list_eventsanswer

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.

View tool JSON
{
  "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"
      }
    }
  },
  "page": "/"
}
get_eventanswer

Get full details for a single fyndling.de event by its ID (as returned by find_events_near/list_events).

View tool JSON
{
  "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"
    ]
  },
  "page": "/"
}
search_recipesanswer

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.

View tool JSON
{
  "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"
      }
    }
  },
  "page": "/"
}
get_recipeanswer

Get full details of a single fyndling.de recipe (ingredients, annotations, transcript) by ID, as returned by search_recipes.

View tool JSON
{
  "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"
    ]
  },
  "page": "/"
}
compose_menuanswer

Compose a multi-course historical menu from fyndling.de recipes, minimizing ingredient overlap between courses. Returns one recipe per requested course.

View tool JSON
{
  "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"
    ]
  },
  "page": "/"
}
report_eventact

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.

View tool JSON
{
  "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"
    ]
  },
  "page": "/"
}