Submit

Fyndling

@neongrau

Built for medieval market fans, reenactors, and living-history enthusiasts — and the AI assistants that help them plan. Fyndling MCP gives AI clients direct access to two niche European datasets: Medieval events — query 2,000+ markets, concerts, castle experiences, and living-history events across 20 European countries by location + radius + date range (updated weekly) Permanent POIs — meaderies, mead producers, castles, and medieval restaurants, also searchable by geo-radius Historical recipes — 1,100+ recipes from six cookbooks spanning the 13th–17th century, with modern German adaptations, structured ingredient lists, and original manuscript transcripts → fyndling.de — the web app behind this data Endpoint: https://fyndling.de/mcp Transport: Streamable HTTP (MCP spec 2025-03-26) Auth: none Rate limit: 60 requests / minute
Overview

fyndling-mcp

smithery badge

Built for medieval market fans, reenactors, and living-history enthusiasts — and the AI assistants that help them plan. Fyndling MCP gives AI clients direct access to two niche European datasets:

  • Medieval events — query 2,000+ markets, concerts, castle experiences, and living-history events across 20 European countries by location + radius + date range (updated weekly)
  • Permanent POIs — meaderies, mead producers, castles, and medieval restaurants, also searchable by geo-radius
  • Historical recipes — 1,100+ recipes from six cookbooks spanning the 13th–17th century, with modern German adaptations, structured ingredient lists, and original manuscript transcripts

fyndling.de — the web app behind this data

Endpoint: https://fyndling.de/mcp
Transport: Streamable HTTP (MCP spec 2025-03-26)
Auth: none
Rate limit: 60 requests / minute


Quickstart

Add to your MCP client config (e.g. Claude Desktop claude_desktop_config.json):

{
  "mcpServers": {
    "fyndling": {
      "url": "https://fyndling.de/mcp"
    }
  }
}

Tools

Events & Locations

find_events_near

Find medieval events near a geographic coordinate, sorted by distance.

ParameterTypeRequiredDescription
latnumberLatitude
lonnumberLongitude
radius_kmnumberSearch radius in km (default 50, max 500)
date_fromstringISO 8601 start date, e.g. 2026-06-01
date_tostringISO 8601 end date, e.g. 2026-06-30
typesarraymarket, concert, burg_event, living_history, renfaire
limitintegerMax results (default 20, max 100)

Example — markets within 80 km of Vienna this summer:

{
  "lat": 48.2082, "lon": 16.3738,
  "radius_km": 80,
  "date_from": "2026-06-01", "date_to": "2026-08-31",
  "types": ["market"]
}

Response fields: id, name, date_from, date_to, city, country, lat, lon, distance_km, category, description, fyndling_url


list_events

List events filtered by category, country, and/or date range.

ParameterTypeRequiredDescription
categorystringmarket, concert, burg_event, living_history, renfaire
countrystringISO 3166-1 alpha-2 code (e.g. DE, AT, FR, PL)
date_fromstringISO 8601
date_tostringISO 8601
limitintegerDefault 20, max 100

get_event

Get full details for a single event by ID.

ParameterTypeRequiredDescription
idstringEvent ID (16-char hex, e.g. a1b2c3d4e5f6a7b8)

find_pois_near

Find permanent medieval-themed locations (meaderies, castles, restaurants).

ParameterTypeRequiredDescription
latnumberLatitude
lonnumberLongitude
radius_kmnumberDefault 100, max 1000
poi_typestringmeadery, metkellerei, burg, ma_gastronomie
limitintegerDefault 20, max 100

Historical Recipes

list_recipe_sources

List all six available cookbooks with metadata (year, language, region, recipe count).

No parameters.

Sources:

KeyTitleYearLanguageRecipes
buch-guter-speiseDas Buch von guter Speise1350Middle High German96
form-of-curyThe Forme of Cury1390Middle English192
menagierMénagier de Paris1393Old French380
martinoLibro de Arte Coquinaria1465Early Italian268
severinKuchařství (Böhmisches Kochbuch)1535Early Czech~100
koch_kellermeistereiKoch und Kellermeisterei1574Early New High German110

search_recipes

Search historical recipes with filtering and ingredient matching.

ParameterTypeRequiredDescription
coursestringSee course types below
difficulty_maxinteger 1–31=easy, 2=medium, 3=advanced
lagerkuechebooleanOnly recipes suitable for outdoor/camp cooking
source_keystringFilter by cookbook (see keys above)
epoch_fromintegerEarliest source year (e.g. 1350)
epoch_tointegerLatest source year (e.g. 1500)
ingredientsstring[]Include filter: all listed must be present (partial match, AND logic)
exclude_coursesstring[]Exclude these course types
exclude_ingredientsstring[]Exclude recipes containing any of these ingredients
limitintegerDefault 20, max 100

Course types:

ValueDescription
starterStarters / appetisers
main_beefBeef mains
main_porkPork mains
main_poultryPoultry mains (chicken, goose, …)
main_gameGame mains (venison, hare, …)
main_fishFish mains
main_otherOther mains
main_meatAlias — all meat mains combined
sideSide dishes
dessertDesserts / sweet dishes
drink / beverageBeverages (beverage is an alias for drink)
condimentSauces, spice pastes
otherMiscellaneous

Example — desserts with cinnamon and ginger, excluding Ingwer-heavy recipes:

{
  "course": "dessert",
  "ingredients": ["Zimt", "Ingwer"],
  "limit": 5
}

Example — easy camp-cooking poultry dishes from before 1450:

{
  "course": "main_poultry",
  "difficulty_max": 1,
  "lagerkueche": true,
  "epoch_to": 1450
}

Recipe list fields (full details stripped for list performance): id, source_key, title_modern, course, difficulty, serves, prep_time_min, ingredients, lagerküche, published_at


get_recipe

Get the full details of a single recipe.

ParameterTypeRequiredDescription
idstringRecipe ID (e.g. bgs-001, foc-015, men-042)

Full response includes:

  • text_modern — modern German adaptation of the recipe
  • ingredients — structured list with amount, unit, name, original_text, original (medieval source text)
  • transcript — original medieval text with language and source
  • annotations — glossary of archaic terms
  • faq — common questions answered
  • interpretive_choices — editorial decisions on ambiguous passages
  • scan — link to manuscript scan image

Example ingredient object:

{
  "original": "ein phunt mandels",
  "amount": 500,
  "unit": "g",
  "name": "Mandeln",
  "original_text": "500 g Mandeln"
}

compose_menu

Compose a multi-course menu from historical recipes. Automatically minimises ingredient overlap between courses.

ParameterTypeRequiredDescription
coursesstring[]Ordered course list, 1–6 entries (use course type values from above)
personsintegerNumber of persons (informational, included in output)
max_difficultyinteger 1–3Maximum difficulty for any course
lagerkuechebooleanOnly camp-cooking-suitable recipes
epoch_fromintegerEarliest source year
epoch_tointegerLatest source year

Example — 4-course dinner for 8, 14th-century only:

{
  "courses": ["starter", "main_fish", "main_poultry", "dessert"],
  "persons": 8,
  "epoch_from": 1300,
  "epoch_to": 1400
}

Coverage

Events: Germany, Austria, Switzerland, France, Poland, Czech Republic, Italy, Spain, Portugal, UK, Ireland, Belgium, Netherlands, Denmark, Sweden, Norway, Estonia, Lithuania, and more.

Recipes: Six cookbooks from Würzburg, Paris, London, northern Italy, Prague, and Frankfurt — spanning Middle High German, Middle English, Old French, Early Italian, Early Czech, and Early New High German.


License & Attribution

Event data is aggregated from public sources; accuracy is not guaranteed — always verify with the organiser.

Recipe texts and modern adaptations: © Fyndling, CC BY-SA 4.0. Original medieval texts are in the public domain.

Server Config

{
  "mcpServers": {
    "fyndling": {
      "url": "https://fyndling.de/mcp"
    }
  }
}
© 2025 MCP.so. All rights reserved.

Build with ShipAny.