MCP interface for AI assistants

This interface lets AI assistants such as Claude or ChatGPT read the ad-free, curated event listings of mygn.de (Hamburg, München, Oldenburg + Umland) and rundown.city (San Francisco): what is on today, tomorrow or this weekend?

Server

Server URL
https://mcp.mygn.de/public
Transport
Streamable HTTP
Authentication
none, anonymous
Access
read-only
Cost
free
Rate limits
60 requests per minute per IP address, 600 requests per minute in total
Registry name
de.mygn/events

How to connect

Claude: in the settings, under connectors, add a custom connector and enter the server URL. No sign-in is needed. In Claude Code:

claude mcp add --transport http mygn-events https://mcp.mygn.de/public

ChatGPT and other clients that support remote MCP servers: add the server URL as a Streamable HTTP server without authentication. Many clients read a configuration like this:

{
  "mcpServers": {
    "mygn-events": {
      "url": "https://mcp.mygn.de/public"
    }
  }
}

Example prompts

A connected assistant can answer questions like these:

Tools

The server offers 5 tools, all read-only. Names, descriptions and parameters are taken straight from the server, as an assistant reads them.

list_hubs List cities (hubs)

List the cities (hubs) covered by mygn.de (Hamburg, München, Oldenburg + Umland) and rundown.city (San Francisco): hub slug, display label, timezone and the website of the hub.

More

Pass the slug as hub to the other tools. The hub website is the source to cite.

No parameters.

list_categories List event categories

List the event categories one hub of mygn.de (Hamburg, München, Oldenburg + Umland) and rundown.city (San Francisco) currently has, each with its slug, display label (in the hub's language) and a one-line definition.

More

The slugs are the values for the categories filter of search_events. Typical slugs: party, concert, culture, show, family, food, sport, market, cruise, quiz, tours, other; an event has exactly one.

Parameters

hub string, required
Hub (city): one of hamburg, muenchen, oldenburg, san-francisco; names and abbreviations work too ('Munich', 'MUC', 'HH', 'OL', 'SF', 'SFO', 'Bay Area'), any case.

get_day_overview Day overview

How busy one day is in a hub of mygn.de (Hamburg, München, Oldenburg + Umland) and rundown.city (San Francisco): events per category, free and verified-location counts, whether the day is quiet, normal or busy against the same kind of day in the next 14 days (unknown further out) and top_curated, our editorial picks (occurrence_id, title, starts_at; empty while nothing is rated).

More

An event counts once per day. Pass when (today, tonight, tomorrow) or date; time_from counts only events starting at or after it (busyness stays day-level). Use it for 'is there a lot on this Saturday' before search_events.

Parameters

hub string, required
Hub (city): one of hamburg, muenchen, oldenburg, san-francisco; names and abbreviations work too ('Munich', 'MUC', 'HH', 'OL', 'SF', 'SFO', 'Bay Area'), any case.
date string, optional
The day in the hub's own calendar, YYYY-MM-DD. Required unless when is given.
time_from string, optional
Count only events that start at or after this time of day, HH:MM in the hub's local time (24 hours), for 'tonight'. Events without a known start time (all_day, time_unknown) are not counted.
when string, optional
today, tonight (today from 18:00 unless time_from is given), tomorrow, in the hub's local calendar; echoed as resolved. Replaces date (naming both is an error).
values: today, tonight, tomorrow
verbose boolean, optional
true adds the internal fields (curation score and flags, signals, series_kind, kind, long_running) that are left out by default.
default: false

search_events Search events

Find things to do in Hamburg, München, Oldenburg or San Francisco for a date range: date ideas, tonight, this weekend, free events, family outings, concerts, parties, exhibitions, markets.

More

Use this when a user asks 'what can I do...', 'was ist los...', 'wohin heute Abend'. For best picks use sort='curation'. query matches keywords (e.g. 'jazz', 'Flohmarkt'); weekday, time and free words set the window and free_only; total is 0 when query_fallback. Instead of dates pass when (today, tonight, this_weekend ...). Items: occurrence_id (for get_event), title, category, starts_at (hub local time), all_day, time_unknown (true: no showtime known, never show 00:00), venue, price_text, price_known (false: price not known, do not assume free), age_min, audience, tags, share_url (the event's own page on our site or, without one, our hub page, the source to cite) from mygn.de or rundown.city.

Parameters

hub string, required
Hub (city): one of hamburg, muenchen, oldenburg, san-francisco; names and abbreviations work too ('Munich', 'MUC', 'HH', 'OL', 'SF', 'SFO', 'Bay Area'), any case.
date_from string, optional
First day, inclusive, in the hub's own calendar, YYYY-MM-DD; not earlier than yesterday. At most 31 days to date_to, which is at most 31 days from today. Required unless when or query is given (a weekday or time word in query sets it, else the next 7 days).
date_to string, optional
Last day, inclusive, in the hub's own calendar, YYYY-MM-DD; not before date_from. Required whenever date_from is.
when string, optional
today, tonight (today from 18:00 unless time_from is given), tomorrow, this_weekend (the coming Saturday and Sunday; on a weekend day the current one, on a Sunday that day alone), next_weekend (the one after), in the hub's local calendar; echoed as resolved. Replaces date_from and date_to (naming both is an error).
values: today, tonight, tomorrow, this_weekend, next_weekend
categories array of string, optional
Keep only events of these category slugs (see list_categories); use ['family'] for children's and family events. An unknown slug is an error.
values: party, concert, culture, show, family, food, sport, market, cruise, quiz, tours, other
free_only boolean, optional
true keeps only events known to be free.
default: false
venue string, optional
Venue name or town; matches the venue name as shown in results, so a town name keeps every venue in that town.
query string, optional
Keywords for title and summary, every word must match (compounds split, plurals read). Never a mood like 'romantic'. Filler, pronoun and time words (date, ideas, things to do, ich, ...) are ignored; time words (heute abend, tomorrow, am Wochenende) set the window like when, without dates, when, a weekday or group_by 'event'; night/abend alone is tonight, else a keyword; nothing but fillers and no dates: refused (use when), with dates: query_dropped. A weekday (Samstag, Friday night) sets the window without dates, else narrows the given one (not with group_by 'event'). German free words (kostenlos, gratis, eintritt frei) always set free_only; English free only in a sentence or alone, not before a capitalised word (Free Jazz). Without dates the next 7 days are searched. Kinder, Kids, Familie and family list family events first instead of filtering. If nothing matches, unrelated curated picks of the same filters answer, with query_fallback true: tell the user nothing matched (not with group_by 'event').
max_age_min integer, optional
Keep events with no stated minimum age or one of at most this age; 0 means no age restriction stated.
family_friendly boolean, optional
true keeps events suitable for parents with children (audience.family true; without an audience rating: category family without a minimum age of 16 or more); false keeps the rest.
time_from string, optional
Keep events that start at or after this time of day, HH:MM in the hub's local time (24 hours), for 'tonight'. Events without a known start time (all_day, time_unknown) are dropped. With a time_to before time_from the range wraps past midnight.
time_to string, optional
Keep events that start at or before this time of day, HH:MM in the hub's local time (24 hours).
limit integer, optional
Page size, 1 to 50 (clamped); default 25. total counts items.
cursor string, optional
The next_cursor of the previous page, to read on.
sort string, optional
'time' lists chronologically (default), events without a known start time at the end of their day; 'curation' lists the editorially ranked best first (equal ranks in time order). 'start' and 'date' are accepted as 'time'.
values: time, curation; default: "time"
group_by string, optional
'occurrence': an event once per day, its time slots in slots (the item itself is the first slot). 'event': each event once for the whole range, with first_starts_at, last_starts_at, occurrences_count of its matching dates (filters apply first; with sort 'curation' placed by its best match) and its season_first_starts_at, season_last_starts_at, season_occurrences_count (all its upcoming dates up to 31 days ahead, ignoring the filters) with starts_before_range and continues_after_range. Default: 'event' when sort is 'curation' and the range spans more than one day, else 'occurrence'. Use 'event' for 'when does X open'.
values: occurrence, event
verbose boolean, optional
true adds the internal fields (curation score and flags, signals, series_kind, kind, long_running) that are left out by default.
default: false

get_event Get event details

The full record of one event occurrence (occurrence_id from search_events) in a hub of mygn.de (Hamburg, München, Oldenburg + Umland) and rundown.city (San Francisco): summary, start and end, venue with address and coordinates, price_text and price_known (false: price not known, do not assume free), age_min, audience, url (the organiser's page, for tickets and opening details), the link to this event's own page on our site or, without one, our hub page (share_url), brand, attribution_url (the hub page to cite as the source) and the next 20 other dates (siblings; siblings_truncated true when there are more).

More

Internal fields (signals, series_kind, kind, title_override) only with verbose true. all_day true: spans the whole day. time_unknown true: starts_at is only a date anchor, never show 00:00. series_continues true: the listed dates stop only where our look-ahead stops, so it likely runs on; never say it ends after the last listed date.

Parameters

occurrence_id integer, required
The occurrence_id of an item from search_events.
verbose boolean, optional
true adds the internal fields (curation score and flags, signals, series_kind, kind, long_running) that are left out by default.
default: false

Data and attribution

The server covers mygn.de (Hamburg, München, Oldenburg + Umland) and rundown.city (San Francisco): today up to 31 days ahead, ad-free and curated.

Please credit the source: every event carries a link to its page on rundown.city in share_url, which assistants should pass on. The organiser's own page is in url.

Dates, prices and venues can change; the organiser's page is authoritative.

Legal and contact

The server is listed in the official MCP registry as de.mygn/events.