dayplay-mcp
Server Details
DayPlay MCP — verified SF Bay Area places, events & walkable itineraries for AI agents. Free.
- Status
- Healthy
- Uptime
- 97.9% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Server Listing
- Dayplay
TDQS
Scored across 40 tools
Many tools overlap in purpose: multiple place/event retrieval tools (browse_places, get_places, get_marketing_places; get_events, get_marketing_events, get_happening_today, get_live_now) and internal search pipeline tools (search_parse_intent, search_query_router, search_embed, search_rerank) that are hard to distinguish. Some boundaries are clarified by descriptions, but an agent could easily misselect.
All tools use snake_case with a consistent verb_noun or action_resource pattern (get_, list_, save_, unsave_, mark_, unmark_, search_, share_). No mixing of camelCase or other conventions.
40 tools is far above the recommended 3-15 range and includes many internal pipeline and marketing-specific tools that likely do not need to be exposed as separate agent-callable functions.
The surface covers discovery (events/places), personalization (saves, going, itinerary), search, and social sharing. Minor gaps include no update/delete for shared gems/favorites, no profile editing, and no delete/update for saved plans, but core workflows are present.
Available Tools
40 toolsbrowse_placesCInspect
Places inside a radius, sorted by distance. user_lat, user_lng, and radius_km are numbers.
| Name | Required | Description | Default |
|---|---|---|---|
| user_lat | Yes | Decimal degrees. Send a number, not a string. | |
| user_lng | Yes | Decimal degrees. Send a number, not a string. | |
| radius_km | No | Radius in kilometers. Send a number, not a string. | |
| max_results | No | max_results | |
| search_query | No | Natural-language query. | |
| selected_genres | No | selected_genres | |
| selected_price_tiers | No | selected_price_tiers | |
| selected_subcategories | No | selected_subcategories |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses only that results are distance-sorted; it says nothing about authentication, pagination, error behavior, how radius_km defaults, or what happens if radius_km is omitted. The one behavioral fact (sorted by distance) is a marginal contribution against a large undisclosed surface.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences that are front-loaded with the core scope. However, the second sentence is largely redundant with the schema's own type notes, so it does not fully earn its place. Efficient in length but low in information density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool with no annotations and no output schema, the description is very thin. It leaves search_query, max_results, selected_genres, selected_price_tiers, and selected_subcategories completely unaddressed, and gives no sense of what the tool returns. An agent has insufficient context to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's only parameter claim, that user_lat/user_lng/radius_km are numbers, merely repeats what the schema already states ('Send a number, not a string'), adding no meaning beyond structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description conveys the resource (places) and scope (inside a radius, sorted by distance), which goes beyond a bare name. However, there is no explicit verb, and it does nothing to distinguish this from siblings like get_places, get_local_gems, or get_neighborhoods. An agent cannot tell from the text alone when this radius-based tool beats those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus the many place-related siblings (get_places, get_local_gems, get_marketing_places, etc.). There is no mention of prerequisites, required inputs, or exclusions; usage must be inferred entirely from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_decision_feedCInspect
Ranked decision feed. Send user_lat and user_lng as numbers.
| Name | Required | Description | Default |
|---|---|---|---|
| tz | No | tz | |
| offset | No | offset | |
| user_lat | Yes | Decimal degrees. Send a number, not a string. | |
| user_lng | Yes | Decimal degrees. Send a number, not a string. | |
| radius_km | No | Radius in kilometers. Send a number, not a string. | |
| anchor_city | No | anchor_city | |
| max_results | No | max_results | |
| weekend_day | No | sat or sun. | |
| search_query | No | Natural-language query. | |
| selected_type | No | selected_type | |
| selected_genres | No | selected_genres | |
| event_week_offset | No | event_week_offset | |
| preferred_radius_km | No | Radius in kilometers. Send a number, not a string. | |
| selected_time_bands | No | selected_time_bands | |
| selected_price_tiers | No | selected_price_tiers | |
| selected_subcategories | No | selected_subcategories |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing about read-only safety, authentication, rate limits, or what the "ranked" ordering is based on. It does at least imply a read operation returning ranked items, which is slightly more than nothing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, which is good, but the second sentence merely repeats what the schema already says, so it does not earn its place. Two sentences, one of which is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 16 parameters, no annotations, and no output schema, the description should explain the feed's nature, ranking, and pagination (offset, max_results) behavior, but it covers none of this. For a tool of this complexity it is materially under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's only parameter remark ("Send user_lat and user_lng as numbers") duplicates the schema text verbatim ("Decimal degrees. Send a number, not a string."), adding no new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Ranked decision feed" is essentially a restatement of the tool name get_decision_feed, with only the word "ranked" adding marginal information. There is no verb describing the action and no statement of what the feed actually contains or returns, so an agent cannot distinguish it from siblings like get_events, get_weekend, or get_local_gems.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance given is argument formatting ("Send user_lat and user_lng as numbers"), which is parameter hygiene rather than usage guidance. Nothing states when to use this tool versus the many feed-like siblings, nor any prerequisite or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_event_bridgeDInspect
Event-bridge taxonomy.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Decimal degrees. Send a number, not a string. | |
| lng | No | Decimal degrees. Send a number, not a string. | |
| radius_km | No | Radius in kilometers. Send a number, not a string. | |
| selected_moods | No | selected_moods | |
| lookahead_weeks | No | lookahead_weeks |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden, and it discloses nothing: no indication of read vs. write, auth requirements, rate limits, or what the tool actually returns. Three words provide zero behavioral signal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but brevity here reflects under-specification rather than conciseness. There is no structure to evaluate because there is no substantive content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A five-parameter tool with no annotations, no output schema, and a cryptic name is left almost entirely undocumented. Nothing tells an agent what happens when lat/lng/radius are supplied or omitted, or what the response contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so per the baseline rule the schema does the heavy lifting. However, two parameters (selected_moods, lookahead_weeks) are documented only by restating their names, and the description adds nothing beyond the schema, so this is a floor-level 3 rather than anything better.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Event-bridge taxonomy." is a noun fragment that restates the tool name rather than stating a verb and resource. An agent cannot tell whether this returns events, categories, a hierarchy, or metadata, nor how it differs from siblings like get_events or get_subcategories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of alternatives, and no condition that selects this tool over the many other event/place retrieval tools in the sibling list. The agent is left to guess entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_eventsCInspect
Events for a date and location in San Francisco, Oakland, or Berkeley. Accepts neighborhood (e.g. 'Mission', 'SoMa') OR city-wide (e.g. 'San Francisco', 'Oakland', 'Berkeley').
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Calendar date, YYYY-MM-DD. | |
| limit | No | limit | |
| category | No | category | |
| neighborhood | No | San Francisco, Oakland, or Berkeley neighborhood name, such as Mission. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, yet it discloses nothing about result volume, default limit behavior, sorting, pagination, or coverage (e.g., whether only today's events are returned). It only constrains the geographic scope, which is useful but thin for a read tool with zero structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the resource and scope, and every clause carries information. The 'Accepts ... OR ...' phrasing is a little mechanical but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with no annotations and no output schema, the description covers only date and location. The limit and category parameters are left entirely to the schema, and nothing explains what the response looks like or how many events to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds concrete example values for neighborhood ('Mission', 'SoMa') and the city-wide names, which slightly enriches the schema's own wording, but it says nothing about the limit or category parameters beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource (events) plus the geographic and date scope, which is more than the bare name conveys. It does not, however, explicitly distinguish itself from close siblings like get_happening_today, get_weekend, or get_venue_events, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to specify a location (neighborhood vs. city-wide) but never says when to choose this tool over alternatives such as get_happening_today, get_weekend, or get_venue_events. There is no exclusion guidance and no prerequisite information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_genresDInspect
Catalog genres.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Decimal degrees. Send a number, not a string. | |
| lng | No | Decimal degrees. Send a number, not a string. | |
| radius_km | No | Radius in kilometers. Send a number, not a string. | |
| selected_type | No | selected_type | |
| selected_subcategories | No | selected_subcategories |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It says nothing about whether the result is a static catalog, requires geolocation, is paginated, or is cached. With five parameters and zero behavioral context, a 1 is warranted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two words are maximally concise and front-loaded. However, under-specification is a problem, so it cannot score 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with five parameters (three location-based), no annotations, and no output schema, the description is drastically incomplete. It omits the relationship between location inputs and genre results and gives no return-shape hints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the parameters, giving a baseline of 3. The description adds no parameter meaning (e.g., why lat/lng/radius are needed for a genre catalog), so it does not exceed the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Catalog genres" is a near-tautology that restates the tool name without specifying what action is taken (retrieve? list? build?). It does not distinguish this tool from siblings like get_subcategories or get_neighborhoods, which follow the same catalog-lookup pattern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no indication of when to use this tool versus alternatives such as get_subcategories. No context, prerequisites, or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_happening_todayCInspect
Events and places happening today.
| Name | Required | Description | Default |
|---|---|---|---|
| tz | No | tz | |
| lat | No | Decimal degrees. Send a number, not a string. | |
| lng | No | Decimal degrees. Send a number, not a string. | |
| limit | No | limit | |
| offset | No | offset | |
| radius_km | No | Radius in kilometers. Send a number, not a string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about timezone handling, default radius, pagination, sort order, or what a result contains. The only behavioral hint is that results mix events and places, which is a small disclosure for a 6-parameter, zero-required-parameter query tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, which is structurally fine. However, for a 6-parameter tool with no annotations it is under-specified rather than truly concise, so the brevity costs more than it saves.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With six optional parameters, no annotations, and no output schema, the description should explain timezone/location expectations, defaults, and result shape, and it explains none of them. An agent cannot determine what happens if tz or lat/lng are omitted, or how limit/offset behave.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The lat/lng/radius_km descriptions do add format guidance ('Send a number, not a string'), but tz, limit, and offset are documented only by restating their own names, and the tool description adds no parameter meaning at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Events and places happening today' names the resource and the temporal scope, so an agent knows it returns a mixed set of events and places. It never uses a clear verb and draws only an implicit line against siblings like get_events, get_weekend, and get_live_now, so differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus get_events, get_weekend, or get_live_now, and no prerequisites, defaults, or exclusions. 'Today' in the name is the only routing signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_listingDInspect
One event or place.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Dayplay listing id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses nothing: not that this is a read operation, not what happens when the id is unknown, not whether the id is required (the schema marks it optional). The description is silent on all behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but this is under-specification rather than conciseness — a four-word fragment with no verb, no subject, and no useful front-loaded information. Brevity here costs clarity rather than saving it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup this is still too thin: there is no output schema, so the description should at least indicate what a 'listing' contains or what an invalid/missing id yields. The only reason this is not a 1 is that the tool's surface area is genuinely small.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter 'id' is documented in the schema as the 'Dayplay listing id.' The description adds no format, source, or lookup semantics beyond the schema, so the baseline 3 for a fully-covered schema applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a noun fragment ("One event or place.") that restates the resource noun in the tool name rather than stating an action. It does implicitly clarify that a 'listing' maps to an event or a place, which is mild domain value, but it never says the tool retrieves or returns a listing, and it distinguishes itself from get_events/get_places only by implication of the singular.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many siblings (get_events, get_places, get_venue_events, browse_places, etc.). No prerequisites, no exclusions, no mention of what input is needed to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_live_nowDInspect
What is happening right now.
| Name | Required | Description | Default |
|---|---|---|---|
| tz | No | tz | |
| lat | No | Decimal degrees. Send a number, not a string. | |
| lng | No | Decimal degrees. Send a number, not a string. | |
| limit | No | limit | |
| offset | No | offset | |
| radius_km | No | Radius in kilometers. Send a number, not a string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure and provides essentially nothing: no indication of read-only behavior, no return shape, no pagination, no timezone handling, no explanation of how 'now' is bounded. It is not misleading, but it is behaviorally empty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is short but under-specified rather than concise. Brevity without substance leaves no information to front-load, making the tool harder to invoke correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter tool with no annotations, no output schema, and a crowded sibling set of event and place tools, one vague sentence is wholly insufficient. Nothing tells the agent what a live-now result contains or how it differs from get_events or get_happening_today.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All six parameters have schema descriptions (100% coverage), so the schema carries the burden, and the description adds no parameter meaning on top. Baseline 3 is appropriate, though the schema's own descriptions for tz, limit, and offset are minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a question that essentially restates the tool name in sentence form: 'What is happening right now.' It hints at real-time events but names no specific verb or resource, and does nothing to distinguish it from siblings like get_happening_today, get_events, or get_live_now's obvious relatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives among the many sibling event/place tools. The agent is left to infer everything about when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_local_gemsDInspect
Curated local gems.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | limit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses nothing: no return format, no pagination, no location or personalization scoping, no indication of whether results are static or user-specific. Three words cannot cover a behavior profile for a list tool with none of the structured hints that annotations would supply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The fragment is short but this is under-specification rather than conciseness; there is no front-loaded statement of purpose, scope, or output. Length is not the issue so much as the absence of any earnable content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero annotations, no output schema, and a vague name-synonym description, an agent has almost nothing to decide whether or how to call this versus get_locals_favorites or get_places. The definition is not complete enough to support correct selection or invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 100% for the single limit parameter, so the schema nominally carries the parameter documentation and the baseline is 3. The description adds nothing about what limit controls or its default/max, but the rule sets the baseline here regardless.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Curated local gems" is a noun phrase that essentially restates the tool name get_local_gems rather than stating a verb and resource. An agent cannot tell what a "gem" is (a place? a venue? a saved item?) or how this differs from sibling tools like get_locals_favorites, get_places, or get_top_restaurants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool, when not to, or which of the 30+ sibling discovery tools it supersedes or complements. The agent is left to guess entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_locals_favoritesDInspect
Published locals' favorites.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | city | |
| limit | No | limit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing about read-only status, permissions, pagination, defaults, or what 'published' means. It offers no context beyond the label.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is very short, but it is under-specified rather than efficiently concise. The single fragment is not front-loaded with actionable information and does not earn its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter retrieval tool with no annotations and no output schema, the description is largely incomplete. It names a resource but omits how city and limit behave, what is returned, and how 'published' affects results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters city and limit are documented at baseline. The description adds no meaning beyond the schema, but the rubric sets 3 as the baseline when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a noun phrase, 'Published locals' favorites,' which restates part of the tool name and adds a qualifier but does not state an action verb or distinguish the tool from siblings like get_local_gems. It gives the resource but leaves the purpose implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives. The agent receives no help deciding between this and the many other get_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_marketing_eventsCInspect
Events for a date and neighborhood in San Francisco, Oakland, or Berkeley.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Calendar date, YYYY-MM-DD. | |
| limit | No | limit | |
| offset | No | offset | |
| category | No | category | |
| neighborhood | No | San Francisco, Oakland, or Berkeley neighborhood name, such as Mission. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses almost nothing: it does not mention that results are paginated (limit/offset exist), how they are ordered, what the return shape is, or what the geography filter actually excludes. The one useful hint is the hard geographic constraint, but that is thin for a no-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is efficient, though the brevity borders on under-specification rather than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with no annotations and no output schema, the definition is too sparse. It omits what 'marketing events' are, valid category values, pagination behavior, and any tie-break against the many sibling event tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents date, limit, offset, category, and neighborhood, and a baseline of 3 applies. The description only reinforces the neighborhood geography; it adds nothing about valid category values or pagination semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource ('Events') and adds a geographic scope (San Francisco, Oakland, or Berkeley) plus a neighborhood dimension, so the agent grasps roughly what is returned. However, it never explains what 'marketing' means here or how it differs from the many event siblings (get_events, get_venue_events, get_happening_today, get_weekend), so the distinguishing purpose is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all. With roughly a dozen event-fetching siblings in the tool list, the description gives the agent no basis for choosing this tool over get_events, get_venue_events, or get_weekend, and no stated prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_marketing_neighborhoodsCInspect
The 35 San Francisco, Oakland, and Berkeley neighborhoods.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It gives no read-only indication, no authentication or rate-limit context, no return format, and no side-effect information, leaving the tool's behavior opaque beyond its subject matter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short fragment with no wasted words and the resource is front-loaded. It is efficient, though its extreme brevity edges toward under-specification rather than rich conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and an empty parameter schema, the description does not explain what the tool returns or when it should be called. It also fails to differentiate from sibling get_neighborhoods, so the agent lacks enough context to select it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and the rubric sets a baseline of 4 for 0-param tools. The description adds no parameter details, which is appropriate here since there are none to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as 'The 35 San Francisco, Oakland, and Berkeley neighborhoods,' but it never states what the tool does with them (retrieve, list, summarize). It also does not distinguish this from the sibling get_neighborhoods, so the purpose is only vaguely conveyed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as get_neighborhoods or get_marketing_places. The agent must infer usage entirely from the tool name and terse content label.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_marketing_placesCInspect
Places in a San Francisco, Oakland, or Berkeley neighborhood.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | sort | |
| limit | No | limit | |
| offset | No | offset | |
| open_now | No | When true, only places open now. | |
| neighborhood | No | San Francisco, Oakland, or Berkeley neighborhood name, such as Mission. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full disclosure burden, and it says nothing about read-only semantics, pagination, result caps, or ordering. The only behavioral hint is the geographic restriction already implied by the neighborhood parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short, front-loaded sentence with no waste, which is structurally clean. But it is terse to the point of under-specification for a five-parameter tool with no annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 100% schema coverage the parameters themselves are documented, and there is no output schema to explain. The missing piece is differentiation from the many sibling place-listing tools and any behavioral context, which the description does not supply.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the neighborhood list and the open_now semantics, so the schema already does the heavy lifting. The description only restates the geographic scope that the neighborhood parameter already documents, adding no ordering, limiting, or offset guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The sentence identifies the resource (places) and the geographic scope (SF, Oakland, or Berkeley neighborhoods), which is more than a tautology. However, it does not distinguish this from the many sibling list tools such as get_places, browse_places, or get_local_gems, and the odd 'marketing' prefix is never explained, leaving the agent unsure what makes this listing different.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus the numerous other place-listing siblings (get_places, browse_places, get_local_gems, get_marketing_neighborhoods). The only implicit guidance is the geographic restriction embedded in the purpose sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_itineraryCInspect
The signed-in user's Saved-tab days.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure, and it offers none: nothing about the read-only nature, whether it requires a signed-in session, pagination, or the shape of the result. It is a low-risk zero-parameter read, which softens the gap, but the description still adds no behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short fragment with no padding, appropriately sized for a zero-parameter lookup. It loses a point only because the phrase 'Saved-tab days' is ambiguous rather than compact-and-clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and no parameter documentation, the description is the only source of information, and it does not say what a 'day' is, how the result is structured, or how it relates to list_saves. For a tool an agent must call blind, this is inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate beyond what the schema already shows. This is the baseline 4 case for a no-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The fragment identifies the resource (the signed-in user's saved items, framed as itinerary 'days'), but it is a noun phrase rather than a verb+resource statement and 'Saved-tab days' is cryptic. It also does not distinguish this tool from the very similar sibling list_saves or manage_saved_plans, so an agent cannot confidently choose between them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of the conditions that select this tool over list_saves/get_profile, and no prerequisites such as authentication requirements. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_neighborhoodsBInspect
35 San Francisco, Oakland, and Berkeley neighborhood centroids. Locations outside that area are out of market.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose a meaningful behavioral constraint — the fixed geographic coverage of 35 centroids and the out-of-market boundary — which is more than nothing. But it says nothing about the shape of returned data (names vs. coordinates) or that it is a static lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler, and the coverage count and region are front-loaded. It is appropriately sized for a no-argument lookup.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description covers scope but not what actually comes back (centroid coordinates, labels, identifiers). The geographic boundary is stated, but an agent still cannot predict the return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline of 4 applies. There is nothing for the description to clarify beyond the schema's empty object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (neighborhood centroids) and bounds it geographically to 35 SF/Oakland/Berkeley entries, so an agent can infer it returns a neighborhood list. However, it never states a verb such as 'returns' or 'lists', and it does not differentiate itself from the sibling get_marketing_neighborhoods, leaving the exact action to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The line 'Locations outside that area are out of market' gives an implicit applicability boundary, which is genuinely useful for deciding when this tool applies. It still offers no explicit when-to-use framing or named alternative when the target is outside the Bay Area market.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_placesCInspect
Places in San Francisco, Oakland, or Berkeley. Accepts neighborhood (e.g. 'Mission', 'SoMa', 'San Francisco') and category (e.g. 'brunch', 'sports_bar', 'food', 'nightlife').
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | sort | |
| limit | No | limit | |
| category | No | category | |
| open_now | No | When true, only places open now. | |
| neighborhood | No | San Francisco, Oakland, or Berkeley neighborhood name, such as Mission. | |
| newly_opened_days | No | newly_opened_days |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about read-only semantics, result volume, pagination, or default ordering. It only hints at filtering by neighborhood and category, which is a thin disclosure for a 6-parameter query tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no waste, and the geographic scope is front-loaded. It is efficient, though it spends its limited space on parameter examples rather than routing or behavioral context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters, no annotations, no output schema, and no required parameters, the description omits critical context: how sorting and limiting behave, what newly_opened_days means, and how results are returned. It is not adequate for an agent to invoke the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 100%, so the baseline is 3, but several schema descriptions are bare placeholders ('sort', 'limit', 'category', 'newly_opened_days'). The description adds example values for category ('brunch', 'sports_bar', 'food', 'nightlife') that go somewhat beyond the schema, while its neighborhood examples largely duplicate the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (places) and its geographic scope (San Francisco, Oakland, or Berkeley), but never states a clear verb or action, and does not distinguish this tool from near-identical siblings such as browse_places, get_marketing_places, or get_local_gems. An agent learns what kind of data is behind the tool but not why it should pick this one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives. With over a dozen place/venue siblings available, the absence of routing advice leaves the agent to guess which tool to invoke.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_profileBInspect
The signed-in user's profile.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies authentication via 'signed-in user' and read-only behavior via profile retrieval, but it does not state permissions, error behavior, return format, or any other operational trait.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single five-word fragment that is front-loaded and entirely free of filler. For a zero-parameter tool, this is appropriately sized and wastes no space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with no parameters and no output schema, but because there is also no output schema, the description could reasonably say more about what the returned profile contains or what authentication is required. As written, it is minimally adequate for invocation but leaves behavioral and return-value context thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there are no parameter semantics to document. Per the rubric, this is the baseline of 4 and the description neither adds nor detracts from parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource and its scope: the profile belongs to the signed-in user, so an agent knows it retrieves the current user's profile rather than another user's. The verb is implied by the tool name, and there is no sibling tool for profiles to differentiate against, so this is clear without being maximally specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites beyond the implicit 'signed-in' condition, and no alternatives. An agent has to infer that this is the tool for retrieving the current user's profile, with no exclusion or routing help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subcategoriesDInspect
Catalog subcategories.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Decimal degrees. Send a number, not a string. | |
| lng | No | Decimal degrees. Send a number, not a string. | |
| radius_km | No | Radius in kilometers. Send a number, not a string. | |
| selected_type | No | selected_type | |
| selected_moods | No | selected_moods |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, yet it discloses nothing: no read-only indication, no auth requirements, no return format or pagination behavior. The geo-flavored parameters hint at location-scoped queries that the description never acknowledges.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single two-word fragment is technically short but represents under-specification rather than conciseness. There is no front-loaded intent, scope, or routing information to earn the sentence's place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with no annotations, no output schema, and opaque enum-free filter parameters, this description is completely inadequate. An agent cannot determine what it returns or when it is the right tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. However, the schema's own descriptions for selected_type and selected_moods are tautological ("selected_type"), so neither schema nor description explains what those filters mean or how lat/lng/radius_km scope the catalog.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Catalog subcategories" is a bare verb+resource fragment with no domain context. Among ~40 siblings (get_genres, get_neighborhoods, get_places, etc.) there is no way to tell what these subcategories belong to or how this differs from those catalog-listing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no when-to-use guidance, no preconditions, and no reference to any alternative tool. The agent must guess entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_restaurantsCInspect
Top restaurants. Optional city.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | city | |
| limit | No | limit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden but discloses almost nothing. It never defines the ranking criterion, whether results are cached/live, how many are returned by default, or how the limit interacts with "top" selection; only the noun phrase hints at a read-only collection.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two fragments with no wasted words and the resource is front-loaded. However, this brevity comes from under-specification rather than disciplined editing, so it is concise but not informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, and with ~40 sibling tools competing for selection, the definition should at minimum define the ranking basis and route between alternatives. Neither is present, leaving the agent to guess whether to call this or get_top_venues/get_local_gems.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is nominally 100%, so the baseline is 3, but the schema "descriptions" are placeholder-level ("city", "limit") and convey no real meaning. The description confirms city is optional yet never mentions limit or its effect on the "top" ranking.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Top restaurants" essentially restates the tool name in prose and adds no criteria for what "top" means (rating, popularity, editorial). It does not differentiate from siblings such as get_top_venues, get_local_gems, or get_locals_favorites, which an agent would need to distinguish among.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Optional city" is the only usage signal, and it merely restates that city is optional. There is no when-to-use guidance, no mention of alternatives, and no indication of when this should be preferred over the many other place-listing siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_venuesCInspect
Venues that host the most events.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | limit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It does not disclose pagination, default or maximum limit behavior, authentication needs, or what the response contains. Only the semantic scope is stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence fragment with no wasted words. It is appropriately terse, though it could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter query tool with no output schema and no annotations, the description should at least explain how the limit parameter works and what kind of result is returned. It omits these essentials, leaving the agent with an incomplete picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. However, the schema's only parameter description is the tautological word 'limit', and the tool description adds no further meaning about what the limit controls or its default value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the resource (venues) and the ranking criterion (most events hosted), which distinguishes it from generic place-listing tools like get_places or browse_places. It lacks an explicit verb like 'list' or 'retrieve', but the meaning is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as get_events, get_venue_events, or get_top_restaurants. There are no conditions, prerequisites, or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_venue_eventsCInspect
Upcoming events at one venue.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Dayplay listing id. | |
| limit | No | limit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and discloses almost nothing beyond the word 'upcoming' — no note on pagination, ordering, whether past events are excluded, or return shape. It does not contradict anything, but it adds little behavioral context for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single six-word fragment with zero padding and the scope front-loaded. It is efficiently sized, though the terseness comes at the cost of completeness rather than being optimally balanced.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a callable read tool with two parameters, no annotations, and no output schema, the description leaves too much unstated: it never links the 'id' parameter to the mentioned venue, says nothing about the 'limit' semantics, and gives no guidance on when to prefer it over the many event-related siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (id and limit are documented in the schema), so the baseline is 3. The description adds no parameter meaning beyond the schema and does not clarify that the 'id' is the venue/listing identifier referenced by 'one venue'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (events) and constrains scope to a single venue and to upcoming (future) occurrences, so an agent can tell it returns a venue-specific event list rather than a global feed. It stops short of naming the sibling it contrasts with (e.g. get_events), so it is clear but has no explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no statement of preconditions, and no reference to alternatives such as get_events, get_happening_today, or get_weekend. The agent must infer from the name alone when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_weekendCInspect
Saturday or Sunday feed. weekend_day is sat or sun.
| Name | Required | Description | Default |
|---|---|---|---|
| tz | No | tz | |
| lat | No | Decimal degrees. Send a number, not a string. | |
| lng | No | Decimal degrees. Send a number, not a string. | |
| limit | No | limit | |
| offset | No | offset | |
| radius_km | No | Radius in kilometers. Send a number, not a string. | |
| weekend_day | No | sat or sun. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it discloses essentially nothing: not that this is a read-only query, not the return shape, not how limit/offset pagination behaves, and not whether results are location- or profile-scoped. The only marginally useful statement (accepted weekend_day values) duplicates the enum already in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two very short sentences with the key scoping term ('Saturday or Sunday') front-loaded, so there is no wasted prose. However, the extreme brevity here reflects under-specification rather than disciplined conciseness, capping the score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 parameters, zero required fields, no annotations, and no output schema, the description should clarify which parameters are effectively needed (tz/lat/lng for a location feed), what the feed returns, and how pagination works. None of that is present, leaving an agent unable to call the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 100%, so the schema is nominally the source of parameter documentation and the baseline is 3. The description adds nothing beyond the schema – it repeats the weekend_day options and never explains tz, radius_km, or the limit/offset interaction – so it does not exceed the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says only that this is a 'Saturday or Sunday feed' – it never says what the feed contains (events, places, venues?) or what distinguishes it from the many other feed siblings such as get_happening_today, get_decision_feed, and get_live_now. Stating 'weekend_day is sat or sun' merely restates the tool name and the schema enum, making this close to tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this over get_happening_today (the obvious temporal-feed alternative) or get_events, nor any stated prerequisites such as whether location (lat/lng/tz) must be supplied. The agent is left to infer everything about selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_goingBInspect
Events the signed-in user is attending.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral context. It does disclose the key scope constraint that results are limited to the signed-in user's attendance, which implies authentication. It does not state pagination, sorting, return shape, or explicitly that the operation is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every word contributes to identifying the resource and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with no output schema, the description conveys the basic return concept ('Events') and user scope. However, it omits usage context relative to siblings and behavioral details that would help an agent invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline is 4. The description adds no parameter details because none exist, but it also does not need to compensate for missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource ('Events') and a clear scope ('signed-in user is attending'), so an agent can identify it as a list of the user's RSVP'd events. It does not explicitly differentiate from adjacent siblings like list_saves or mark_going/unmark_going, and it omits an explicit verb such as 'List'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, prerequisites, or alternatives are supplied. The agent is left to infer that this tool is for reading going events and that mark_going/unmark_going modify that state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_savesCInspect
The signed-in user's saves.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: no pagination, sort order, empty-result behavior, or output shape. The only implicit disclosure is that it requires an authenticated user ('signed-in user's').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but this is under-specification rather than conciseness: a single verbless noun phrase that fails to front-load basic information such as what a save is or what is returned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and a bare fragment, the definition is not complete enough for an agent to know what a 'save' refers to (places? events? outings?) or what the response looks like. The 0-parameter simplicity is the only thing keeping this from being worse.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters (100% coverage by definition), so there are no parameter semantics to explain and the baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The fragment names a resource ('saves') and scopes it to the signed-in user, but never states the action (list/retrieve) and largely restates the tool name. It does distinguish ownership scope, which siblings like list_going do not clarify, but leaves the agent to infer the verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus closely related siblings such as list_going, get_my_itinerary, or manage_saved_plans. The agent gets no criteria for selecting this tool over those.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_saved_plansCInspect
List or save the signed-in user's Dayplay itinerary. Requires Google connect. Sellout, closure, and weather alerts are not available yet.
| Name | Required | Description | Default |
|---|---|---|---|
| plan | No | ||
| action | Yes | ||
| plan_id | No | ||
| alert_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and does disclose two useful behavioral facts: the Google-connect auth requirement and the note that sellout/closure/weather alerts are unavailable. It does not, however, explain what 'save' does to existing data, whether it overwrites, or anything about the response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded sentences with no filler; the core action is stated first, followed by the prerequisite and limitation. Efficient, though terseness contributes to the coverage gaps above.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter tool with a nested object, an action enum, and no output schema and no annotations, the description is too thin. It omits two enum actions and all parameter semantics, leaving the agent without enough to invoke non-list/save actions correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is the only source of param meaning, yet it explains none of the four parameters. It mentions 'list'/'save' but never covers set_alert/cancel_alert, and says nothing about plan, plan_id, or alert_type. The description does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('list or save the signed-in user's Dayplay itinerary'), which is meaningful. However, it only covers two of the four actions exposed by the schema enum; set_alert and cancel_alert are omitted entirely, so the stated purpose is incomplete relative to the tool's actual capability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a prerequisite ('Requires Google connect') but gives no when-to-use guidance or differentiation from close siblings like get_my_itinerary, list_saves, save_outing, or plan_outing. An agent cannot tell from the description when this tool is preferable to those alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_goingCInspect
Mark a listing as going. Requires listing_id.
| Name | Required | Description | Default |
|---|---|---|---|
| listing_id | Yes | Dayplay listing id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses nothing beyond the mutation implied by 'Mark'. There is no statement about idempotency (what happens if already marked going), auth requirements, or whether the state change is reversible. 'Requires listing_id' is parameter information, not behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two very short sentences, front-loaded with the action and target state. The second sentence is mildly redundant given the schema already flags listing_id as required, but it is not wasteful enough to penalize heavily.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter mutation with no output schema, the mechanics are nearly covered, but with no annotations and ambiguous 'going' semantics (RSVP? bookmark?), the definition leaves the agent guessing about consequences and confirmation of success.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter, and the schema already documents listing_id as the dayplay listing id and marks it required. The description only restates that it is required, adding no format, source, or lookup guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Mark) and resource (a listing) with the target state (as going), so an agent can see it is the inverse of unmark_going. However, 'going' is domain jargon and the description never differentiates this from siblings like save_listing or list_going, so the differentiation is only implied by the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no mention of the obvious alternative unmark_going or list_going, and no stated preconditions (e.g. must the listing exist, must the user be authenticated). The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_outingBInspect
Save an outing for a date and neighborhood onto the signed-in user's Saved tab. Requires Google connect. San Francisco, Oakland, and Berkeley only.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | YYYY-MM-DD | |
| vibe | No | ||
| budget | No | ||
| interests | No | ||
| neighborhood | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does add real behavioral context: an auth prerequisite (Google connect), a geographic restriction to three cities, and the persistence target (Saved tab). It omits whether a repeat save overwrites or duplicates an existing plan, and what the optional vibe/budget/interests fields actually influence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with the core action front-loaded and constraints appended; no filler. It could be tightened only marginally, and nothing is buried or repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation-style save tool with no annotations and no output schema, the description covers action, destination, auth, and geographic bounds, which is the essential minimum. It falls short on the sibling overlap with save_outing and on the meaning of the three optional parameters, leaving gaps an agent would hit in practice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20% (only date is annotated), so the description must compensate, and it does not. It names date and neighborhood implicitly but says nothing about vibe, budget, or interests — three parameters undocumented in both the schema and the prose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Save an outing') and the destination ('onto the signed-in user's Saved tab'), so the agent knows what the tool does. However, a near-identical sibling named save_outing exists and the description does nothing to distinguish the two, leaving the agent unable to tell them apart without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description supplies two useful preconditions ('Requires Google connect', SF/Oakland/Berkeley only), which shape when the tool is callable. But it gives no guidance on when to choose this over save_outing, manage_saved_plans, or save_listing, so the selection logic is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_listingCInspect
Bookmark a listing for the signed-in user.
| Name | Required | Description | Default |
|---|---|---|---|
| list_name | No | list_name | |
| listing_id | No | Dayplay listing id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses very little. It hints at per-user scoping via 'signed-in user' (implying auth), but says nothing about idempotency, what happens if the listing is already saved, whether it requires a list to exist, or whether it overwrites anything.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the action, resource, and scope with zero filler. It is appropriately sized, though its brevity comes at the cost of the missing usage and behavioral detail noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is under-specified. It omits the semantics of list_name, idempotency behavior, error cases, and how it relates to the sibling save/list operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline of 3 applies even though the description adds no parameter detail. The schema descriptions themselves are thin ('list_name' is defined only as 'list_name'), and the description never mentions list_name or explains how the optional list selection interacts with the 0 required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb (bookmark) with a specific resource (listing) and adds the acting scope ('signed-in user'). It is clear on its own, but it does nothing to distinguish itself from close siblings like unsave_listing, list_saves, or save_outing, so it does not reach the top tier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus unsave_listing, list_saves, save_outing, or manage_saved_plans, all of which appear in the sibling list. The only implicit cue is that it is the bookmarking counterpart to the unsave operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_outingCInspect
Write plan stops onto a calendar day. date is YYYY-MM-DD. stops are listing_id objects.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Calendar date, YYYY-MM-DD. | |
| stops | Yes | Stops to save, in order. Each object needs listing_id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Write' implies mutation, but it never states whether saving stops overwrites or appends to an existing day, whether auth is required, or whether the operation is reversible — critical for a calendar-write tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and free of filler. The two trailing parameter sentences are redundant against the schema, but they cost little and the whole description is appropriately brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a required-parameter mutation tool with no annotations and no output schema, the description is thin. It omits overwrite/replace semantics, auth requirements, and any indication of what a successful save produces — an agent calling it has unresolved questions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both date format and the listing_id-based stops array. The description's two parameter sentences just restate what the schema says, adding no format, ordering, or constraint detail beyond it. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Write plan stops onto a calendar day'), which is more than a restatement of the name. However, it offers no differentiation from near-siblings like plan_outing or manage_saved_plans, leaving the agent to guess which save/plan tool applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all. With siblings plan_outing and manage_saved_plans in the same family, an agent gets no signal on when this write tool is the correct choice versus those alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_embedCInspect
Embed text for the signed-in user.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Natural-language query. | |
| texts | No | Alternate list of strings to embed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It mentions the 'signed-in user' context, which gestures at authentication, but does not disclose return format, embedding model/dimensions, batching semantics, rate limits, or how 'text' and 'texts' behave together.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no wasted words. The brevity is efficient, though it borders on under-specification rather than optimal conciseness for a tool with no annotations or output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, so the description should explain the return value or behavior. Instead it only says 'Embed text,' leaving the agent without critical context about what embedding is returned or how the two parameters interact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents 'text' as a natural-language query and 'texts' as an alternate list. The description adds no parameter semantics beyond that, which matches the baseline of 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Embed text' for the signed-in user. It does not differentiate this tool from sibling search-pipeline tools such as search_smart, search_parse_intent, or search_rerank, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use search_embed versus other search-related siblings, nor any mention of prerequisites, exclusions, or whether this is an internal pipeline step. The agent receives only a bare statement of function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_parse_intentCInspect
Parse a search query into filters for the signed-in user.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Natural-language query. | |
| action | No | action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It indicates the result is scoped to the signed-in user, but does not disclose what filters are returned, whether the operation has side effects, or any other behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with zero wasted words. It states the core action and scope immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but there is no output schema, so the description should explain what the parsed filters look like or how they are consumed. Without that, an agent knows what the tool does but not what to expect from the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description adds no further meaning for 'query' or 'action', and the action field's schema description is unhelpfully just 'action'. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Parse'), resource ('search query'), and result ('into filters'), and adds scope ('for the signed-in user'). It is clear on its own, but it does not differentiate itself from sibling search tools such as search_query_router, search_smart, or search_embed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives like search_smart or search_query_router. The description implies a search-pipeline role but provides no conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_query_routerCInspect
Turn a search phrase into filters for the signed-in user.
| Name | Required | Description | Default |
|---|---|---|---|
| user_lat | No | Decimal degrees. Send a number, not a string. | |
| user_lng | No | Decimal degrees. Send a number, not a string. | |
| radius_km | No | Radius in kilometers. Send a number, not a string. | |
| search_query | Yes | Natural-language query. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not say whether the tool returns filters directly, invokes downstream searches, requires authentication, or is read-only; 'for the signed-in user' is the only behavioral hint and it is implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no waste, which is good structurally. However, the brevity comes from under-specification rather than tight writing, so it does not rise above adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with no annotations and no output schema, the agent needs to know what the produced 'filters' are and how they relate to the geospatial parameters, but the description never addresses this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters including lat/lng/radius units and the natural-language query. The description adds nothing beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a transformation (search phrase -> filters) with a scope hint ('for the signed-in user'), so the purpose is decipherable. But it does not distinguish this tool from the many search siblings (search_parse_intent, search_smart, search_rerank, search_embed), leaving the agent to guess which search entry point applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of when another search tool is preferable, and no prerequisites. With five sibling tools sharing the 'search' prefix, the absence of routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_rerankCInspect
Rerank listings for the signed-in user.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | Listings to rerank. Each item needs an id and title. | |
| query | Yes | Natural-language query. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It implies an authenticated read operation via 'signed-in user,' but discloses nothing about ranking criteria, determinism, item-count limits, latency, or whether any state changes. A reranking tool with zero annotation coverage needs more disclosure than this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is efficient, though its brevity reflects under-specification rather than deliberate economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter reranking primitive with no annotations and no output schema, the description omits the essentials an agent needs: that it operates on a caller-provided candidate list, what ranking signal is used, and how it relates to the sibling search pipeline. The only added context is the signed-in-user scoping.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (query, items with required id/title) are already documented in the schema. The description adds no syntax, format, or semantic detail beyond it; the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource (rerank listings) and hints at personalization via 'signed-in user,' so the action is identifiable. However, it does nothing to distinguish this from the many sibling search tools (search_smart, search_embed, search_parse_intent, search_query_router), and 'rerank' alone doesn't convey that the caller must supply the candidate set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus the sibling search tools, nor any statement that this is a downstream primitive operating on caller-supplied candidates rather than doing retrieval itself. The agent must infer usage entirely from the required 'items' parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_smartCInspect
Search events and places for the signed-in user.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Natural-language query. | |
| user_lat | No | Decimal degrees. Send a number, not a string. | |
| user_lng | No | Decimal degrees. Send a number, not a string. | |
| radius_km | No | Radius in kilometers. Send a number, not a string. | |
| max_results | No | max_results | |
| selected_type | No | selected_type | |
| selected_genres | No | selected_genres | |
| selected_subcategories | No | selected_subcategories |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses only that results are scoped to the signed-in user and cover events and places; it does not state that this is a read-only operation, describe result format or pagination, or mention any auth, rate, or personalization behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It is appropriately concise, though it is very minimal for an 8-parameter search tool, which borders on under-specification rather than conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 8 parameters, no annotations, no output schema, and many sibling search tools, the description is incomplete. It omits return-value expectations, result behavior, parameter guidance, and sibling differentiation, leaving significant gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 even though the description adds no parameter meaning. Several schema descriptions are placeholder-like (e.g., 'max_results', 'selected_type'), but the description does not compensate or add syntax or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Search) and resources (events and places), and it scopes results to the signed-in user. It does not, however, distinguish the tool from the many sibling search_* tools such as search_embed, search_query_router, or search_rerank, so sibling differentiation is absent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. With many sibling search and retrieval tools available, the description gives no conditions, exclusions, or routing advice to help an agent choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_webCInspect
Add web results to a search for the signed-in user.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Natural-language query. | |
| user_lat | No | Decimal degrees. Send a number, not a string. | |
| user_lng | No | Decimal degrees. Send a number, not a string. | |
| max_results | No | max_results | |
| search_query | Yes | Natural-language query. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. It discloses that the operation is scoped to the signed-in user, which implies authentication, but it says nothing about whether this is a read-only operation, how web results are sourced or returned, rate limits, or what happens when no results exist. For a search tool with no annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It is appropriately terse for a short tool definition, even though it is under-specified on other dimensions. Nothing in the sentence is redundant or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given five input parameters, no output schema, no annotations, and a crowded sibling set, the description is far too sparse. It does not explain the tool's relationship to other search tools, does not clarify the expected return shape, and does not compensate for the lack of annotations. An agent has too little context to invoke it confidently versus alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents the five parameters. The description adds no meaning beyond the schema for query, search_query, user_lat, user_lng, or max_results, and does not clarify why both 'query' and 'search_query' exist. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a verb phrase ('Add web results') and a resource ('a search'), but 'Add web results to a search' is ambiguous: it is unclear whether this executes a web search or augments another search result set. It does not differentiate itself from siblings like search_smart, search_embed, or search_query_router. The signed-in user qualifier adds context but not enough to make the tool's exact role immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many sibling search tools, nor when not to use it. The description states a condition ('for the signed-in user') but does not turn that into usage guidance. It leaves the agent to infer routing from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unmark_goingCInspect
Remove a going RSVP.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Dayplay listing id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it discloses almost nothing: not whether the call is idempotent, what happens if the listing is not currently marked, whether it requires an authenticated/going state, or what is returned. For a mutation tool this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single four-word sentence with zero waste and the action front-loaded. It is efficient, though the extreme brevity is partly under-specification rather than pure conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description should at least sketch the effect and edge cases (already-not-going, error behavior). It stops at restating the operation, leaving an agent to infer everything about the call's semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'id' parameter is documented as 'Dayplay listing id.', so the schema does the work. The description adds no extra detail about which identifier is expected, but the baseline of 3 is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Remove) and resource (going RSVP), so the agent can tell this is the inverse of mark_going rather than a general listing mutation. It does not explicitly name the sibling it pairs with, which keeps it short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no stated when-to-use, no precondition (e.g. the RSVP must currently exist), and no mention of mark_going or list_going as the related alternatives. The name implies the context but the description provides no guidance of its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unsave_listingCInspect
Remove one save.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Dayplay listing id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does not meet it. It never indicates whether the listing must currently be saved, whether the operation is idempotent, what happens if the id is absent, or whether authentication is required for a mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three words with zero redundancy and a front-loaded verb, but the brevity leans toward under-specification rather than efficient concision. Nothing extra is said, yet nothing necessary is said either.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description should disclose at least the effect of the operation and any error conditions. It explains none of this, leaving the agent without enough context to call it correctly in edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single 'id' parameter is already documented as the Dayplay listing id. The description adds no syntax, format, or referencing 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'Remove' plus the resource 'save' conveys the basic action, and the tool name unsave_listing reinforces it. However, it never states that the target is a listing or which record, and it does not differentiate itself from siblings like save_listing or unmark_going. Purpose is inferable but vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as save_listing or list_saves. The agent gets no help deciding between this and the other save/going-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upvote_listingCInspect
Upvote a listing.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Dayplay listing id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden for a mutation tool. It does not say whether upvoting is idempotent, whether it can be reversed (there is no obvious downvote/remove sibling), or whether authentication is required, which are material facts for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single complete sentence with zero padding, and the verb leads. It is terse to the point of being under-specified rather than stylishly concise, which keeps it just short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter action with full schema coverage and no output schema, the description is barely sufficient. The missing pieces are behavioral rather than structural: reversal semantics, idempotency, and auth expectations that no structured field covers.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage ('Dayplay listing id.'), so the schema already documents it fully. The description adds no format, sourcing, or resolution detail beyond the schema, which is the expected baseline of 3 when coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Upvote') and resource ('listing'), so the action is unambiguous. However, it does not distinguish this engagement action from close siblings like save_listing, mark_going, or share_gem, leaving the agent to infer how upvoting differs from saving or marking attendance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and no alternatives. With siblings such as save_listing and mark_going present, the agent gets no signal about which engagement verb is appropriate in a given situation.
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.
2 tool updates
- Changed
get_events1 field changed- removed
Input schema / properties / sourceRemoved value: -{ - "description": "source", - "type": "string" -}
- Changed
get_marketing_events1 field changed- removed
Input schema / properties / sourceRemoved value: -{ - "description": "source", - "type": "string" -}
32 tool updates
- Changed
browse_places2 fields changed- added
Input schema / propertiesAdded value: +{ + "max_results": { + "description": "max_results", + "type": "integer" + }, + "radius_km": { + "description": "Radius in kilometers. Send a number, not a string.", + "type": "number" + }, + "search_query": { + "description": "Natural-language query.", + "type": "string" + }, + "selected_genres": { + "description": "selected_genres", + "items": { + "type": "string" + }, + "type": "array" + }, + "selected_price_tiers": { + "description": "selected_price_tiers", + "items": { + "type": "integer" + }, + "type": "array" + }, + "selected_subcategories": { + "description": "selected_subcategories", + "items": { + "type": "string" + }, + "type": "array" + }, + "user_lat": { + "description": "Decimal degrees. Send a number, not a string.", + "type": "number" + }, + "user_lng": { + "description": "Decimal degrees. Send a number, not a string.", + "type": "number" + } +} - added
Input schema / requiredAdded value: +[ + "user_lat", + "user_lng" +]
- Changed
get_decision_feed2 fields changed- added
Input schema / propertiesAdded value: +{ + "anchor_city": { + "description": "anchor_city", + "type": "string" + }, + "event_week_offset": { + "description": "event_week_offset", + "type": "integer" + }, + "max_results": { + "description": "max_results", + "type": "integer" + }, + "offset": { + "description": "offset", + "type": "integer" + }, + "preferred_radius_km": { + "description": "Radius in kilometers. Send a number, not a string.", + "type": "number" + }, + "radius_km": { + "description": "Radius in kilometers. Send a number, not a string.", + "type": "number" + }, + "search_query": { + "description": "Natural-language query.", + "type": "string" + }, + "selected_genres": { + "description": "selected_genres", + "items": { + "type": "string" + }, + "type": "array" + }, + "selected_price_tiers": { + "description": "selected_price_tiers", + "items": { + "type": "integer" + }, + "type": "array" + }, + "selected_subcategories": { + "description": "selected_subcategories", + "items": { + "type": "string" + }, + "type": "array" + }, + "selected_time_bands": { + "description": "selected_time_bands", + "items": { + "type": "string" + }, + "type": "array" + }, + "selected_type": { + "description": "selected_type", + "type": "string" + }, + "tz": { + "description": "tz", + "type": "string" + }, + "user_lat": { + "description": "Decimal degrees. Send a number, not a string.", + "type": "number" + }, + "user_lng": { + "description": "Decimal degrees. Send a number, not a string.", + "type": "number" + }, + "weekend_day": { + "description": "sat or sun.", + "enum": [ + "sat", + "sun" + ], + "type": "string" + } +} - added
Input schema / requiredAdded value: +[ + "user_lat", + "user_lng" +]
- Changed
get_event_bridge9 fields changed- added
Input schema / properties / lat / descriptionAdded value: +"Decimal degrees. Send a number, not a string." - changed
Input schema / properties / lat / typePrevious value: -"string"New value: +"number" - added
Input schema / properties / lng / descriptionAdded value: +"Decimal degrees. Send a number, not a string." - changed
Input schema / properties / lng / typePrevious value: -"string"New value: +"number" - added
Input schema / properties / lookahead_weeks / descriptionAdded value: +"lookahead_weeks" - changed
Input schema / properties / lookahead_weeks / typePrevious value: -"string"New value: +"integer" - added
Input schema / properties / radius_km / descriptionAdded value: +"Radius in kilometers. Send a number, not a string." - changed
Input schema / properties / radius_km / typePrevious value: -"string"New value: +"number" - added
Input schema / properties / selected_moods / descriptionAdded value: +"selected_moods"
- Changed
get_events6 fields changed- added
Input schema / properties / category / descriptionAdded value: +"category" - added
Input schema / properties / date / descriptionAdded value: +"Calendar date, YYYY-MM-DD." - added
Input schema / properties / limit / descriptionAdded value: +"limit" - changed
Input schema / properties / limit / typePrevious value: -"string"New value: +"integer" - added
Input schema / properties / neighborhood / descriptionAdded value: +"San Francisco, Oakland, or Berkeley neighborhood name, such as Mission." - added
Input schema / properties / source / descriptionAdded value: +"source"
- Changed
get_genres8 fields changed- added
Input schema / properties / lat / descriptionAdded value: +"Decimal degrees. Send a number, not a string." - changed
Input schema / properties / lat / typePrevious value: -"string"New value: +"number" - added
Input schema / properties / lng / descriptionAdded value: +"Decimal degrees. Send a number, not a string." - changed
Input schema / properties / lng / typePrevious value: -"string"New value: +"number" - added
Input schema / properties / radius_km / descriptionAdded value: +"Radius in kilometers. Send a number, not a string." - changed
Input schema / properties / radius_km / typePrevious value: -"string"New value: +"number" - added
Input schema / properties / selected_subcategories / descriptionAdded value: +"selected_subcategories" - added
Input schema / properties / selected_type / descriptionAdded value: +"selected_type"
- Changed
get_happening_today11 fields changed- added
Input schema / properties / lat / descriptionAdded value: +"Decimal degrees. Send a number, not a string." - changed
Input schema / properties / lat / typePrevious value: -"string"New value: +"number" - added
Input schema / properties / limit / descriptionAdded value: +"limit" - changed
Input schema / properties / limit / typePrevious value: -"string"New value: +"integer" - added
Input schema / properties / lng / descriptionAdded value: +"Decimal degrees. Send a number, not a string." - changed
Input schema / properties / lng / typePrevious value: -"string"New value: +"number" - added
Input schema / properties / offset / descriptionAdded value: +"offset" - changed
Input schema / properties / offset / typePrevious value: -"string"New value: +"integer" - added
Input schema / properties / radius_km / descriptionAdded value: +"Radius in kilometers. Send a number, not a string." - changed
Input schema / properties / radius_km / typePrevious value: -"string"New value: +"number" - added
Input schema / properties / tz / descriptionAdded value: +"tz"
- Changed
get_listing1 field changed- added
Input schema / properties / id / descriptionAdded value: +"Dayplay listing id."
- Changed
get_live_now11 fields changed- added
Input schema / properties / lat / descriptionAdded value: +"Decimal degrees. Send a number, not a string." - changed
Input schema / properties / lat / typePrevious value: -"string"New value: +"number" - added
Input schema / properties / limit / descriptionAdded value: +"limit" - changed
Input schema / properties / limit / typePrevious value: -"string"New value: +"integer" - added
Input schema / properties / lng / descriptionAdded value: +"Decimal degrees. Send a number, not a string." - changed
Input schema / properties / lng / typePrevious value: -"string"New value: +"number" - added
Input schema / properties / offset / descriptionAdded value: +"offset" - changed
Input schema / properties / offset / typePrevious value: -"string"New value: +"integer" - added
Input schema / properties / radius_km / descriptionAdded value: +"Radius in kilometers. Send a number, not a string." - changed
Input schema / properties / radius_km / typePrevious value: -"string"New value: +"number" - added
Input schema / properties / tz / descriptionAdded value: +"tz"
- Changed
get_local_gems2 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"limit" - changed
Input schema / properties / limit / typePrevious value: -"string"New value: +"integer"
- Changed
get_locals_favorites3 fields changed- added
Input schema / properties / city / descriptionAdded value: +"city" - added
Input schema / properties / limit / descriptionAdded value: +"limit" - changed
Input schema / properties / limit / typePrevious value: -"string"New value: +"integer"
- Changed
get_marketing_events8 fields changed- added
Input schema / properties / category / descriptionAdded value: +"category" - added
Input schema / properties / date / descriptionAdded value: +"Calendar date, YYYY-MM-DD." - added
Input schema / properties / limit / descriptionAdded value: +"limit" - changed
Input schema / properties / limit / typePrevious value: -"string"New value: +"integer" - added
Input schema / properties / neighborhood / descriptionAdded value: +"San Francisco, Oakland, or Berkeley neighborhood name, such as Mission." - added
Input schema / properties / offset / descriptionAdded value: +"offset" - changed
Input schema / properties / offset / typePrevious value: -"string"New value: +"integer" - added
Input schema / properties / source / descriptionAdded value: +"source"
- Changed
get_marketing_places8 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"limit" - changed
Input schema / properties / limit / typePrevious value: -"string"New value: +"integer" - added
Input schema / properties / neighborhood / descriptionAdded value: +"San Francisco, Oakland, or Berkeley neighborhood name, such as Mission." - added
Input schema / properties / offset / descriptionAdded value: +"offset" - changed
Input schema / properties / offset / typePrevious value: -"string"New value: +"integer" - added
Input schema / properties / open_now / descriptionAdded value: +"When true, only places open now." - changed
Input schema / properties / open_now / typePrevious value: -"string"New value: +"boolean" - added
Input schema / properties / sort / descriptionAdded value: +"sort"
- Changed
get_places9 fields changed- added
Input schema / properties / categoryAdded value: +{ + "description": "category", + "type": "string" +} - added
Input schema / properties / limit / descriptionAdded value: +"limit" - changed
Input schema / properties / limit / typePrevious value: -"string"New value: +"integer" - added
Input schema / properties / neighborhood / descriptionAdded value: +"San Francisco, Oakland, or Berkeley neighborhood name, such as Mission." - added
Input schema / properties / newly_opened_days / descriptionAdded value: +"newly_opened_days" - changed
Input schema / properties / newly_opened_days / typePrevious value: -"string"New value: +"integer" - added
Input schema / properties / open_now / descriptionAdded value: +"When true, only places open now." - changed
Input schema / properties / open_now / typePrevious value: -"string"New value: +"boolean" - added
Input schema / properties / sort / descriptionAdded value: +"sort"
- Changed
get_subcategories8 fields changed- added
Input schema / properties / lat / descriptionAdded value: +"Decimal degrees. Send a number, not a string." - changed
Input schema / properties / lat / typePrevious value: -"string"New value: +"number" - added
Input schema / properties / lng / descriptionAdded value: +"Decimal degrees. Send a number, not a string." - changed
Input schema / properties / lng / typePrevious value: -"string"New value: +"number" - added
Input schema / properties / radius_km / descriptionAdded value: +"Radius in kilometers. Send a number, not a string." - changed
Input schema / properties / radius_km / typePrevious value: -"string"New value: +"number" - added
Input schema / properties / selected_moods / descriptionAdded value: +"selected_moods" - added
Input schema / properties / selected_type / descriptionAdded value: +"selected_type"
- Changed
get_top_restaurants3 fields changed- added
Input schema / properties / city / descriptionAdded value: +"city" - added
Input schema / properties / limit / descriptionAdded value: +"limit" - changed
Input schema / properties / limit / typePrevious value: -"string"New value: +"integer"
- Changed
get_top_venues2 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"limit" - changed
Input schema / properties / limit / typePrevious value: -"string"New value: +"integer"
- Changed
get_venue_events3 fields changed- added
Input schema / properties / id / descriptionAdded value: +"Dayplay listing id." - added
Input schema / properties / limit / descriptionAdded value: +"limit" - changed
Input schema / properties / limit / typePrevious value: -"string"New value: +"integer"
- Changed
get_weekend13 fields changed- added
Input schema / properties / lat / descriptionAdded value: +"Decimal degrees. Send a number, not a string." - changed
Input schema / properties / lat / typePrevious value: -"string"New value: +"number" - added
Input schema / properties / limit / descriptionAdded value: +"limit" - changed
Input schema / properties / limit / typePrevious value: -"string"New value: +"integer" - added
Input schema / properties / lng / descriptionAdded value: +"Decimal degrees. Send a number, not a string." - changed
Input schema / properties / lng / typePrevious value: -"string"New value: +"number" - added
Input schema / properties / offset / descriptionAdded value: +"offset" - changed
Input schema / properties / offset / typePrevious value: -"string"New value: +"integer" - added
Input schema / properties / radius_km / descriptionAdded value: +"Radius in kilometers. Send a number, not a string." - changed
Input schema / properties / radius_km / typePrevious value: -"string"New value: +"number" - added
Input schema / properties / tz / descriptionAdded value: +"tz" - added
Input schema / properties / weekend_day / descriptionAdded value: +"sat or sun." - added
Input schema / properties / weekend_day / enumAdded value: +[ + "sat", + "sun" +]
- Changed
mark_going2 fields changed- added
Input schema / propertiesAdded value: +{ + "listing_id": { + "description": "Dayplay listing id.", + "type": "string" + } +} - added
Input schema / requiredAdded value: +[ + "listing_id" +]
- Changed
save_listing2 fields changed- added
Input schema / properties / list_name / descriptionAdded value: +"list_name" - added
Input schema / properties / listing_id / descriptionAdded value: +"Dayplay listing id."
- Changed
save_outing2 fields changed- added
Input schema / propertiesAdded value: +{ + "date": { + "description": "Calendar date, YYYY-MM-DD.", + "type": "string" + }, + "stops": { + "description": "Stops to save, in order. Each object needs listing_id.", + "items": { + "properties": { + "listing_id": { + "description": "Dayplay listing id.", + "type": "string" + } + }, + "required": [ + "listing_id" + ], + "type": "object" + }, + "type": "array" + } +} - added
Input schema / requiredAdded value: +[ + "date", + "stops" +]
- Changed
search_embed2 fields changed- added
Input schema / propertiesAdded value: +{ + "text": { + "description": "Natural-language query.", + "type": "string" + }, + "texts": { + "description": "Alternate list of strings to embed.", + "items": { + "type": "string" + }, + "type": "array" + } +} - added
Input schema / requiredAdded value: +[ + "text" +]
- Changed
search_parse_intent2 fields changed- added
Input schema / propertiesAdded value: +{ + "action": { + "description": "action", + "type": "string" + }, + "query": { + "description": "Natural-language query.", + "type": "string" + } +} - added
Input schema / requiredAdded value: +[ + "query" +]
- Changed
search_query_router2 fields changed- added
Input schema / propertiesAdded value: +{ + "radius_km": { + "description": "Radius in kilometers. Send a number, not a string.", + "type": "number" + }, + "search_query": { + "description": "Natural-language query.", + "type": "string" + }, + "user_lat": { + "description": "Decimal degrees. Send a number, not a string.", + "type": "number" + }, + "user_lng": { + "description": "Decimal degrees. Send a number, not a string.", + "type": "number" + } +} - added
Input schema / requiredAdded value: +[ + "search_query" +]
- Changed
search_rerank2 fields changed- added
Input schema / propertiesAdded value: +{ + "items": { + "description": "Listings to rerank. Each item needs an id and title.", + "items": { + "type": "object" + }, + "type": "array" + }, + "query": { + "description": "Natural-language query.", + "type": "string" + } +} - added
Input schema / requiredAdded value: +[ + "query", + "items" +]
- Changed
search_smart2 fields changed- added
Input schema / propertiesAdded value: +{ + "max_results": { + "description": "max_results", + "type": "integer" + }, + "query": { + "description": "Natural-language query.", + "type": "string" + }, + "radius_km": { + "description": "Radius in kilometers. Send a number, not a string.", + "type": "number" + }, + "selected_genres": { + "description": "selected_genres", + "items": { + "type": "string" + }, + "type": "array" + }, + "selected_subcategories": { + "description": "selected_subcategories", + "items": { + "type": "string" + }, + "type": "array" + }, + "selected_type": { + "description": "selected_type", + "type": "string" + }, + "user_lat": { + "description": "Decimal degrees. Send a number, not a string.", + "type": "number" + }, + "user_lng": { + "description": "Decimal degrees. Send a number, not a string.", + "type": "number" + } +} - added
Input schema / requiredAdded value: +[ + "query" +]
- Changed
search_web2 fields changed- added
Input schema / propertiesAdded value: +{ + "max_results": { + "description": "max_results", + "type": "integer" + }, + "query": { + "description": "Natural-language query.", + "type": "string" + }, + "search_query": { + "description": "Natural-language query.", + "type": "string" + }, + "user_lat": { + "description": "Decimal degrees. Send a number, not a string.", + "type": "number" + }, + "user_lng": { + "description": "Decimal degrees. Send a number, not a string.", + "type": "number" + } +} - added
Input schema / requiredAdded value: +[ + "search_query" +]
- Changed
share_gem2 fields changed- added
Input schema / propertiesAdded value: +{ + "category": { + "description": "category", + "type": "string" + }, + "description": { + "description": "description", + "type": "string" + }, + "location_text": { + "description": "location_text", + "type": "string" + }, + "photo_url": { + "description": "photo_url", + "type": "string" + }, + "submission_type": { + "description": "submission_type", + "type": "string" + }, + "title": { + "description": "title", + "type": "string" + }, + "website_url": { + "description": "website_url", + "type": "string" + } +} - added
Input schema / requiredAdded value: +[ + "title", + "category" +]
- Changed
share_local_favorite2 fields changed- added
Input schema / propertiesAdded value: +{ + "address": { + "description": "address", + "type": "string" + }, + "category": { + "description": "category", + "type": "string" + }, + "city": { + "description": "city", + "type": "string" + }, + "description": { + "description": "description", + "type": "string" + }, + "latitude": { + "description": "Decimal degrees. Send a number, not a string.", + "type": "number" + }, + "longitude": { + "description": "Decimal degrees. Send a number, not a string.", + "type": "number" + }, + "name": { + "description": "name", + "type": "string" + } +} - added
Input schema / requiredAdded value: +[ + "name", + "category", + "latitude", + "longitude" +]
- Changed
unmark_going1 field changed- added
Input schema / properties / id / descriptionAdded value: +"Dayplay listing id."
- Changed
unsave_listing1 field changed- added
Input schema / properties / id / descriptionAdded value: +"Dayplay listing id."
- Changed
upvote_listing1 field changed- added
Input schema / properties / id / descriptionAdded value: +"Dayplay listing id."
39 tool updates
- Added
browse_places - Added
get_decision_feed - Added
get_event_bridge - Changed
get_events6 fields changed- removed
Input schema / properties / category / descriptionRemoved value: -"Category filter (e.g. music, art, food). Filter only; never expands geographic scope beyond the SF Bay Area." - removed
Input schema / properties / date / descriptionRemoved value: -"Target date formatted as YYYY-MM-DD. Narrows results within the SF Bay Area only; never expands geographic scope." - removed
Input schema / properties / limit / descriptionRemoved value: -"Max events to return (default 20)" - changed
Input schema / properties / limit / typePrevious value: -"integer"New value: +"string" - removed
Input schema / properties / neighborhood / descriptionRemoved value: -"Exact SF Bay Area neighborhood name from get_neighborhoods (e.g. Mission, North Beach, Oakland, Berkeley). Only San Francisco, Oakland, and Berkeley neighborhoods are valid. Do NOT pass a location outside the SF Bay Area (e.g. Brooklyn, Silver Lake, Shoreditch, Shibuya) - that is OUT OF MARKET and must be declined with the Dayplay SF-Bay-Area-only message. Never fabricate a neighborhood name." - removed
Input schema / properties / source / descriptionRemoved value: -"Data source filter. Filter only; never expands geographic scope beyond the SF Bay Area."
- Added
get_genres - Added
get_happening_today - Added
get_listing - Added
get_live_now - Added
get_local_gems - Added
get_locals_favorites - Added
get_marketing_events - Added
get_marketing_neighborhoods - Added
get_marketing_places - Added
get_my_itinerary - Changed
get_places8 fields changed- removed
Input schema / properties / limit / descriptionRemoved value: -"Max places to return (default 20)" - changed
Input schema / properties / limit / typePrevious value: -"integer"New value: +"string" - removed
Input schema / properties / neighborhood / descriptionRemoved value: -"Exact SF Bay Area neighborhood name from get_neighborhoods (e.g. Mission, North Beach, Oakland, Berkeley). Only San Francisco, Oakland, and Berkeley neighborhoods are valid. Do NOT pass a location outside the SF Bay Area (e.g. Williamsburg, Santa Monica, Camden, Shibuya) - that is OUT OF MARKET and must be declined with the Dayplay SF-Bay-Area-only message. Never fabricate a neighborhood name." - removed
Input schema / properties / newly_opened_days / descriptionRemoved value: -"Filter for places opened in the last N days" - changed
Input schema / properties / newly_opened_days / typePrevious value: -"integer"New value: +"string" - removed
Input schema / properties / open_now / descriptionRemoved value: -"Filter strictly for SF Bay Area places open right now. Filter only; never expands geographic scope." - changed
Input schema / properties / open_now / typePrevious value: -"boolean"New value: +"string" - removed
Input schema / properties / sort / enumRemoved value: -[ - "rating", - "distance" -]
- Added
get_profile - Added
get_subcategories - Added
get_top_restaurants - Added
get_top_venues - Added
get_venue_events - Added
get_weekend - Added
list_going - Added
list_saves - Changed
manage_saved_plans5 fields changed- removed
Input schema / properties / action / descriptionRemoved value: -"Operation to perform." - removed
Input schema / properties / alert_type / descriptionRemoved value: -"For set_alert: which alert to watch." - removed
Input schema / properties / alert_type / enumRemoved value: -[ - "sellout", - "closure", - "weather" -] - removed
Input schema / properties / plan / descriptionRemoved value: -"For action=save: the full plan object (as returned by plan_outing)." - removed
Input schema / properties / plan_id / descriptionRemoved value: -"For list/set_alert/cancel_alert: the saved plan id (pln_...)."
- Added
mark_going - Changed
plan_outing6 fields changed- removed
Input schema / properties / budget / descriptionRemoved value: -"Optional budget tier for the whole outing." - removed
Input schema / properties / budget / enumRemoved value: -[ - "free", - "budget", - "moderate", - "splurge" -] - changed
Input schema / properties / date / descriptionPrevious value: -"Outing date as YYYY-MM-DD (required). SF Bay Area only."New value: +"YYYY-MM-DD" - removed
Input schema / properties / interests / descriptionRemoved value: -"Optional interests/categories (e.g. music, food, art, comedy) to prioritize." - removed
Input schema / properties / neighborhood / descriptionRemoved value: -"Exact SF Bay Area neighborhood name from get_neighborhoods (required). Out-of-market names are refused." - removed
Input schema / properties / vibe / descriptionRemoved value: -"Optional mood/vibe (e.g. romantic, lively, chill, artsy). Shapes venue picks."
- Added
save_listing - Added
save_outing - Added
search_embed - Added
search_parse_intent - Added
search_query_router - Added
search_rerank - Added
search_smart - Added
search_web - Added
share_gem - Added
share_local_favorite - Added
unmark_going - Added
unsave_listing - Added
upvote_listing
5 tool updates
- First observed
get_events - First observed
get_neighborhoods - First observed
get_places - First observed
manage_saved_plans - First observed
plan_outing
Related MCP Connectors
Read-only search of upcoming SF Bay Area events: AI/tech, dance, music, arts, food, fitness.
31MCP layer for local businesses: discover, query, book, and transact with verified SMB AI agents.
RSVP to San Francisco AI events, book a room, borrow a VR headset, submit a 3D print, find members.
Booking gateway for AI agents — discover events, movies & hotels, hand off to partner checkout.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceLets AI agents discover and filter upcoming civic events and programming across San Francisco parks, plazas, and recreation centers by date range and keyword.19 npmMIT
- AlicenseNot gradedqualityDmaintenancePreference-aware events discovery MCP server that aggregates events, restaurants, and cultural activities across multiple sources and re-ranks them against your personal taste profile to surface things you'd actually want to do.1MIT

autonomad-travelofficial
AlicenseAqualityDmaintenanceAI travel agent over MCP — live flights, hotels, activities, and events worldwide, then completes the booking on autonomad.ai.8112 npm2MIT- AlicenseAqualityCmaintenanceEnables live searching of licensed San Francisco preschools and child care centers, computing ELFA subsidy eligibility and net out-of-pocket costs, and generating ranked recommendations with deterministic scoring versus LLM comparisons.71MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.