Skip to main content
Glama

sg-property-mcp

Singapore property prices, land use, and neighborhood amenities via MCP — no API keys needed.

An MCP server for Singapore property research. Works out of the box with zero configuration.

What it does

Tool

Description

search_area

Land use and zoning info near a Singapore address

search_area_by_coords

Same as above, using coordinates directly

search_hdb_resale

Recent HDB resale flat prices by town (2017 onwards)

search_nearby_amenities

Schools, MRT, parks, hawker centres, hospitals within a radius

analyze_results

AI-powered analysis of your last search

export_csv / export_md

Save results to CSV or Markdown files

8 tools. Zero API keys. Just works.

Related MCP server: SG Gov MCP Server

Quick start

Desktop app

Add to your MCP client config:

{
  "mcpServers": {
    "sg-property": {
      "command": "npx",
      "args": ["-y", "sg-property-mcp"]
    }
  }
}

CLI (MCP-compatible)

# Example for CLI tools that support MCP:
npx sg-property-mcp

Manual install

npm install -g sg-property-mcp

Then add to your MCP client config:

{
  "mcpServers": {
    "sg-property": {
      "command": "sg-property-mcp"
    }
  }
}

Example conversations

"What's the land use around Bishan MRT?"search_area returns zoning types, plot ratios, planning areas

"Show me recent 4-room HDB prices in Tampines"search_hdb_resale returns transactions with prices, block, storey, lease info

"What amenities are within 500m of 1.3521, 103.8198?"search_nearby_amenities finds schools, MRT stations, parks, hawker centres with distances

"Analyze the price patterns in those results"analyze_results provides AI-generated insights on pricing trends

Data sources

All data comes from free, public APIs. No registration or API keys required.

  • Land use zoning — (c) Urban Redevelopment Authority

  • HDB resale prices — Contains information from data.gov.sg accessed under the Singapore Open Data Licence

  • Geocoding & amenities — Data (c) OpenStreetMap contributors

Requirements

  • Node.js 20.6 or later

  • An MCP-compatible client (any MCP desktop app or CLI)

License

MIT

Available Tools

8 tools
analyze_resultsA

Analyze the last search results using AI. Provides insights, patterns, and summaries. Best used after a search returns results — works with land use, HDB resale, and amenity data.

ParametersJSON Schema
NameRequiredDescriptionDefault
questionNoOptional focus for the analysis (e.g. 'which areas are most dense?', 'what is the price trend?')

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes core behavior (AI analysis, insights, patterns, summaries) but no annotations present. Fails to disclose specifics about AI processing, side effects, or constraints – adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste. First sentence defines action, second provides usage context and scope. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, usage, and data types. Lacks details about output format or limitations. Given no output schema, some expectation for output description exists, but the tool is simple enough that 'insights, patterns, and summaries' may suffice.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter 'question' with schema description. Description adds helpful examples ('which areas are most dense?', 'what is the price trend?'), enhancing understanding beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it analyzes last search results using AI, providing insights, patterns, and summaries. Differentiates from sibling tools that are search/export focused.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly recommends use after search returns results and lists compatible data types (land use, HDB resale, amenity). Lacks explicit 'when not to use' or alternative tool references.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_csvA

Export the last search results to a CSV file. The file must be saved within a directory approved by the client.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesFull path for the CSV file (e.g. '/home/user/exports/results.csv')

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses a key behavior (file must be in approved directory), but without annotations, more details on file handling would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Sufficient for a simple export tool with one parameter, but could mention what happens if no search results or file exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters, and description adds no extra meaning beyond the schema description of filePath.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it exports last search results to CSV, distinguishing it from siblings like export_md.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for exporting CSV but does not explicitly specify when to use over alternatives or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_mdB

Export the last search results to a Markdown file. The file must be saved within a directory approved by the client.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesFull path for the Markdown file (e.g. '/home/user/exports/results.md')

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, description carries full burden. It mentions a directory constraint but does not disclose overwrite behavior, error handling, or return value. 'Approved by client' is vague.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-loaded with purpose. No redundancy or wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description covers purpose and a constraint. However, it lacks details on edge cases (e.g., empty results, path validation) and does not mention return or errors.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the description adds no additional meaning beyond the schema's definition of filePath. Baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Export' and resource 'last search results to a Markdown file'. It distinguishes from siblings like export_csv and analyze_results by specifying output format and source.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The constraint about directory approval is mentioned but no comparison with export_csv for different output needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_attributionsA

Show data source attributions and licences for all data used by this server. Only call this tool when the user explicitly asks about data sources, credits, or attributions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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 describes the tool as showing attributions and licences, implying a read-only operation. While it doesn't explicitly state it is non-destructive, the nature of the tool is clear and no side effects are expected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: the first states the purpose, the second provides a usage guideline. No extraneous information, well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameter-less, annotation-less tool with no output schema, the description is complete. It explains the functionality and when to use it, leaving no gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters and 100% schema description coverage. The description does not need to add parameter details and does so appropriately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Show data source attributions and licences for all data used by this server.' It uses a specific verb and resource, and is easily distinguishable from sibling tools like search or export.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Only call this tool when the user explicitly asks about data sources, credits, or attributions.' This provides a clear when-to-use condition and implicitly tells the agent not to call it otherwise.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_areaA

Search land use and zoning info near a Singapore address. Resolves the address to coordinates, then finds nearby land parcels with zoning details.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesSingapore address to search (e.g. 'Ang Mo Kio Ave 3')
radiusMetersNoSearch radius in meters (10-5000, default 100)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description outlines the two-step process of resolving address to coordinates then finding parcels, but lacks details on failure modes (e.g., unresolvable address), rate limits, or return behavior. Since no annotations are provided, more transparency would be beneficial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the purpose. Every word earns its place, with no redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple search tool with two parameters and no output schema, the description adequately explains the functionality and process. It could mention output format or limitations, but is sufficient given the tool's low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 adds context about address resolution but does not significantly enhance parameter understanding beyond the schema's descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Search land use and zoning info near a Singapore address', specifying the verb and resource. It distinguishes from siblings like 'search_area_by_coords' and 'search_nearby_amenities' by emphasizing address resolution.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for address-based searches but does not explicitly state when to use alternatives like 'search_area_by_coords' (for coordinates) or when not to use. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_area_by_coordsA

Search land use and zoning info near specific coordinates. Skips geocoding — use when you already have lat/lon.

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeYesLatitude (WGS84)
longitudeYesLongitude (WGS84)
radiusMetersNoSearch radius in meters (10-5000, default 100)

TDQS

A3.9/5.0
Behavior3/5

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 discloses the tool is a search (read-only implied) and mentions it skips geocoding, but does not detail output format, pagination, or any potential limitations such as rate limits or data freshness. The description is minimal but covers basic behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, extremely concise, and front-loaded with the core purpose in the first sentence. Every word serves a purpose—no filler or repetition. It is an example of minimal yet effective communication.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 parameters and no output schema, the description covers the essential usage context and purpose. However, it lacks details about the return format, potential output structure, or any caveats about data coverage. While it adequately describes when to use the tool, an agent might need more info to interpret results correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 each parameter. The tool description adds context about why latitude/longitude are used directly ('skips geocoding'), which adds some value beyond the schema. However, it does not provide additional details about parameter constraints or formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches for 'land use and zoning info near specific coordinates' and explicitly mentions it skips geocoding, differentiating it from the sibling 'search_area' tool which likely uses addresses. The verb 'search' and resource are specific, and the 'when you already have lat/lon' clarifies its exact context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance on when to use this tool ('when you already have lat/lon') and implies that if you have an address, you should use a different tool (likely 'search_area'). However, it does not explicitly name the alternative or state when not to use it, which prevents a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_hdb_resaleA

Search HDB resale flat transactions by town and optional flat type. Data covers 2017 onwards, sorted by most recent. Returns price, floor area, storey, lease, and location details.

ParametersJSON Schema
NameRequiredDescriptionDefault
townYesHDB town name in uppercase (e.g. 'ANG MO KIO', 'BEDOK', 'TAMPINES', 'WOODLANDS', 'PUNGGOL', 'SENGKANG'). Must match official HDB town names exactly — invalid names return empty results.
flatTypeNoFlat type filter (e.g. '3 ROOM', '4 ROOM', '5 ROOM', 'EXECUTIVE')
limitNoMax results to return (default 10)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses data coverage (2017 onwards) and sorting (most recent). No annotations provided, so description carries the burden. Could mention rate limits or pagination but provides useful return field list.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence front-loads purpose, no filler. Efficiently conveys scope, data range, sorting, and return fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description lists return fields (price, floor area, etc.). Also mentions data coverage and sorting. Could mention the limit parameter but it's standard.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. Description restates filtering by town and flat type, but schema already describes parameters well. Adds no extra parameter meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'Search' and resource 'HDB resale flat transactions'. Specifies filtering by town and flat type, distinguishes from sibling tools like search_area and search_nearby_amenities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States when to use (search by town, optional flat type) but does not explicitly mention when not to use or alternatives. Context is clear enough for agent to differentiate from siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_nearby_amenitiesA

Search for nearby amenities (schools, hospitals, clinics, hawker centres, parks, MRT stations, bus stops, supermarkets, pharmacies) around a coordinate in Singapore. Returns results sorted by distance. Requires coordinates — use search_area first to geocode an address if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeYesLatitude of the search center point
longitudeYesLongitude of the search center point
radiusMetersNoSearch radius in meters (default 100, max 5000)
categoriesNoFilter by amenity categories. If omitted, searches all types. Options: school, hospital, clinic, food_court, marketplace, park, mrt, bus_stop, supermarket, pharmacy
limitNoMax results to return (default 50)

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It mentions results are sorted by distance, but lacks details on rate limits, authentication, or what happens with no results. Schema already defines parameter constraints, so description adds minimal behavioral insight.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences: first defines purpose and outputs, second provides usage guidance. No redundant information; all content earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, prerequisite, and sorting. Lacks description of return format or behavior on empty results, but given schema covers parameters and no output schema exists, it is reasonably complete for a simple search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. Description adds minor value by mentioning sorting by distance and the list of amenity types (already in enum), but does not elaborate on parameter meanings beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool searches for nearby amenities in Singapore with a specific list of types. It distinguishes itself from sibling 'search_area' by requiring coordinates and suggesting using search_area first for geocoding.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context: requires coordinates and advises using search_area if only an address is available. However, it does not explicitly state when not to use this tool or mention alternative tools for other scenarios.

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.

  1. 8 tool updatesv0.1.0
    • First observedanalyze_results
    • First observedexport_csv
    • First observedexport_md
    • First observedget_attributions
    • First observedsearch_area
    • First observedsearch_area_by_coords
    • First observedsearch_hdb_resale
    • First observedsearch_nearby_amenities

TDQS

A3.9/5.0

Scored across 8 tools

Disambiguation4/5

Tools are mostly distinct with clear purposes. Export_csv and export_md overlap but differ in format; search_area and search_area_by_coords serve same purpose with different inputs but descriptions clarify. Overall, minimal confusion.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case, e.g., search_area, export_csv, get_attributions. No deviations or mixed styles.

Tool Count5/5

With 8 tools covering land use, HDB resale, amenities, analysis, exports, and attributions, the scope is well-focused for a property server. Not too many or too few.

Completeness3/5

Core workflows (search, export, analysis) are covered, but there are notable gaps: no direct property address lookup, no private property transaction data, and no filtering or sorting options. Agents might face dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    C
    maintenance
    Verified Singapore property, tax, affordability, salary, and location data for AI agents. 17 MCP tools, x402 micropayments, source provenance on every response. Singapore live now, more markets coming. Categories: Finance, Real Estate, Data, Singapore, x402, Payments, Government Data
    17
    1
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Unofficial MCP server that exposes PropertyGuru Singapore & Malaysia property listing search as MCP tools, returning detailed listing data without an API key.
    MIT