Skip to main content
Glama

СПОНТАННО

Спонтанно — случайное событие

spontanno_random_event
Read-only

СПОНТАННО'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.

Input Schema

TableJSON 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

TableJSON Schema
NameRequiredDescriptionDefault
rungYes
viewYes
notesYes
picksYes
captionYes
relaxedYes
site_urlYes
exclude_nextYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources