Compare rooms
compare_roomsCompare selected rooms side by side for price, distance, type, availability, features, and trust signals.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| room_ids | Yes | ||
| campus_id | No |
compare_roomsCompare selected rooms side by side for price, distance, type, availability, features, and trust signals.
| Name | Required | Description | Default |
|---|---|---|---|
| room_ids | Yes | ||
| campus_id | No |
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds that comparison includes specific attributes, but does not disclose return format, error behavior for invalid room_ids, or any additional constraints. With annotations covering the read-only nature, this adds moderate value but not rich behavioral detail.
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 sentence that leads with the action verb and immediately specifies the subject and comparison dimensions. Every word adds value, with no filler or repetition of schema information, making it highly concise and well-structured.
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 only 2 parameters, no output schema, and no nested objects, this is a relatively simple tool. The description covers the basic purpose and comparison scope, but omits details about the return format and the role of campus_id. While it is adequate for a simple comparison tool, it leaves some contextual gaps that would be useful for the agent.
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%, and the input schema only provides types and constraints, not meanings. The description clarifies that 'room_ids' refers to 'selected rooms' and implies the comparison fields, but does not mention the optional 'campus_id' parameter at all. It partially compensates for the lack of schema descriptions but leaves a key parameter semantically undocumented.
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 uses a specific verb ('Compare') with a clear resource ('selected rooms') and lists the comparative dimensions (price, distance, type, availability, features, trust signals). This clearly distinguishes it from siblings like get_room_details (single room) and rank_room_matches (ranking), so the 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?
The description implies when to use this tool: when multiple rooms are already selected and need side-by-side comparison. It does not explicitly name alternatives or exclusions, but the context of 'selected rooms' and the comparison focus makes the usage context clear relative to siblings like search_rooms.
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.
Most tools are distinct by resource and action, but the search/catalog cluster is fuzzy: search_universities, search_cities, list_search_metadata, and list_university_campuses overlap in purpose. search_rooms and rank_room_matches also have a similar discovery role, making it easy to select the wrong tool without careful reading.
All tool names follow a consistent snake_case verb_noun pattern, with verbs like add, list, get, search, create, update, and send clearly indicating the action. This makes the tool surface highly predictable and easy to navigate.
20 tools is on the heavier side, but the count is justified by the broad scope: room search, comparison, ranking, favorites, rental requests, messaging, listing creation, and university catalog browsing. The set remains manageable because each tool maps to a distinct workflow step.
Core room-finding workflows are covered well: search, details, compare, favorites, requests, and messages. However, listing management is incomplete (create_listing has no update/delete) and messaging only supports sending a first message, with no tool for replying to an existing conversation, leaving notable dead ends.