Skip to main content
Glama
chrischall

compass-mcp

by chrischall

Get Compass property details

compass_get_property
Read-onlyIdempotent

Fetch a property's full Compass record using a URL or listing ID, returning address, beds/baths, sqft, price, lot size, amenities, schools, and more.

Instructions

Fetch a property's full Compass record. Pass either url (a full Compass homedetails URL or path from a compass_search_properties result) or listing_id_sha alone — when only the sha is supplied, the tool fetches /listing//view, which redirects to the canonical /homedetails//_lid/ page. Returns address, neighborhood, beds/baths, sqft, lot size (lot_size_sqft plus the derived lot_size_acres = round(sqft / 43560, 2), null — never 0 — for condos / missing lots), price + price-per-sqft, monthly charges, MLS status, amenities, schools, parcel number, and the canonical Compass URL. Also returns extracted_features (lake_front, hot_tub, basement, furnished, dock, community) keyword-parsed from the description.

DESCRIPTION HANDLING: The raw description (Compass marketing copy) is omitted by default — pass include_description: true to keep it. extracted_features is always populated and usually sufficient.

URL FORMS: Compass exposes two URL shapes for a listing. _lid/ (content-addressed by listing_id_sha) — what this tool fetches and what url returns — is the form to use for reading the current listing record. _pid/ (opaque short ID, in property_url and the surfaced pid field) is stable across re-listings and is the right choice for any long-lived reference (trackers, sheets, bookmarks); sha-based URLs go stale when a property is delisted and relisted. Read-only; safe to call repeatedly.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoCompass homedetails URL or path (e.g. /homedetails/162-04-12th-Rd-Queens-NY-11357/2109718971930079225_lid/). One of `url` or `listing_id_sha` is required; pass `url` when you have it (no resolver fetch needed).
listing_id_shaNoCompass listing identifier (the SHA inside `<sha>_lid`). Sufficient on its own — the tool fetches /listing/<sha>/view, which 302-redirects to the slugged homedetails page (no extra lookup; the fetch follows the redirect).
include_descriptionNoInclude the raw `description` (Compass marketing copy) in the response. Defaults to `false` — `extracted_features` is always populated and usually covers the common needs.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.0.0
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. First observedv0.12.1

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the readOnlyHint and idempotentHint annotations, the description reveals important behavior: /listing/<sha>/view redirects to the canonical homedetails URL, lot_size_acres is derived and null (never 0) for condos, extracted_features is keyword-parsed from the description, the raw description is omitted by default, and sha-based URLs go stale across re-listings. This is substantial behavioral disclosure that helps an agent predict side effects and output quirks.

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 long but every paragraph earns its place: it covers inputs, output content, derived fields, default behavior, and URL-form stability. The content is structured into clear sections, and the most important usage facts are front-loaded in the first sentence. No filler or repetition is present.

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?

Given there is no output schema, the description does a strong job of listing the returned fields and their semantics. It also covers parameter combinations, redirect behavior, defaults, and the stable vs. stale URL distinction. An agent has enough information to select, invoke, and interpret the result of this tool without guessing.

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

Parameters5/5

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

Although the schema already describes all three parameters, the main description adds critical semantics beyond the schema: url and listing_id_sha are alternatives with one required despite schema having no required fields, the sha-only path triggers a redirect, include_description controls raw marketing copy while extracted_features is always populated, and the derived lot_size_acres field is explained. This goes far above the schema 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 opens with a specific verb and resource: 'Fetch a property's full Compass record.' It clearly enumerates the accepted inputs (url or listing_id_sha) and the return fields, and it distinguishes itself by tying its url input to compass_search_properties results. This gives an agent unambiguous clarity about what the tool does.

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 gives strong usage context: pass url when you have it, listing_id_sha is sufficient alone, include_description defaults to false, and the tool is read-only and safe to call repeatedly. It also explains the crucial _lid/ vs _pid/ distinction and advises which URL form is appropriate for current reading versus long-lived references. However, it does not explicitly compare this tool to alternatives like compass_get_by_address or compass_bulk_get, so the tool-selection guidance is not fully explicit.

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