xyz.urbanplayground/events
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Live event discovery: concerts, club nights, art, comedy, and festivals across 14 cities.
| Author | xyz.urbanplayground |
|---|---|
| Access | mixed |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 197 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"events": {
"url": "https://eventchat-events-mcp-production.up.railway.app/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (31)
get_dizko_onboardingread-onlyUse this when someone wants optional Dizko setup for event discovery or for DJs, artists, musicians, venues, collectives and promoters. With SoundCloud, checks exact database matches and returns claim/create guidance, real published page examples, site-builder benefits and website pricing/signup/billing links. Read-only: never claims, publishes or charges. Use once at setup or when the user asks about their own page; do not interrupt event searches.
Parameters:
city— string — City for a venue, collective or promoter search.name— string — Artist or organization name when there is no SoundCloud; returns candidates to confirm.audience— stringsoundcloud— string — User-provided SoundCloud profile URL or handle for an exact database lookup.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_preference_onboardingread-onlyUse this when a user wants consent-first questions before saving event preferences.
Parameters:
profile_id— string — Stable user/profile id if already known.
Hints: read-only yes · destructive no · idempotent yes · open-world no
create_event_preference_profileUse this only when the user has explicitly agreed to let Dizko save their taste. Creates a private preference profile and returns profile_id and a one-time profile_secret to keep for future personalized calls. Ask the onboarding questions (get_preference_onboarding) first; consent must be true.
Parameters:
consent(required) — boolean — Must be true only after the user agreed to save preferences.preferences— Initial taste: cities, event_types, genres, vibe, neighborhoods, venues, promoters, featuring, avoid, max_price, free, nightlife, day_filters.
Hints: read-only no · destructive no · idempotent no · open-world no
save_event_preferencesdestructiveUse this when the user shares new taste for an existing profile: genres, favorite artists to track (featuring), venues, budget, or per-weekday rules (day_filters). Adds to (mode merge) or replaces saved preferences. Needs profile_id, profile_secret and consent=true.
Parameters:
profile_id(required) — stringprofile_secret(required) — stringconsent(required) — boolean — Must be true only after the user agreed to save preferences.preferences(required)mode— string — merge adds to existing lists; replace overwrites everything.
Hints: read-only no · destructive yes · idempotent no · open-world no
get_event_preferencesread-onlyUse this when the user asks what Dizko remembers about them. Returns a profile's saved preferences, learned taste (with scores) and feedback count.
Parameters:
profile_id(required) — string — Profile id returned by create_event_preference_profile.profile_secret(required) — string — Private profile secret returned when the profile was created.
Hints: read-only yes · destructive no · idempotent yes · open-world no
delete_event_preferencesdestructiveUse this only when the user confirms they want their Dizko connector data deleted. Deletes a profile's saved preferences and feedback history; confirm_delete must be true. Scoped to Dizko only.
Parameters:
profile_id(required) — stringprofile_secret(required) — stringconfirm_delete(required) — boolean — Must be true only after the user confirms deletion.
Hints: read-only no · destructive yes · idempotent yes · open-world no
record_event_feedbackUse this only when the user has answered post-event questions (get_event_feedback_prompt has them). Stores liked, a 1-5 rating or notes for a profile and updates learned taste: a like promotes the event's genres, vibe and venue; a dislike marks the venue and promoter, and only penalizes genres when the notes blame the music.
Parameters:
profile_id(required) — stringprofile_secret(required) — stringevent_id(required) — string — Event id from any Dizko result.liked— booleannotes— string — Free text; mentions of music, crowd, venue, price or timing become learned signals.rating— numberattended_at— string — ISO date/time or YYYY-MM-DD.
Hints: read-only no · destructive no · idempotent no · open-world no
get_event_feedback_promptread-onlyUse this when a user needs a short post-event feedback prompt.
Parameters:
event_id(required) — stringattended_at— string — Optional ISO date/time or YYYY-MM-DD the user attended or planned to attend.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_event_search_followupsread-onlyUse this when an event search needs follow-up questions.
Parameters:
city— stringfree— booleanvibe— arraywhen— stringavoid— arrayquery— stringvenue— stringgenres— arraydate_from— stringmax_price— numberprice_max— numberevent_types— arrayneighborhoods— array
Hints: read-only yes · destructive no · idempotent yes · open-world no
list_citiesread-onlyUse this when a user asks where Dizko works, whether a city is covered, or how fresh the data is. Returns every city with status (live, unlocking, early), event count, timezone and freshness. Unlocking and early cities are searchable but thin.
Hints: read-only yes · destructive no · idempotent yes · open-world no
find_scene_entitiesread-onlyUse this when a user asks who a DJ is or about a venue, collective, or promoter.
Parameters:
kind(required) — stringid— stringcity— stringgenre— stringlimit— numberquery— stringdate_to— stringdate_from— string
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_artistread-onlyUse this when a user wants a canonical artist profile, graph context, published links, and upcoming events. Pass an id or a name query; this does not enumerate the artist catalog.
Parameters:
id— string — Canonical Dizko entity id.city— stringlimit— numberquery— string — Artist or venue name when the id is unknown.date_to— stringdate_from— string
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_venueread-onlyUse this when a user wants a canonical venue profile, graph context, and upcoming events. Pass an id or a name query; this does not enumerate the venue catalog.
Parameters:
id— string — Canonical Dizko entity id.city— stringlimit— numberquery— string — Artist or venue name when the id is unknown.date_to— stringdate_from— string
Hints: read-only yes · destructive no · idempotent yes · open-world no
search_eventsread-onlyUse this when a user asks what's on and names a city, a venue, an artist, or a timeframe. Returns up to `limit` live events with local times (`when`), venue and address, price, genres, vibe, lineup, set times and links; `count` is the total matching. Pass profile_id and profile_secret to rank by saved taste (saved taste ranks results, it never filters them). Filters you pass (genres, vibe, event_types, price_max, venue, featuring) are hard filters; `avoid` and `max_price` are ranking hints. When nothing matches, the result carries `no_results` with how many events exist without the filters and ordered `suggested_relaxations` you can retry directly.
Parameters:
city— string — City name or slug, for example berlin, 'new york', NYC, LA, 'São Paulo'. Required unless query, venue, featuring or promoter is given.free— boolean — Only free-entry events.rank— string — relevance (default) keeps the API order; taste ranks the page by the genres, vibe, avoid and budget in this request.vibe— array — Hard filter, for example underground, intimate, high-energy, queer-friendly, outdoors, free-entry.when— string — Timeframe preset resolved in the city's local timezone: today, tonight, tomorrow, weekend, next weekend, week, next week, month, monday, tuesday, wednesday, thursday, friday, saturday, sunday, any, or an exact date as YYYY-MM-DD. Use date_from/date_to instead for a custom range.avoid— array — Ranking penalties, for example mainstream, huge crowds, expensive tickets, or any word to avoid in titles and tags.limit— integer — Events to return per page (1-200, default 12; rank: taste returns at most 50). count is the total available; page with next_cursor.pride— boolean — Only Pride / LGBTQ+ flagged events.query— string — Free-text search, hybrid-ranked by the live API (exact > substring > fuzzy > semantic). Pass soft intent directly, for example 'dark queer warehouse rave' or 'ambient listening bar', or an artist or event name.venue— string — Hard filter on venue name (text match), for example Berghain.cursor— string — Opaque next_cursor returned by a prior search_events call. Takes precedence over offset.fields— array — Extra per-event fields: description (long form), coordinates, socials, promoters (full objects). Images and source are always included. Omit for the compact default.genres— array — Hard filter, for example techno, house, jazz, hip hop, ambient.offset— integer — Legacy pagination offset; prefer cursor. Pass back next_offset from the previous page, never a number you computed. Applies to relevance ranking only; taste ranking scores one window and ignores it.date_to— string — Inclusive end date, YYYY-MM-DD (city-local).sort_by— string — soonest (chronological), popular (default for multi-day ranges), cost, event_type, or distance (needs origin_lat/origin_lng). Single-day requests default to soonest.promoter— string — Hard filter on promoter slug or display name.date_from— string — Inclusive start date, YYYY-MM-DD (city-local). Overrides `when`.featuring— string — Hard filter on an artist or performer on the lineup.max_price— number — Soft budget used for ranking (over-budget events drop, they are not hidden). Use price_max for a hard cap.price_max— number — Hard filter: maximum ticket price. Events without a listed price are excluded when set.price_min— number — Hard filter: minimum ticket price.origin_lat— number — Latitude for sort_by=distance ('near me'). Only pass coordinates the user gave you.origin_lng— number — Longitude for sort_by=distance.profile_id— string — Optional Dizko preference profile id; pass with profile_secret to rank by saved and learned taste as well. rank then defaults to taste.event_types— array — Hard filter. Vocabulary: party, live music, concert, art, museum, comedy, theatre, talk, meetup, food, festival, wellness, sports.neighborhoods— array — Hard filter on neighborhood names, for example kreuzberg, bushwick.profile_secret— string — Private profile secret returned when the profile was created.
Hints: read-only yes · destructive no · idempotent yes · open-world no
recommend_eventsread-onlyUse this when a user wants live events ranked by taste, vibe, price, and exclusions. Every result carries recommendation_reasons. Request filters (genres, vibe, event_types, price_max, venue, featuring) are hard filters; avoid and max_price only rank.
Parameters:
city— string — City name or slug, for example berlin, 'new york', NYC, LA, 'São Paulo'. Required unless query, venue, featuring or promoter is given.free— boolean — Only free-entry events.vibe— array — Hard filter, for example underground, intimate, high-energy, queer-friendly, outdoors, free-entry.when— string — Timeframe preset resolved in the city's local timezone: today, tonight, tomorrow, weekend, next weekend, week, next week, month, monday, tuesday, wednesday, thursday, friday, saturday, sunday, any, or an exact date as YYYY-MM-DD. Use date_from/date_to instead for a custom range.avoid— array — Ranking penalties, for example mainstream, huge crowds, expensive tickets, or any word to avoid in titles and tags.limit— integer — Same as result_limit; result_limit wins when both are given.pride— boolean — Only Pride / LGBTQ+ flagged events.query— string — Free-text search, hybrid-ranked by the live API (exact > substring > fuzzy > semantic). Pass soft intent directly, for example 'dark queer warehouse rave' or 'ambient listening bar', or an artist or event name.venue— string — Hard filter on venue name (text match), for example Berghain.fields— array — Extra per-event fields: description (long form), coordinates, socials, promoters (full objects). Images and source are always included. Omit for the compact default.genres— array — Hard filter, for example techno, house, jazz, hip hop, ambient.date_to— string — Inclusive end date, YYYY-MM-DD (city-local).sort_by— string — soonest (chronological), popular (default for multi-day ranges), cost, event_type, or distance (needs origin_lat/origin_lng). Single-day requests default to soonest.promoter— string — Hard filter on promoter slug or display name.date_from— string — Inclusive start date, YYYY-MM-DD (city-local). Overrides `when`.featuring— string — Hard filter on an artist or performer on the lineup.max_price— number — Soft budget used for ranking (over-budget events drop, they are not hidden). Use price_max for a hard cap.price_max— number — Hard filter: maximum ticket price. Events without a listed price are excluded when set.price_min— number — Hard filter: minimum ticket price.origin_lat— number — Latitude for sort_by=distance ('near me'). Only pass coordinates the user gave you.origin_lng— number — Longitude for sort_by=distance.profile_id— string — Optional Dizko preference profile id; pass with profile_secret to rank by saved and learned taste as well. rank then defaults to taste.event_types— array — Hard filter. Vocabulary: party, live music, concert, art, museum, comedy, theatre, talk, meetup, food, festival, wellness, sports.result_limit— integer — How many ranked events to return (1-50, default 10).neighborhoods— array — Hard filter on neighborhood names, for example kreuzberg, bushwick.profile_secret— string — Private profile secret returned when the profile was created.
Hints: read-only yes · destructive no · idempotent yes · open-world no
recommend_events_for_userread-onlyUse this when a user wants recommendations personalized with a saved Dizko profile. Saved and learned taste rank the results; they never hide them.
Parameters:
profile_id(required) — stringprofile_secret(required) — string — Private profile secret returned when the profile was created.city— stringfree— booleanvibe— arraywhen— stringavoid— arraylimit— integer — Same as result_limit; result_limit wins when both are given.query— stringvenue— stringgenres— arraydate_to— stringdate_from— stringfeaturing— stringmax_price— numbernightlife— booleanprice_max— numberevent_types— arrayresult_limit— integer — How many ranked events to return (1-50, default 10).neighborhoods— array
Hints: read-only yes · destructive no · idempotent yes · open-world no
plan_nightread-onlyUse this when the user wants a night plan with backups rather than a list. Returns, for one city and date, a primary event plus a nearby fallback (best taste fit within 6 km), a later-starting fallback, and alternates. Accepts the same filters as search_events and an optional profile for saved taste. An empty plan carries the same `no_results` guidance as search.
Parameters:
city— string — City name or slug.free— booleanvibe— arraywhen— string — Timeframe preset resolved in the city's local timezone: today, tonight, tomorrow, weekend, next weekend, week, next week, month, monday, tuesday, wednesday, thursday, friday, saturday, sunday, any, or an exact date as YYYY-MM-DD. Use date_from/date_to instead for a custom range.avoid— array — Ranking penalties.pride— boolean — Only Pride / LGBTQ+ flagged events.query— string — Free-text intent, for example 'concert first then a late party'.venue— stringfields— arraygenres— arraydate_to— string — Inclusive end date, YYYY-MM-DD.promoter— string — Promoter slug or display name.date_from— string — Inclusive start date, YYYY-MM-DD.featuring— stringmax_price— number — Soft budget for ranking.price_max— number — Hard price cap.price_min— number — Hard filter: minimum ticket price.profile_id— string — Optional profile id; pass with profile_secret.event_types— arrayresult_limit— integer — Plan size including the primary (1-6).neighborhoods— arrayprofile_secret— string
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_daily_roundupread-onlyUse this when a user asks what's happening today or tomorrow, or for a morning briefing or scheduled check-in. Returns a one-day digest for a city: top picks plus sections for parties, live music, art, comedy and theatre, talks, food, and more. With a profile, saved, learned and per-weekday taste rank the picks. Pass compact=true for a short push-style digest.
Parameters:
city(required) — string — City name or slug.date— string — Target day, YYYY-MM-DD (city-local). Defaults to today.free— booleanvibe— array — Hard filter.when— string — Single-day preset: today, tonight, tomorrow, or a weekday name. Ranges are rejected; use search_events for those.avoid— array — Ranking penalties.limit— integer — How many of the day's events to fetch and rank.fields— arraygenres— array — Hard filter.compact— boolean — Short digest: title, when, venue, price and link only; 3 picks, up to 4 sections of 3.price_max— numbertop_limit— integerprofile_id— string — Optional profile id; pass with profile_secret to personalize.event_types— array — Hard filter.neighborhoods— arraysection_limit— integerprofile_secret— string
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_artist_eventsread-onlyUse this when a user asks when a DJ, performer or comedian plays next, or whether they play in a city this month. Returns upcoming shows grouped by artist for up to 8 names, deduplicated across sources and date-ordered, optionally scoped to a city. With a profile and no artists named, tracks the profile's saved featuring list.
Parameters:
city— string — Optional city to scope the search; omit for all cities.fields— arrayartists— array — Artist names to look up (max 8 per call).date_to— string — Optional inclusive end date, YYYY-MM-DD.date_from— string — Inclusive start date, YYYY-MM-DD. Defaults to today.profile_id— string — Optional profile id; with no artists given, the saved featuring list is used.profile_secret— stringlimit_per_artist— integer
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_artist_pageread-onlyUse this when a user wants an artist's Dizko page or a specific published mix or set. Returns the page embeds with stable block ids for deep links.
Parameters:
handle(required) — string
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_city_pulseread-onlyUse this when a user asks what's hot, how busy a city is this week, or about scene trends. Returns an aggregate read over the coming days: busiest nights (city-local dates), top venues (attendance-weighted), genre mix, headline events and free-event count, every stat with evidence counts. Public inventory only.
Parameters:
city(required) — string — City name or slug.days— integer — Window length in days from date_from (1-14).date_from— string — Inclusive start date, YYYY-MM-DD. Defaults to today in the city.event_types— array — Optional event-type filter, for example party.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_eventread-onlyUse this only when the user gives an event id, or wants extra detail on an event not in the current results; search results already contain what the template needs. Returns full detail for one event: local times, venue and address, price, lineup, set times, artist socials, image, coordinates and links.
Parameters:
id(required) — string — Event id (UUID) from any Dizko result.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_ticket_purchase_policyread-onlyUse this when a user asks how Dizko agents can buy tickets: signed quote, written confirmation, then a hand off to checkout unless a provider is integrated.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_ticket_offersread-onlyUse this when the user wants tickets for one event, before quoting. Returns ticket options: provider, checkout link, estimated price, whether entry is free, whether autonomous purchase is supported, next_step, and the purchase policy. On the hosted connector Dizko does not buy tickets: next_step is hand_off_to_checkout.
Parameters:
event_id(required) — string — Event id from any Dizko result.
Hints: read-only yes · destructive no · idempotent yes · open-world no
quote_ticket_orderread-onlyUse this when the user has chosen a ticket offer, quantity and constraints. Creates a signed, time-limited quote (quantity, ticket type, max total, currency, refund terms, delivery email, stop conditions) and returns a quote_token to pass unchanged to purchase_ticket_order plus the exact confirmation text to ask the user for. Without an integrated provider it only prepares a hand off to checkout.
Parameters:
event_id(required) — stringcurrency— string — Currency for max_total, for example EUR.offer_id— string — Optional offer_id from get_ticket_offers.quantity— integermax_total— number — Maximum all-in total the user authorizes.ticket_type— string — For example GA, balcony, seated, VIP, or best available.refund_terms— string — Minimum refund/transfer terms the user accepts.delivery_email— string — Where tickets should be delivered, when a provider supports it.add_to_calendar— boolean
Hints: read-only yes · destructive no · idempotent no · open-world no
purchase_ticket_orderdestructiveUse this only when the user has confirmed a quote in writing (the confirmation must say buy or purchase and repeat the quantity and max total; the server rejects it otherwise). Without an integrated purchase provider this buys nothing: it hands off to checkout, returning status requires_external_checkout and the checkout_url where the user pays on the provider's site. Never claim a purchase unless status is purchased. Each quote_token can be submitted once: a repeat returns status quote_already_used and must never be retried.
Parameters:
quote_token(required) — string — The signed quote_token from quote_ticket_order, unchanged.confirmation_text(required) — string — The user's own words confirming the purchase, including buy/purchase, the quantity and the max total.delivery_email— stringadd_to_calendar— booleanuser_payment_profile_id— string — Provider-specific saved payment profile id, when an integrated provider supports autonomous purchase.
Hints: read-only no · destructive yes · idempotent no · open-world yes
get_taste_profileread-onlyUse this when personalizing for a connected user: read their learned Dizko taste plus saved and binned events.
Hints: read-only yes · destructive no · idempotent yes · open-world no
bin_eventdestructiveUse this only when the user confirms an event is not for them. It hides the event and teaches their Dizko taste model.
Parameters:
event_id(required) — stringconfirmed(required) — booleanidempotency_key(required) — string
Hints: read-only no · destructive yes · idempotent yes · open-world no
save_eventUse this when a user confirms they want to save one Dizko event to the connected user's account only after explicit confirmation.
Parameters:
event_id(required) — stringconfirmed(required) — booleanidempotency_key(required) — string
Hints: read-only no · destructive no · idempotent yes · open-world no
add_to_dizko_planUse this when a user confirms they want to add one Dizko event to the connected user's persistent plan only after explicit confirmation.
Parameters:
event_id(required) — stringconfirmed(required) — booleanidempotency_key(required) — string
Hints: read-only no · destructive no · idempotent yes · open-world no
create_event_calendar_fileread-onlyUse this when the user wants one event in Apple Calendar, Google Calendar or Outlook as a file. Builds an importable .ics entry (local time, venue address, lineup, set times, links); the per-event calendar_url is the one-click alternative.
Parameters:
event_id(required) — stringstatus— string
Hints: read-only yes · destructive no · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.