Fyndling
fyndling-mcp
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,400+ recipes from thirteen cookbooks spanning the 13th–17th century, with modern German adaptations, structured ingredient lists, original manuscript transcripts, and a controlled tag vocabulary for dish-type, diet, and social-class filtering
→ 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"
}
}
}Related MCP server: MockMCP
Tools
Events & Locations
find_events_near
Find medieval events near a geographic coordinate, sorted by distance.
Parameter | Type | Required | Description |
| number | ✓ | Latitude |
| number | ✓ | Longitude |
| number | — | Search radius in km (default 50, max 500) |
| string | — | ISO 8601 start date, e.g. |
| string | — | ISO 8601 end date, e.g. |
| array | — |
|
| integer | — | Max 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.
Parameter | Type | Required | Description |
| string | — |
|
| string | — | ISO 3166-1 alpha-2 code (e.g. |
| string | — | ISO 8601 |
| string | — | ISO 8601 |
| integer | — | Default 20, max 100 |
get_event
Get full details for a single event by ID.
Parameter | Type | Required | Description |
| string | ✓ | Event ID (16-char hex, e.g. |
find_pois_near
Find permanent medieval-themed locations (meaderies, castles, restaurants).
Parameter | Type | Required | Description |
| number | ✓ | Latitude |
| number | ✓ | Longitude |
| number | — | Default 100, max 1000 |
| string | — |
|
| integer | — | Default 20, max 100 |
Historical Recipes
list_recipe_sources
List all available cookbooks with metadata (year, language, region, recipe count) and the full course taxonomy (atomic values + aliases).
No parameters.
Sources:
Key | Title | Year | Language | Recipes |
| Kogebog (Harpestreng-Handschrift NKS 66) | ~1300 | Old Danish | 25 |
| Le Viandier de Taillevent | ~1300 | Old French | 55 |
| Das Buch von guter Speise | 1350 | Middle High German | 101 |
| The Forme of Cury | 1390 | Middle English | 192 |
| Anonimo Toscano (Libro della cocina) — pilot | ~1390 | Tuscan Volgare | 30 |
| Ménagier de Paris | 1393 | Old French | 379 |
| Registrum Coquine (Johannes von Bockenheim) | ~1433 | Medieval Latin | 64 |
| Tegernseer Speisenbuch (BSB Cgm 8137) | 1453–1534 | Early New High German (Bavarian) | 11 |
| Kochbuch des Meister Hans (Cgm 384) | ~1460 | Early New High German (Alemannic–Swabian) | 69 |
| Libro de Arte Coquinaria | 1465 | Early Italian | 268 |
| Von guten und edlen Speisen (Wel ende edelike spijse) | ~1475 | Middle Dutch | 62 |
| Kuchařství (Böhmisches Kochbuch) | 1535 | Early Czech | 92 |
| Koch und Kellermeisterei | 1574 | Early New High German | 110 |
list_recipe_tags
List the controlled tag vocabulary, grouped by category (dish_type, diet, social_class), with labels, descriptions and current recipe counts. Use these tag IDs as values for the tags parameter in search_recipes and compose_menu.
No parameters.
Tag groups:
Group | Tags |
|
|
|
|
|
|
Tag IDs are German (kebab-style). Pass them verbatim to search_recipes(tags=[...]). Multiple tags combine with AND logic — tags=["hofkueche", "vegetarisch"] returns only vegetarian dishes that are also tagged as courtly cuisine. Social-class tags can co-occur on a single recipe when a source explicitly addresses multiple classes (classic Bockenheim pattern: "et erit bonum pro ciuibus Rusticis et nobilibus" → both bauernkueche and hofkueche).
The dietary filter in search_recipes is a convenience alias: dietary="vegetarian" is equivalent to tags=["vegetarisch"], and dietary="vegan" to tags=["vegan"]. Note that vegan recipes also carry the vegetarisch tag, so dietary="vegetarian" returns both groups.
search_recipes
Search historical recipes with filtering and ingredient matching.
Parameter | Type | Required | Description |
| string | — | See course types below |
| integer 1–3 | — | 1=easy, 2=medium, 3=advanced |
| boolean | — | Only recipes suitable for outdoor/camp cooking |
| string | — | Filter by cookbook key. Call |
| string | — |
|
| string[] | — | Controlled-vocabulary tag filter (AND logic, max 6). Vocabulary: |
| integer | — | Earliest source year (e.g. |
| integer | — | Latest source year (e.g. |
| string[] | — | Include filter: all listed must be present (partial match, AND logic) |
| string[] | — | Exclude these course types |
| string[] | — | Exclude recipes containing any of these ingredients |
| integer | — | Default 20, max 100 |
Course types:
Value | Description |
| Starters / appetisers |
| Beef mains |
| Pork mains |
| Poultry mains (chicken, goose, …) |
| Game mains (venison, hare, …) |
| Fish mains |
| Other mains |
| Alias — all meat mains combined |
| Side dishes |
| Desserts / sweet dishes |
| Beverages ( |
| Sauces, spice pastes |
| Miscellaneous |
Example — desserts with cinnamon and ginger:
{
"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
}Example — all recipes from the oldest source (13th-century Denmark):
{
"source_key": "harpestreng",
"limit": 25
}Example — Flemish court cuisine from the late 15th century:
{
"source_key": "edelike_spijse",
"course": "main_poultry",
"limit": 10
}Example — Bavarian monastery cooking from the 15th century:
{
"source_key": "tegernsee",
"limit": 11
}Example — vegan desserts (lent-friendly sweets, no animal products):
{
"course": "dessert",
"dietary": "vegan",
"limit": 10
}Example — courtly bread-based dishes (banquet-grade Backwerk):
{
"tags": ["hofkueche", "brot"],
"limit": 10
}Example — peasant-class lent food (rural fast-day dishes):
{
"tags": ["bauernkueche", "fastenspeise"],
"limit": 20
}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, fyndling_url (canonical link to the recipe page on fyndling.de)
get_recipe
Get the full details of a single recipe.
Parameter | Type | Required | Description |
| string | ✓ | Recipe ID (e.g. |
Full response includes:
text_modern— modern German adaptation of the recipeingredients— structured list withamount,unit,name,original_text,original(medieval source text)transcript— original medieval text with language and sourceannotations— glossary of archaic termsfaq— common questions answeredinterpretive_choices— editorial decisions on ambiguous passagesscan— link to manuscript scan imagefyndling_url— canonical link to the recipe page on fyndling.de (e.g.https://fyndling.de/rezepte/mar-005/)
Ingredient units: g, kg, ml, l, TL (Teelöffel/teaspoon), EL (Esslöffel/tablespoon), pinch, piece, slice, clove, bunch, sprig, leaf, cm. Use original_text for display; amount + unit are for scaling only.
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.
Parameter | Type | Required | Description |
| string[] | ✓ | Ordered course list, 1–6 entries (use course type values from above) |
| integer | — | Number of persons (informational, included in output) |
| integer 1–3 | — | Maximum difficulty for any course |
| boolean | — | Only camp-cooking-suitable recipes |
| string | — |
|
| string[] | — | Controlled-vocabulary tags applied to every course (AND logic, max 6). Useful for thematic menus, e.g. |
| integer | — | Earliest source year |
| integer | — | Latest 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
}Example — vegetarian 3-course menu for 6:
{
"courses": ["starter", "main_other", "dessert"],
"persons": 6,
"dietary": "vegetarian"
}Example — courtly banquet (5-course Hofküche dinner for 12):
{
"courses": ["starter", "main_fish", "main_poultry", "main_game", "dessert"],
"persons": 12,
"tags": ["hofkueche"]
}Coverage
Events: Germany, Austria, Switzerland, France, Poland, Czech Republic, Italy, Spain, Portugal, UK, Ireland, Belgium, Netherlands, Denmark, Sweden, Norway, Estonia, Lithuania, and more.
Recipes: Thirteen cookbooks spanning Old Danish, Old French, Middle High German, Middle English, Tuscan Volgare, Medieval Latin, Middle Dutch, Early New High German (Bavarian + Alemannic–Swabian), Early Italian, and Early Czech — from Copenhagen, Paris, London, Würzburg, Florence, Frankfurt-am-Main, Ghent, Munich/Tegernsee, the Upper Rhine, northern Italy, Prague, and Frankfurt. Covering the 13th to 17th century.
Notable sources: The Harpestreng manuscript (NKS 66, ~1300) is the earliest surviving cookbook from northern Europe. Le Viandier de Taillevent (~1300) is one of the most influential French court cookbooks of the Middle Ages. The Registrum Coquine of Johannes von Bockenheim (~1433, BnF Ms. Latin 7054) is a Latin compilation from the papal court of Martin V that explicitly labels recipes by social class — "pro magnatibus", "pro communibus", "pro rusticis". The Ghent manuscript (BHSL.HS.1035, ~1475) is the only fully preserved Middle Dutch recipe collection of its era. The Tegernseer Speisenbuch (BSB Cgm 8137, 1453–1534) documents Benedictine monastery cuisine from Bavaria and contains the oldest known written record of the name Rutschart (today's Ritschert).
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.
This server cannot be installed
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/neongrau/fyndling-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server