Singapore land use and property exploration MCP server. Provides tools for searching properties, analyzing land use, querying amenities, transport, schools, demographics, and other Singapore property-related data.
14 tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. Most tools have 1-4 parameters with type info, but descriptions are minimal (10-50 chars) and lack actionable guidance. No tool annotations (readOnlyHint, destructiveHint). Output schemas not documented. Error handling and recovery guidance absent. Naming is verb-forward (search_, find_, query_, analyze_, calculate_) which is good, but parameter descriptions are sparse and many lack constraints (e.g., radiusMeters has no min/max, format has no enum). No evidence of pagination support despite tools returning lists. Composition is reasonable (single responsibility per tool), but chaining IDs not consistently returned.
Analyze land use characteristics around a location
Calculate stamp duty for property transactions
Compare multiple properties side-by-side
Export property data in various formats
Find nearby amenities (schools, hospitals, parks, etc.) around a location
Find nearby schools around a location
Find nearby transport options (bus stops, MRT, taxi stands) around a location
Get attribution information for data sources
Parameter descriptions are minimal (10-50 chars) and lack actionable constraints. E.g., radiusMeters has no min/max bounds, format in export_property_data has no enum (CSV, JSON, etc.), propertyType in calculate_stamp_duty has no enum (HDB, Condo, etc.). LLMs cannot infer valid values without explicit constraints.
Output schemas not documented. Tools return lists (e.g., find_nearby_amenities, search_properties) but no pagination parameters (limit, offset, next_cursor) visible in input schemas. No total_count or result_count in documented outputs. Large result sets will blow context windows.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
Get real-time bus arrival times at a specific bus stop
Query HDB resale flat prices and transaction data
Query available taxis near a location
Query Urban Redevelopment Authority data
Search population demographics for a planning area
Search for properties by address or location
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. All tools are READ_ONLY per metadata, but this is not declared in tool definitions. Agents cannot infer safety/retry semantics from tool definitions alone.
Error handling and recovery guidance absent. No evidence of error responses that tell LLMs what to do next (e.g., 'Planning area not found. Try search_population_demographics with a partial name'). Agents will not know how to recover from failures.
Tool descriptions lack context for selection. E.g., 'Get attribution information for data sources' (get_attribution) does not explain WHEN to call it or what it returns. 'Search for properties by address or location' (search_properties) does not clarify if it searches listings, historical data, or metadata. Descriptions should be 50-200 chars and answer: what, when, why.