Hosted MCP server · #153 most used on Smithery
fyndling
ralf/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
- Uses
- 3.5k
- Tools
- 8
- Runs
- Hosted
- Listed
- 6mo ago
Get started
Add it to your agent
npx -y @smithery/cli@latest install ralf/fyndling --client claudeSwap --client claude for cursor, vscode, windsurf or another client. The CLI asks for any required settings.
claude mcp add --transport http fyndling https://server.smithery.ai/ralf/fyndling/mcpA hosted server: nothing to install. Run /mcp in Claude Code to sign in if it asks.
[mcp_servers.fyndling]
url = "https://server.smithery.ai/ralf/fyndling/mcp"Add to ~/.codex/config.toml.
{
"mcpServers": {
"fyndling": {
"url": "https://server.smithery.ai/ralf/fyndling/mcp"
}
}
}Add to ~/.cursor/mcp.json.
{
"servers": {
"fyndling": {
"type": "http",
"url": "https://server.smithery.ai/ralf/fyndling/mcp"
}
}
}Add to .vscode/mcp.json.
gemini mcp add --transport http fyndling https://server.smithery.ai/ralf/fyndling/mcpSaved to .gemini/settings.json.
What it can do
8 tools
find_events_near7 paramsFind medieval events near a geographic location. Returns events sorted by distance.
| Parameter | Type | Description |
|---|---|---|
lat | number | Latitude of the center point |
lon | number | Longitude of the center point |
limit | integer | Max results (default 20) |
types | array | Filter by event type. Omit for all types. |
date_to | string | Filter: end date ISO 8601 (e.g. 2026-06-30) |
date_from | string | Filter: start date ISO 8601 (e.g. 2026-06-01) |
radius_km | number | Search radius in kilometers (default 50) |
list_events5 paramsList medieval events filtered by category, country, and/or date range.
| Parameter | Type | Description |
|---|---|---|
limit | integer | Max results (default 20, max 100) |
country | string | ISO 3166-1 alpha-2 country code (e.g. DE, AT, CH, FR) |
date_to | string | End date ISO 8601 (e.g. 2026-08-31) |
category | string | Event category filter |
date_from | string | Start date ISO 8601 (e.g. 2026-06-01) |
get_event1 paramGet full details for a single event by its ID.
| Parameter | Type | Description |
|---|---|---|
id | string | Event ID (e.g. "a1b2c3d4e5f6a7b8") |
search_recipes10 paramsSearch historical recipes (13th–17th century) by course, difficulty, ingredients, and other criteria.
| Parameter | Type | Description |
|---|---|---|
limit | integer | Max results (default 20) |
course | string | Course type. Atomic values: starter, main_beef, main_pork, main_poultry, main_game, main_fish, main_other, side, dessert, drink, condiment, other. Aliases: main = all main courses (meat + fish + other |
epoch_to | integer | Latest historical year of the source (e.g. 1450) |
epoch_from | integer | Earliest historical year of the source (e.g. 1350) |
source_key | string | Filter by recipe source |
ingredients | array | Include filter: all listed ingredients must be present (AND, partial match). E.g. ["Zimt", "Macis"]. German ingredient names preferred. |
lagerkueche | boolean | If true, only return recipes suitable for outdoor camp cooking |
difficulty_max | integer | Maximum difficulty (1=easy, 2=medium, 3=advanced) |
exclude_courses | array | Exclude these course types. E.g. ["main_fish"] to skip fish mains. main_meat excludes all meat courses; main excludes all main courses. |
exclude_ingredients | array | Exclude recipes that contain any of these ingredients (partial match). E.g. ["Ingwer"] to skip ginger dishes. German names preferred. |
get_recipe1 paramGet the full details of a single recipe including ingredients, annotations, FAQ, and original transcript.
| Parameter | Type | Description |
|---|---|---|
id | string | Recipe ID (e.g. "bgs-001", "men-042", "foc-015") |
compose_menu6 paramsCompose a multi-course menu from historical recipes. Minimizes ingredient overlap between courses. Returns one recipe per course.
| Parameter | Type | Description |
|---|---|---|
courses | array | Ordered list of courses, e.g. ["starter", "main_poultry", "dessert"]. Course type. Atomic values: starter, main_beef, main_pork, main_poultry, main_game, main_fish, main_other, side, dessert, drink, c |
persons | integer | Number of persons (informational, returned in output) |
epoch_to | integer | Latest historical source year |
epoch_from | integer | Earliest historical source year |
lagerkueche | boolean | If true, only use camp-cooking-suitable recipes |
max_difficulty | integer | Maximum recipe difficulty (1=easy, 2=medium, 3=advanced) |
list_recipe_sourcesList all available historical recipe sources with year, region, language, and recipe count. Also returns the full course taxonomy (atomic…
List all available historical recipe sources with year, region, language, and recipe count. Also returns the full course taxonomy (atomic values + aliases) so you can use granular filters like main_poultry, main_pork, main_game in search_recipes and compose_menu.
find_pois_near5 paramsFind permanent medieval-themed locations (meaderies, castles, restaurants) near a geographic point.
| Parameter | Type | Description |
|---|---|---|
lat | number | Latitude |
lon | number | Longitude |
limit | integer | Max results (default 20) |
poi_type | string | POI type: meadery/metkellerei (mead producers), burg (castle), ma_gastronomie (medieval restaurant) |
radius_km | number | Search radius in kilometers (default 100) |