SG Property Data
Server Details
Price trends, CAGR, rental yield for Singapore private and HDB property, from URA/HDB records.
- Status
- Healthy
- Uptime
- 99.4% over 41 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: data freshness, sample data, and listings for condos, HDB towns, and landed projects. No overlap.
All tool names follow a consistent verb_noun pattern (get_*, list_*) using snake_case, making them easy to understand.
Five tools is slightly on the smaller side but appropriate for a data portal's free tier; each tool serves a specific discovery or metadata function.
The tools cover discovery and metadata but lack any actual data retrieval endpoints (e.g., stats for districts or projects), which are described as paid. This leaves agents unable to complete core property data requests.
Available Tools
5 toolsget_data_freshnessAInspect
Get metadata about when this dataset was last calculated and what period of sale/rental data it covers. Call this before presenting any number as 'current' - the underlying data is refreshed monthly, not in real time.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description discloses critical behaviors: data is 'refreshed monthly, not in real time' and returns metadata. It implies read-only nature. Sufficient for a metadata 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 sentences, no wasted words. First sentence defines purpose, second provides actionable guidance. Ideal 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?
Given zero parameters and an output schema (present but not shown), the description covers what the tool returns and why to use it. Complete for the tool's simplicity.
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?
No parameters exist, so baseline is 4. Description adds no param info but none is needed.
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 clearly states it 'gets metadata about when this dataset was last calculated and what period...it covers', with a specific verb and resource. It distinguishes from siblings like get_sample_data which retrieve actual data.
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?
Explicitly advises to 'Call this before presenting any number as current', providing context for when to use. Does not mention alternatives, but siblings are different dataset types so no confusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sample_dataAInspect
Get free sample data - real (not synthetic) district and project stats for a small fixed set of examples, in the exact same shape as the paid tools. Use this to verify the data fits your use case before calling the paid tools, which cover the full catalogue of districts and projects.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations present, so description carries full burden. States data is real and same shape, but doesn't disclose additional behaviors like limits or caching. Adequate for simple 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 sentences with no wasted words. Front-loaded with key info and efficiently conveys purpose and usage.
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?
Output schema exists, so return values are covered. Description explains data type and purpose well. Lacks mention of sample size or limitations, but sufficient for given complexity.
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?
Input schema has zero parameters (100% coverage), so baseline 4 applies. Description does not discuss parameters, which is acceptable.
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?
Clearly states 'Get free sample data' with specific qualifiers: real (not synthetic), same shape as paid tools. Distinguishes from siblings by emphasizing 'free' and 'sample' nature.
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?
Explicitly instructs to use this before paid tools to verify fit, implying paid tools for full catalogue. Clear context but lacks explicit when-not-to-use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_condo_projectsAInspect
List condo/apartment projects we track, optionally filtered by district. Free - use this to discover valid project names before calling the paid stats/yield tools, rather than guessing at spelling.
| Name | Required | Description | Default |
|---|---|---|---|
| district | No | Optional two-digit postal district code to filter by, e.g. "09". Omit to list every condo project tracked. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses it is free (cost-related) and used for discovery. It does not detail rate limits or auth, but the output schema handles return data structure. Adequate for a read-only listing 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 sentences, no wasted words. Purpose and usage instructions are front-loaded. Every sentence adds value.
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?
Fully adequate for a tool with one optional parameter, no nested objects, and an output schema. Covers purpose, when to use, and parameter meaning.
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 covers 100% of parameters. Description adds context: parameter filters by district, and the tool's purpose is to discover valid project names to avoid spelling errors. This enhances the schema's description.
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?
Clearly states it lists condo/apartment projects with optional district filtering. Distinguishes from sibling tools like list_hdb_towns and list_landed_projects by property type and mentions it's a free tool for discovering project names.
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?
Explicitly advises using this tool before paid stats/yield tools to find correct project names, and warns against guessing. Implicitly excludes paid tools and sibling list tools for other property types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_hdb_townsAInspect
List every HDB town we track, with the specific flat types available for each. Free - use this to discover valid town names and flat types before calling the paid get_hdb_town_stats tool.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description clearly indicates a read-only list operation. Does not mention side effects, but none expected. Minor missing info on potential limitations.
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 efficient sentences. First sentence states functionality, second provides usage context. No fluff.
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 no parameters and output schema present, description fully covers purpose and usage. Mentions flat types which is key detail.
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?
No parameters in schema; baseline score of 4 applies. Description doesn't need to add parameter info.
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?
Clearly states it lists every HDB town with flat types available. Distinguishable from siblings (condo/landed projects, sample data, freshness).
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?
Explicitly tells when to use (discover valid town names and flat types) and names an alternative (paid get_hdb_town_stats). Also notes it's free.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_landed_projectsAInspect
List landed house projects/estates we track, optionally filtered by district. Free - use this to discover valid names before calling the paid stats/yield tools.
| Name | Required | Description | Default |
|---|---|---|---|
| district | No | Optional two-digit postal district code to filter by. Omit to list every landed project tracked. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It correctly indicates a read operation ('list') and optional filtering, but does not disclose details like pagination, sorting, or data freshness. The presence of an output schema partially compensates.
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, under 30 words total, front-loaded with the verb and resource. Every sentence adds value: purpose then usage. No wasted words.
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 list tool with one optional parameter and an output schema, the description covers purpose, usage, and filtering option. It mentions the 'free' aspect and the discovery use case. Minor gaps: no mention of read-only nature or result set limits, but overall sufficient.
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 thoroughly documents the 'district' parameter. The description echoes the filter option but adds no new meaning. Baseline 3 is appropriate.
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 clearly states the action: 'List landed house projects/estates we track,' with a specific resource and optional filtering by district. It also distinguishes from siblings (list_condo_projects, list_hdb_towns) by specifying 'landed' and mentioning free usage for name discovery.
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 explicit usage context: 'Free - use this to discover valid names before calling the paid stats/yield tools.' This tells the agent when to use the tool. However, it does not explicitly state when not to use it or name alternative tools, though siblings are listed separately.
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.
5 tool updates
- First observed
get_data_freshness - First observed
get_sample_data - First observed
list_condo_projects - First observed
list_hdb_towns - First observed
list_landed_projects
Related MCP Connectors
Registered Dubai apartment prices, rents, gross yields and returns, by building and by area.
Singapore property & financial data APIs for AI agents. 27 MCP tools. x402 micropayments.
Official Dubai real estate data: live prices and rental yields by area, from the DLD.
Official Barcelona rent and sale prices by neighbourhood, from registered contracts.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenancePersistent memory for AI agents with Ebbinghaus forgetting curve, semantic graph retrieval, and engineering state tracking. Local-first, DuckDB, zero cloud dependency.34 PyPI1MIT
- AlicenseNot gradedqualityAmaintenancePersistent semantic memory for AI agents — hybrid SQLite + FTS5 with DAG-based summaries, context compaction, and 7 MCP tools. Open source, self-hosted, zero API cost.155MIT
- AlicenseNot gradedqualityCmaintenanceA local memory engine for AI agents. Stores conversation episodes, consolidates knowledge through a neuroscience-inspired lifecycle, and builds a personal knowledge graph — all in a local SQLite database.16MIT
- AlicenseBqualityBmaintenancePersistent memory for AI agents with knowledge graph, Hebbian learning, 4-signal RRF fusion search, GraphRAG enrichment, FSRS spaced repetition, and anti-hallucination grounding. 12 tools, PostgreSQL.6238 npm29Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.