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,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.
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 six available cookbooks with metadata (year, language, region, recipe count).
No parameters.
Sources:
Key | Title | Year | Language | Recipes |
| Das Buch von guter Speise | 1350 | Middle High German | 96 |
| The Forme of Cury | 1390 | Middle English | 192 |
| Ménagier de Paris | 1393 | Old French | 380 |
| Libro de Arte Coquinaria | 1465 | Early Italian | 268 |
| Kuchařství (Böhmisches Kochbuch) | 1535 | Early Czech | ~100 |
| Koch und Kellermeisterei | 1574 | Early New High German | 110 |
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 (see keys above) |
| 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, 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.
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 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.
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 |
| 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
}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.
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