miri – Hamburg mit Kind
Server Details
Family events today and kid-friendly places in Hamburg, Germany. Read-only, by miri.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
Each tool has a distinct role: today's events, valid filter reference, place search, and place detail. The only mild overlap is that events_heute and orte_suchen both accept similar location/age/topic filters, but the events-vs-venues distinction is made clear in the descriptions. ort_info is cleanly separated as a slug-based detail lookup.
All names are lowercase German snake_case, giving a consistent visual and stylistic convention. However, the semantic pattern varies (noun_adverb events_heute, noun_verb orte_suchen, noun_info ort_info, compound kategorien_und_bezirke) rather than following a single verb_noun scheme, and one name mixes English 'events' with German.
Four tools is within a reasonable range for a focused local family-activity guide, and each tool (events, filter values, place search, place detail) earns its place. It sits at the thin edge of the ideal 3–15 range, with one helper tool (kategorien_und_bezirke) that is supportive rather than core.
The surface covers today's events, venue search, and venue detail, but it explicitly offers no way to browse events on other days, which is a notable gap for a family planning service. There is also no dedicated event-detail operation (users must follow miri_link externally), leaving the lifecycle only partially covered.
Available Tools
4 toolsevents_heuteTermine heute / Events todayARead-onlyIdempotentInspect
Familien-Termine in Hamburg fuer HEUTE (Berlin-Zeit): Theater, Workshops, Maerkte, Ausstellungen, Sport ... Alle Filter optional und kombinierbar: stadtteil ODER bezirk (z.B. 'Ottensen', 'Altona'), alter (Kindesalter 0-18, liefert passende und altersoffene Termine), kategorie, thema ('regen', 'draussen', 'kostenlos', 'baby', 'flohmarkt', 'theater', 'museum', 'spielgruppe', 'natur'), suche (Stichwort, z.B. 'Kuerbis'), lang ('de'|'en'). Gueltige Werte liefert kategorien_und_bezirke. Hoechstens 50 Treffer, sortiert: laeuft gerade, vormittags, nachmittags, abends, ganztaegig/Ausstellungen, schon vorbei. Jeder Termin hat miri_link (Terminseite auf miri-app.de) und ort_seite. webseite ist die passende Seite auf miri-app.de. Keine anderen Tage; bei suche steht nur die Anzahl kommender Treffer dabei. Family events for kids in Hamburg, Germany, for TODAY only. Optional filters: stadtteil (quarter) or bezirk (borough), alter (child age 0-18), kategorie, thema (e.g. 'regen' = rainy day/indoor, 'kostenlos' = free, 'baby'), suche (keyword), lang ('de'|'en'). At most 50 results. Each event has miri_link.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | de | |
| alter | No | ||
| suche | No | ||
| thema | No | ||
| bezirk | No | ||
| kategorie | No | ||
| stadtteil | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent, closed-world read, so the description only needs to add operational context — which it does: a 50-result cap, the exact sort order (running now, morning, afternoon, evening, all-day/exhibitions, past), and the notable quirk that a suche query only returns the count of upcoming matches. It does not mention caching, rate limits, or what happens with invalid filter values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core scope is front-loaded and the filter list is easy to scan, but the definition is delivered twice (German then English), repeating the 50-result cap and the filter examples verbatim. That duplication roughly doubles length without adding information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter, zero-required filter tool this covers scope, filter semantics, result cap, ordering and key return fields, and an output schema already exists so return shapes need no further explanation. The remaining gap is the interaction between bezirk and stadtteil and the behavior on invalid inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries the full burden and mostly delivers: alter is defined as child age 0-18 and noted to also return age-open events, thema is illustrated with concrete tokens ('regen', 'draussen', 'kostenlos', 'baby'), suche and lang are given formats, and stadtteil/bezirk are described as alternatives ('ODER'). It stops short of explaining the borough/quarter hierarchy or enumerating kategorie values, delegating those to kategorien_und_bezirke.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and hard scope: family events in Hamburg, for TODAY only, in Berlin time, with the covered categories named (Theater, Workshops, Maerkte, Ausstellungen, Sport). The explicit 'Keine anderen Tage' / 'TODAY only' boundary makes it unambiguous against any sibling that handles other dates or looks up reference data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains that all filters are optional and combinable, gives concrete examples per filter, and routes the agent to kategorien_und_bezirke for valid values. It also excludes other days. What is missing is an explicit statement of when to prefer this over orte_suchen/ort_info, but the intended usage is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kategorien_und_bezirkeKategorien, Themen, Bezirke / Filter valuesBRead-onlyIdempotentInspect
Gueltige Filterwerte: Kategorien, Themen (mit Themenseite) und die Hamburger Bezirke mit ihren Stadtteilen (mit Bezirksseite). Valid filter values: categories, topics and Hamburg boroughs with their quarters.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | de |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds that entries come with associated pages (Themenseite/Bezirksseite), which hints at the shape of the payload beyond annotations. It does not disclose whether the list is complete, cached, or how entries are ordered/named.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the key concept (valid filter values). The German and English versions carry identical information, which is slightly redundant but keeps the tool readable for mixed-language agents. No filler or tangential wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It is a simple, parameter-light lookup tool with an output schema, so return values need no explanation, and annotations already carry the safety profile. The one real gap is the undocumented lang parameter, which matters less in a reference tool with a default. Otherwise an agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter lang has 0% schema description coverage and no enum, and the description never mentions it at all — no indication of accepted language codes or what changing it affects. This leaves the only parameter completely undocumented in both structured and unstructured form.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the concrete resource set returned: categories, topics, and Hamburg boroughs with their quarters (plus their respective detail pages). An agent can infer this is a reference/lookup tool for filter values, distinct in scope from the search-oriented siblings events_heute, orte_suchen and ort_info. It stops short of an explicit verb ("returns/lists"), so the action is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase "Gueltige Filterwerte / Valid filter values" implies the tool should be called before filtering, but it never says when to use it versus the siblings or that its output feeds into other tools' filter parameters. No exclusions or prerequisites are given. Usage is inferable but not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
orte_suchenOrte suchen / Find placesARead-onlyIdempotentInspect
Ausflugsorte fuer Familien in Hamburg suchen: Museen, Buehnen, Indoor-Spielplaetze, Hoefe, Tierparks, Schwimmbaeder, Bibliotheken ... Mindestens ein Filter: suche (Name oder Stichwort), stadtteil ODER bezirk, alter, kategorie, thema (z.B. 'regen' = drinnen, 'draussen', 'kostenlos', 'baby'). Hoechstens 30 Orte, je mit Oeffnungszeiten kurz, Alter, Preis, Adresse und webseite (Ort-Seite auf miri-app.de). Details und Status heute: ort_info(slug). Search family-friendly places in Hamburg (museums, theatres, indoor play, farms, pools ...). Give at least one filter: suche (keyword), stadtteil or bezirk, alter, kategorie, thema. At most 30 places, each with a link to its page.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | de | |
| alter | No | ||
| suche | No | ||
| thema | No | ||
| bezirk | No | ||
| kategorie | No | ||
| stadtteil | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive behavior, so the safety profile is covered. The description adds the result cap (max 30 places) and the shape of each hit (hours, age, price, address, website), which is genuinely useful context. It does not explain what happens when more than 30 match or how ranking/truncation works.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Content is front-loaded with the purpose and the filter requirement before the result-shape sentences, which is good structure. However, the German and English versions are near-verbatim duplicates, roughly doubling length without adding information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and the description still summarizes what each result contains, so an agent knows what it gets back plus the 30-item ceiling. With seven parameters, only lang lacks any explanation, which is a minor but real omission for a bilingual app.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry parameter meaning, and it largely does: it glosses suche as name or keyword, thema with concrete examples ('regen' = indoors, 'draussen', 'kostenlos', 'baby'), and covers stadtteil, bezirk, alter and kategorie. The lang parameter is never mentioned, leaving one documented gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Ausflugsorte fuer Familien in Hamburg suchen') and enumerates the entity types covered (museums, theatres, indoor play, farms, pools, libraries), which makes its scope immediately distinguishable from the sibling events_heute. It also points to ort_info(slug) for per-place detail, drawing a clean boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit precondition ('Mindestens ein Filter: suche, stadtteil ODER bezirk, alter, kategorie, thema') that the schema itself does not enforce, and routes detail/today-status lookups to ort_info. It does not say how this tool differs from events_heute, so the sibling routing is only partial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ort_infoOrt-Info / Place infoARead-onlyIdempotentInspect
Steckbrief eines Ortes in Hamburg per slug (aus events_heute.ort_slug oder orte_suchen): Beschreibung, Adresse, Oeffnungszeiten, ob heute geoeffnet, laufende Familien-Ausstellung, Termine von heute, haeufige Fragen (Regen, Alter, Preis, Zeiten, Lage), Orte in der Naehe, webseite (Ort-Seite auf miri-app.de). Profile of a family place in Hamburg by slug: description, address, opening hours, open today, today's events, FAQ, nearby places and its page on miri-app.de.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | de | |
| slug | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds no behavior beyond that: no auth requirements, rate limits, error behavior for an unknown slug, or caching notes. Since an output schema exists, the enumerated return fields are context rather than required disclosure, so this lands at baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Content is front-loaded and every clause is substantive, but the same information is given twice, once in German and once in English, roughly doubling length without adding information. For an agent this is redundant token cost rather than clarity, though neither version contains filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not explain return values, and the annotations carry the safety profile. The remaining gap is the undocumented `lang` parameter and the absence of any note on what happens for an invalid or unknown slug. Otherwise complete for a single-resource lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does well for `slug`, naming its concrete sources (events_heute.ort_slug or orte_suchen), which is real meaning beyond the schema's bare string type. The second parameter `lang` (default "de") is never mentioned — the bilingual text hints at language support but never says what `lang` changes or which values are accepted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Steckbrief eines Ortes in Hamburg per slug" / "Profile of a family place in Hamburg by slug") and enumerates the exact payload: description, address, opening hours, today's events, FAQ, nearby places, website. An agent can distinguish this detail-by-slug tool from the search sibling orte_suchen without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent where the required slug comes from ("aus events_heute.ort_slug oder orte_suchen"), which routes correctly from the two sibling tools that produce slugs. It stops short of an explicit exclusion (e.g. "use orte_suchen if you only have a name or district"), so it is clear context rather than full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
events_heute - First observed
kategorien_und_bezirke - First observed
ort_info - First observed
orte_suchen
Related MCP Connectors
Events & things to do in Hamburg, Munich, Oldenburg, San Francisco: tonight, weekend, free, family.
Checked things to do with kids 0–6, city by city, plus free event submissions for review
Find kids and family events, story times and camps near any US city or ZIP
Read-only Paris catalogue: events and dates, places, free things, booking links.
Related MCP Servers
- AlicenseAqualityBmaintenanceSearch real, source-checked kids' events, classes and places across 42 US metro areas from Grassy Knees: this weekend's events, free-only and age filters, listing details and seasonal guides, each with its official link and last-checked date.4507 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to search current public children's activities in Florianópolis, Brazil, read organization profiles and their published groups with schedules and prices, and obtain a canonical link for requesting a visit. All five tools are read-only, publicly accessible over Streamable HTTP with no API key, and never submit a request or confirm a booking.MIT
- AlicenseBqualityDmaintenanceThe first MCP server dedicated to families who travel with their kids. Find activities tested by families worldwide11MIT
- AlicenseNot gradedqualityDmaintenanceDiscover tech events, startup meetups, AI events across cities including hidden ones.49 npm2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.