list_cities
List all available cities with event counts. Use this to see which cities have events and how many.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
List all available cities with event counts. Use this to see which cities have events and how many.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It states the tool lists cities with event counts, but there's ambiguity about whether cities with zero events are included ('which cities have events' could imply only those with events). It doesn't disclose ordering, pagination, or any other behavioral traits, but the tool is simple enough that this is acceptable.
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 two sentences, front-loaded with the action ('List all available cities with event counts') and then a direct use-case sentence. Every word earns its place, and there is no redundant information.
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 the essence: what it lists and why to use it. It could clarify whether zero-event cities are included, but the tool is simple enough that this is a minor gap. Sibling tools are about events, so this tool's niche is clear.
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 has 0 parameters, so the baseline is 4. The description doesn't need to add parameter semantics since none exist. It adds context about the return value (cities and event counts) which is relevant.
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 ('List'), a clear resource ('all available cities'), and a distinguishing detail ('with event counts'). This clearly separates it from sibling tools like get_upcoming_events and search_events, which focus on events rather than city-level aggregation.
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 explicitly states when to use it: 'Use this to see which cities have events and how many.' This gives a clear use case. However, it doesn't explicitly contrast with alternatives or mention any exclusions, such as 'for event details, use get_upcoming_events.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Each tool has a clearly distinct purpose: list_cities provides an overview of available cities, get_upcoming_events shows chronological events for a specific city, and search_events finds events by keyword across cities. There is no meaningful overlap or ambiguity between them.
All tool names follow a consistent verb_noun pattern: list_cities, get_upcoming_events, and search_events. The verbs are appropriate and the nouns clearly indicate the resource being acted on.
With only 3 tools, the server is well-scoped for event discovery. Each tool serves a distinct purpose and the count is appropriate for the domain, avoiding unnecessary bloat while providing essential functionality.
The tool set covers the core workflow of discovering events: listing cities to see what's available, getting upcoming events for a chosen city, and searching for events by topic or keyword. There are no obvious gaps for a read-only event discovery service.