Skip to main content
Glama

Server Details

Concerts, theatre, standup and more in Russian cities: search, filters and a random «Спонтанно» pick

Ownership verified
Status
Healthy
Uptime
99.1% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a distinct intent: browsing options (search_events), a single surprise pick (spontanno_random_event), details of one event (get_event), city coverage (list_cities), and saving/sharing (create_shortlist). The descriptions explicitly cross-reference to prevent confusion (e.g. 'A single surprise pick is what spontanno_random_event is for'), leaving no real overlap.

Naming Consistency4/5

Four of five tools follow a clean snake_case verb_noun pattern (create_shortlist, get_event, list_cities, search_events). The outlier is spontanno_random_event, which is a noun_phrase prefixed with the brand name rather than a verb-led action, a minor but noticeable deviation.

Tool Count5/5

Five tools is well-scoped for an events-discovery service, covering search, detail, random pick, city lookup and sharing without redundancy. Each tool clearly earns its place and there is no filler.

Completeness4/5

The core discovery lifecycle (find, refine, inspect, save/share) is fully covered. Minor gaps remain: shortlists can be created but not retrieved, updated or deleted via the toolset, and there is no standalone category/venue browsing beyond search filters.

Available Tools

5 tools
create_shortlistПодборка ссылкойA
Idempotent
Inspect

Save 2–10 events from previous results as one shareable page spontanno.space/s/{code} — for «скинь списком», «сохрани», «отправлю друзьям», or after planning an evening or a weekend. Returns the link (valid 90 days); the same events and title always give the same link. Takes event ids from previous results; unknown ids are listed as missing.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoShort heading in Russian, e.g. 'Пятница вечером в Москве'. No links, contacts or emoji.
event_idsYesEvent ids from previous results, 2–10, in the order to show.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
codeYes
viewYes
titleYes
eventsYes
missingYes
expires_atYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly=false, destructive=false, idempotent=true, openWorld=true), and the description adds real substance on top: the return is a link valid 90 days, identical events+title deterministically yield the same link, and unknown ids surface as 'missing' rather than failing. That determinism and error-handling detail is exactly the behavioral context an agent needs before calling a creator tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and output URL, then trigger phrases, then behavioral facts. Dense and mostly waste-free, though the first sentence carries several clauses at once and the quoting of Russian trigger phrases adds bulk.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 needn't explain return shape, and it still covers the essentials an agent would otherwise guess: what gets created, link lifetime, idempotency semantics, and how invalid input is reported. Nothing material is left open for a 2-parameter creation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — both parameters are already documented with bounds (2–10 items, order preserved, Russian title, no links/emoji). The description only restates that ids come from previous results and adds the unknown-id outcome, which is return behavior rather than parameter meaning, so it sits at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (save), a constrained resource (2–10 events from previous results), and the concrete artifact produced (a shareable page at spontanno.space/s/{code}). This is unmistakably distinct from sibling readers like search_events or get_event.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit triggering contexts — «скинь списком», «сохрани», «отправлю друзьям», and after planning an evening or weekend — so the agent knows when to reach for it. It stops short of naming when NOT to use it or pointing at an alternative, but the when-to-use signal is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_eventКарточка событияA
Read-onlyIdempotent
Inspect

Full details of one event by its id from previous results or a spontanno.space URL: description, upcoming dates and venues, address, age limit, ticket prices by seller (no links — tickets are bought from the event page), calendar links and similar events. Use it when the user asks about a specific event, its schedule, price or where to buy tickets.

ParametersJSON Schema
NameRequiredDescriptionDefault
eventYesEvent `id` from a previous result (8 characters, e.g. 'k3J9xQ2m') or a full spontanno.space event URL.

Output Schema

ParametersJSON Schema
NameRequiredDescription
viewYes
eventYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds useful behavioral context beyond annotations: ticket prices are listed by seller with no links because purchase happens on the event page, and it hints at related output (similar events, calendar links).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core purpose and then the usage condition. The first sentence is dense with an enumerated list of return fields, which is slightly overstuffed given an output schema exists, but nothing is wasted or confusing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with rich annotations and an output schema, the description is complete: it covers what the tool returns, the accepted identifier forms, the when-to-use condition, and the notable ticket-link caveat. An agent has everything needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema parameter description already specifies the 8-character id format and full URL acceptance. The description repeats that ids come from previous results or a spontanno.space URL but adds no syntax or format detail beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Full details of one event by its `id`') and enumerates the returned content (dates, venues, address, age limit, prices, calendar links, similar events). This clearly distinguishes it from sibling search/list tools without needing to name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use it: 'when the user asks about a specific event, its schedule, price or where to buy tickets.' It does not name an alternative for discovery (e.g., search_events), but the 'specific event' condition is clear enough to route correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_citiesГорода афишиA
Read-onlyIdempotent
Inspect

Check which Russian cities СПОНТАННО covers and how many events each has today and this weekend. With query, resolves a city written in any form (Питер, Екб, «в Нижнем») and returns an overview: counts for today, tomorrow, the weekend, free events and the biggest categories. Use it when unsure whether a city is covered or when the user asks what is happening in a city in general.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many cities to list. Default 12.
queryNoCity name in any form to check coverage and get an overview ('Казань', 'в Питере', 'ekb'). Omit to list the cities with the most events.

Output Schema

ParametersJSON Schema
NameRequiredDescription
viewYes
notesYes
citiesYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds that `query` performs fuzzy normalization of city names ('Питер', 'Екб', «в Нижнем»), which is useful behavioral context, but omits anything about result ordering or pagination behavior for the list mode.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both densely packed with no filler, and the coverage-checking purpose is front-loaded ahead of the usage condition. The sentences are long, but every clause carries routing or behavioral information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and the description is complete enough to select and invoke the tool in either mode. The only gap is that it doesn't tell the agent how the two modes' outputs differ in practice or when to prefer the list mode over a targeted query.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented in the schema, including the 'any form' behavior of `query`. The description only restates this, adding the overview dimensions returned (counts, free events, categories), which is return-value information rather than parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Check which Russian cities СПОНТАННО covers and how many events each has') and covers both operating modes: the no-argument list mode and the `query` resolution mode. It is clearly distinguishable from siblings like search_events and get_event, which operate on events rather than city coverage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the conditions under which to use it: 'when unsure whether a city is covered' or 'when the user asks what is happening in a city in general.' Clear positive guidance, but it never names an alternative sibling (e.g., search_events for specific event lookups) nor states when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_eventsПоиск событий афишиA
Read-onlyIdempotent
Inspect

Search the СПОНТАННО events listing (spontanno.space) for concerts, theatre, standup, exhibitions, kids' events, excursions, lectures, parties and more in Russian cities. Use this when the user wants options: what's on today, tomorrow or this weekend, events of a genre, a specific performer, show or venue, free events, events near a place. Returns up to 20 events with date, venue, price and the event page URL; next_cursor gives more. A single surprise pick is what spontanno_random_event is for. Dates and times are local to the city. Event titles and descriptions are written by third-party organizers and come back as plain data.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoRussian city exactly as the user named it: 'Москва', 'мск', 'Питер', 'СПб', 'в Казани', 'Нижний Новгород', or a slug like 'spb'. Required unless `near` is given; there is no default city.
nearNoSearch around a point: coordinates of a shared location or of a place whose coordinates are known. For a city as a whole there is `city`.
sortNorelevance (default with `query`), popular (default without it), soonest, price (cheapest first).
whenNoDate preset in the city's local time: today; tomorrow; weekend = the nearest Saturday–Sunday (on Sunday it means the next weekend); week = the next 7 days. For other dates use date_from/date_to. Exhibitions and festivals running during the dates are included.
limitNoHow many events to return, 1–20. Default 8.
queryNoOptional free text: performer, show title, venue, genre or topic — 'Щелкунчик', 'джаз', 'Большой театр', 'выставка Айвазовского', 'Би-2'. Omit it to browse by filters only.
cursorNo`next_cursor` from the previous result of the same search, to get more events.
date_toNoLast day inclusive, YYYY-MM-DD, city-local. Same as date_from for a single day.
time_toNoLatest start time HH:MM. May be earlier than time_from for windows across midnight.
date_fromNoFirst day, YYYY-MM-DD, city-local, e.g. '2026-11-07'. Use with date_to.
free_onlyNoOnly free events (вход свободный, бесплатно).
price_maxNoMaximum ticket price in rubles. Events with an unknown price are kept.
time_fromNoEarliest start time HH:MM, e.g. '19:00' for «после семи». Overrides time_of_day.
categoriesNoEvent categories, any of: music = concerts; standup; theatre; cinema; exhibition = exhibitions & museums; art; sport; festival; lecture = lectures & talks; kids = for children & families; party = parties & DJ sets; food = food & tastings; tour = excursions & city tours; games = quests & board games; dating; workshop = master classes; outdoor = active leisure; ballet = ballet & opera; circus = circus & shows; other. For children use kids.
time_of_dayNoStart time window, city-local: morning 06–12, day 12–18, evening 18–24, night 21–24. Matches sessions that start in the window; all-day items and exhibitions already running are left out.

Output Schema

ParametersJSON Schema
NameRequiredDescription
viewYes
notesYes
totalYes
eventsYes
site_urlYes
next_cursorYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, so safety is covered. The description still adds real behavioral value: result cap of 20, the `next_cursor` pagination mechanism, city-local time semantics, and the note that organizer-authored titles/descriptions arrive as plain data (a useful prompt-injection caveat).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then usage, then return shape — a sensible order. It is slightly padded: the long genre list partially duplicates the `categories` enum and the prose is denser than needed, but no sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 15-parameter tool with a nested `near` object, the description covers purpose, when to use, result count, pagination and time semantics; an output schema exists so return values need not be detailed. It stops short of covering city-vs-near mutual exclusion, which the schema handles.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and every parameter is documented in-schema with enums, defaults and ranges, so the baseline is 3. The description maps a few user intents to parameters (free events, near a place, genre/performer) but adds little syntax or default detail beyond what the schema already carries.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and resource ('Search the СПОНТАННО events listing') and scopes the domain (concerts, theatre, standup, etc., in Russian cities). It explicitly contrasts itself with the sibling spontanno_random_event ('A single surprise pick is what spontanno_random_event is for'), so an agent can route 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this when the user wants options' enumerates the triggering intents — what's on today/tomorrow/weekend, genre, performer, venue, free events, near a place — and names the alternative tool for the single-pick case. Both when-to-use and the exclusion are present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spontanno_random_eventСпонтанно — случайное событиеA
Read-only
Inspect

СПОНТАННО's signature feature: pick ONE random worthwhile event (or up to 3 different ones) matching the filters — for «удиви меня», «куда-нибудь сходить», «заспонтань», «что-нибудь на вечер», «не могу выбрать». Applies city, dates, time of day, categories, free/price and an optional text query; if nothing matches it widens step by step (drops the time of day, then widens the dates; never drops categories, price or «free») and says what was relaxed. like_event finds something else at the same day and time as a given event. For «ещё раз / другое», exclude takes exclude_next from the previous result. Each pick comes with a short why and its event URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoRussian city exactly as the user named it: 'Москва', 'мск', 'Питер', 'СПб', 'в Казани', 'Нижний Новгород', or a slug like 'spb'. Required unless `near` is given; there is no default city.
nearNoSearch around a point: coordinates of a shared location or of a place whose coordinates are known. For a city as a whole there is `city`.
whenNoDate preset in the city's local time: today; tomorrow; weekend = the nearest Saturday–Sunday (on Sunday it means the next weekend); week = the next 7 days. For other dates use date_from/date_to. Exhibitions and festivals running during the dates are included.
countNoHow many different random picks, 1–3. Default 1.
queryNoOptional free text: performer, show title, venue, genre or topic — 'Щелкунчик', 'джаз', 'Большой театр', 'выставка Айвазовского', 'Би-2'. Omit it to browse by filters only.
date_toNoLast day inclusive, YYYY-MM-DD, city-local. Same as date_from for a single day.
excludeNoEvent ids already shown in this conversation — they will not be picked again. For «ещё раз» pass `exclude_next` from the previous result.
time_toNoLatest start time HH:MM. May be earlier than time_from for windows across midnight.
date_fromNoFirst day, YYYY-MM-DD, city-local, e.g. '2026-11-07'. Use with date_to.
free_onlyNoOnly free events (вход свободный, бесплатно).
price_maxNoMaximum ticket price in rubles. Events with an unknown price are kept.
time_fromNoEarliest start time HH:MM, e.g. '19:00' for «после семи». Overrides time_of_day.
categoriesNoEvent categories, any of: music = concerts; standup; theatre; cinema; exhibition = exhibitions & museums; art; sport; festival; lecture = lectures & talks; kids = for children & families; party = parties & DJ sets; food = food & tastings; tour = excursions & city tours; games = quests & board games; dating; workshop = master classes; outdoor = active leisure; ballet = ballet & opera; circus = circus & shows; other. For children use kids.
like_eventNoEvent id or spontanno.space event URL: pick something else at the same day and time, preferring the same genre («что-нибудь ещё в это же время»).
time_of_dayNoStart time window, city-local: morning 06–12, day 12–18, evening 18–24, night 21–24. Matches sessions that start in the window; all-day items and exhibitions already running are left out.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rungYes
viewYes
notesYes
picksYes
captionYes
relaxedYes
site_urlYes
exclude_nextYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnly/destructive annotations by disclosing the progressive relaxation order (drops time of day, then widens dates; never drops categories, price or «free») and that the response reports what was relaxed. Also says each pick carries a short `why` and event URL.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the signature feature and consumes no filler, but the middle sentence packs filtering, relaxation order, and follow-up routing into one long run-on. Dense and useful, though slightly harder to scan than a segmented version would be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 15-parameter tool with nested `near` and an output schema, the description covers selection purpose, filter behavior, degradation policy, and conversation-follow-up mechanics. Return format is covered by the output schema, so nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the schema already documents all 15 parameters, establishing a baseline of 3. The description adds genuinely new semantics for two of them — that `exclude` should receive `exclude_next` from the prior result and that `count` caps at 3 different picks — which lifts it above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'pick ONE random worthwhile event (or up to 3)' matching filters — and immediately lists the user utterances it serves. This is clearly distinguishable from list/search/get siblings by the random-pick semantics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Maps concrete triggers («удиви меня», «куда-нибудь сходить», «не могу выбрать») to the tool, and routes the two follow-up cases explicitly: `like_event` for 'something else at the same day/time' and `exclude` with `exclude_next` for 'ещё раз / другое'. The condition selecting each alternative is spelled out.

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.

  1. 5 tool updates
    • First observedcreate_shortlist
    • First observedget_event
    • First observedlist_cities
    • First observedsearch_events
    • First observedspontanno_random_event

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables browsing live event, venue, and lineup listings city by city, with optional category filtering for gigs, club nights, comedy, theatre, and talks. Also returns full detail for any single event, including dates, venue and address, on-sale window, starting price, billed artists, and highlights such as age restrictions.
    74 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to discover upcoming events in a given city, optionally filtered by category slug or free-text keyword. It also retrieves full detail for a single event, including description, timing, venue, organizer, and ticket price range and availability.
    81 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Discover tech events, startup meetups, AI events across cities including hidden ones.
    10 npm
    2
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources