Skip to content

xyz.urbanplayground/events

by urbanplayground.xyz · remote · local (npm) · no sign-in to list tools · v0.3.0 · published by xyz.urbanplayground

Live event discovery: concerts, club nights, art, comedy, and festivals across 14 cities.

Deletes · 4Changes · 9

31 tools: 4 can delete or cancel things, 9 change things and 18 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http events https://eventchat-events-mcp-production.up.railway.app/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "create_event_calendar_file" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "create_event_calendar_file" says "create": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

31 tools

Deletes or cancels 4Claude Code: deny
  • bin_eventUse this only when the user confirms an event is not for them.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Use this only when the user confirms an event is not for them. It hides the event and teaches their Dizko taste model.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • delete_event_preferencesUse this only when the user confirms they want their Dizko connector data deleted.No findings

    Why it is in this group

    • The name "delete_event_preferences" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Use 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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • purchase_ticket_orderUse 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).No findings

    Why it is in this group

    • The name "purchase_ticket_order" says "purchase": a word that usually means money moves, which cannot be taken back.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Use 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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • save_event_preferencesUse 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).No findings

    Why it is in this group

    • The name "save_event_preferences" says "save": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Use 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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
Changes things 9Claude Code: ask
  • 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.No findings

    Why it is in this group

    • The name "add_to_dizko_plan" says "add": a word for a change.
    Description, as the server wrote it
    Use this when a user confirms they want to add one Dizko event to the connected user's persistent plan only after explicit confirmation.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • create_event_calendar_fileUse this when the user wants one event in Apple Calendar, Google Calendar or Outlook as a file.1 finding

    Why it is in this group

    • The name "create_event_calendar_file" says "create": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "create_event_calendar_file" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "create_event_calendar_file" says "create": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Use 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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • create_event_preference_profileUse this only when the user has explicitly agreed to let Dizko save their taste.No findings

    Why it is in this group

    • The name "create_event_preference_profile" says "create": a word for a change.
    Description, as the server wrote it
    Use 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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • plan_nightUse this when the user wants a night plan with backups rather than a list.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Use 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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • quote_ticket_orderUse this when the user has chosen a ticket offer, quantity and constraints.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Use 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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • recommend_eventsUse this when a user wants live events ranked by taste, vibe, price, and exclusions.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Use 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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • recommend_events_for_userUse this when a user wants recommendations personalized with a saved Dizko profile.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Use this when a user wants recommendations personalized with a saved Dizko profile. Saved and learned taste rank the results; they never hide them.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • record_event_feedbackUse this only when the user has answered post-event questions (get_event_feedback_prompt has them).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Use 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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • save_eventUse this when a user confirms they want to save one Dizko event to the connected user's account only after explicit confirmation.No findings

    Why it is in this group

    • The name "save_event" says "save": a word for a change.
    Description, as the server wrote it
    Use this when a user confirms they want to save one Dizko event to the connected user's account only after explicit confirmation.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 18Claude Code: allow
  • find_scene_entitiesUse this when a user asks who a DJ is or about a venue, collective, or promoter.No findings

    Why it is in this group

    • The name "find_scene_entities" says "find": a word for reading.
    Description, as the server wrote it
    Use this when a user asks who a DJ is or about a venue, collective, or promoter.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_artistUse this when a user wants a canonical artist profile, graph context, published links, and upcoming events.No findings

    Why it is in this group

    • The name "get_artist" says "get": a word for reading.
    Description, as the server wrote it
    Use 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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_artist_eventsUse this when a user asks when a DJ, performer or comedian plays next, or whether they play in a city this month.No findings

    Why it is in this group

    • The name "get_artist_events" says "get": a word for reading.
    Description, as the server wrote it
    Use 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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_artist_pageUse this when a user wants an artist's Dizko page or a specific published mix or set.No findings

    Why it is in this group

    • The name "get_artist_page" says "get": a word for reading.
    Description, as the server wrote it
    Use 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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_city_pulseUse this when a user asks what's hot, how busy a city is this week, or about scene trends.No findings

    Why it is in this group

    • The name "get_city_pulse" says "get": a word for reading.
    Description, as the server wrote it
    Use 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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_daily_roundupUse this when a user asks what's happening today or tomorrow, or for a morning briefing or scheduled check-in.No findings

    Why it is in this group

    • The name "get_daily_roundup" says "get": a word for reading.
    Description, as the server wrote it
    Use 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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_dizko_onboardingUse this when someone wants optional Dizko setup for event discovery or for DJs, artists, musicians, venues, collectives and promoters.No findings

    Why it is in this group

    • The name "get_dizko_onboarding" says "get": a word for reading.
    Description, as the server wrote it
    Use 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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_eventUse 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.No findings

    Why it is in this group

    • The name "get_event" says "get": a word for reading.
    Description, as the server wrote it
    Use 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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_event_feedback_promptUse this when a user needs a short post-event feedback prompt.No findings

    Why it is in this group

    • The name "get_event_feedback_prompt" says "get": a word for reading.
    Description, as the server wrote it
    Use this when a user needs a short post-event feedback prompt.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_event_preferencesUse this when the user asks what Dizko remembers about them.No findings

    Why it is in this group

    • The name "get_event_preferences" says "get": a word for reading.
    Description, as the server wrote it
    Use this when the user asks what Dizko remembers about them. Returns a profile's saved preferences, learned taste (with scores) and feedback count.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_event_search_followupsUse this when an event search needs follow-up questions.No findings

    Why it is in this group

    • The name "get_event_search_followups" says "get": a word for reading.
    Description, as the server wrote it
    Use this when an event search needs follow-up questions.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_preference_onboardingUse this when a user wants consent-first questions before saving event preferences.No findings

    Why it is in this group

    • The name "get_preference_onboarding" says "get": a word for reading.
    Description, as the server wrote it
    Use this when a user wants consent-first questions before saving event preferences.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_taste_profileUse this when personalizing for a connected user: read their learned Dizko taste plus saved and binned events.No findings

    Why it is in this group

    • The name "get_taste_profile" says "get": a word for reading.
    Description, as the server wrote it
    Use this when personalizing for a connected user: read their learned Dizko taste plus saved and binned events.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_ticket_offersUse this when the user wants tickets for one event, before quoting.No findings

    Why it is in this group

    • The name "get_ticket_offers" says "get": a word for reading.
    Description, as the server wrote it
    Use 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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_ticket_purchase_policyUse 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.No findings

    Why it is in this group

    • The name "get_ticket_purchase_policy" says "get": a word for reading.
    Description, as the server wrote it
    Use 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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_venueUse this when a user wants a canonical venue profile, graph context, and upcoming events.No findings

    Why it is in this group

    • The name "get_venue" says "get": a word for reading.
    Description, as the server wrote it
    Use 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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_citiesUse this when a user asks where Dizko works, whether a city is covered, or how fresh the data is.No findings

    Why it is in this group

    • The name "list_cities" says "list": a word for reading.
    Description, as the server wrote it
    Use 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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_eventsUse this when a user asks what's on and names a city, a venue, an artist, or a timeframe.No findings

    Why it is in this group

    • The name "search_events" says "search": a word for reading.
    Description, as the server wrote it
    Use 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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.3.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http events https://eventchat-events-mcp-production.up.railway.app/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__events__get_dizko_onboarding",
      "mcp__events__get_preference_onboarding",
      "mcp__events__get_event_preferences",
      "mcp__events__get_event_feedback_prompt",
      "mcp__events__get_event_search_followups",
      "mcp__events__list_cities",
      "mcp__events__find_scene_entities",
      "mcp__events__get_artist",
      "mcp__events__get_venue",
      "mcp__events__search_events",
      "mcp__events__get_daily_roundup",
      "mcp__events__get_artist_events",
      "mcp__events__get_artist_page",
      "mcp__events__get_city_pulse",
      "mcp__events__get_event",
      "mcp__events__get_ticket_purchase_policy",
      "mcp__events__get_ticket_offers",
      "mcp__events__get_taste_profile"
    ],
    "ask": [
      "mcp__events__create_event_preference_profile",
      "mcp__events__record_event_feedback",
      "mcp__events__recommend_events",
      "mcp__events__recommend_events_for_user",
      "mcp__events__plan_night",
      "mcp__events__quote_ticket_order",
      "mcp__events__save_event",
      "mcp__events__add_to_dizko_plan",
      "mcp__events__create_event_calendar_file"
    ],
    "deny": [
      "mcp__events__save_event_preferences",
      "mcp__events__delete_event_preferences",
      "mcp__events__purchase_ticket_order",
      "mcp__events__bin_event"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as events. Review it before you use it.