canvassed developer docs

canvassed MCP tools

See what canvassed MCP tools and prompts do, what they return, and how to ask for help.

To connect, sign in with a canvassed account that includes AI assistant access. Start a free 14-day trial, or add AI assistant access to Pro. You'll go straight back to your AI app once you're set up.

canvassed listings come from publicly available brokerage listing pages, and every listing links back to its source. Brokers can request an update or removal at info@canvassed.ai. Data sources and removal

Documentation artifact v1.2.38 · Updated November 5, 2026

How to use this

You can ask your AI assistant for what you need in plain language. The examples show ways to phrase a request; the assistant chooses tools and fills their inputs from your request.

Listing search and details

Fetch a listing

fetchAvailable

Fetch a listing returned by search using its ID.

Retrieve a canvassed listing by its ID, including its public page details and available listing metadata.

Example question and output

Example: “Show details for listing ABC123.”

Role: Direct tool; it returns the requested information.

What you’ll see: The full safe listing record.

Technical inputs

Retrieve a canvassed listing by its ID, including its public page details and available listing metadata.

idRequired
string

Search listings with filters

search_listingsAvailable

Search commercial real estate listings with structured filters and optional semantic ranking.

Search listings using structured filters and optional semantic ranking over listing-page text. A geography filter is required in structured_filters, or a city, state, county, or ZIP code must appear in semantic_query. Always resolve vague place names first. If needs_clarification is true, ask the user to choose, then search again with the chosen ZIPs, city or radius. ZIP filters use geog_zip; exact point radii use within_radius with lat, lon, and miles, or an address of a geocoded listing. Use `zoning_code` with a Los Angeles County geography filter to match stored City of LA or Long Beach municipal, selected-jurisdiction SCAG regional, or County Z-NET zone codes linked to listing parcels. Request `return_fields=["zoning_code"]` to include parcel-derived zoning and its source in each result. Broker-stated zoning appears separately as listing text. When filters leave no semantic text, results are sorted by most recently updated. Compact responses are the default; use response_mode `standard` for up to three short snippets or `full` for complete evidence. Pass `keywords` for exact zoning, use, or feature phrases; known terms and quoted phrases are detected automatically. `keyword_mode="require"` limits results to text matches, and `keyword_hits` explains matches. Oversized responses include `truncated` and `next_offset` for paging. `return_fields` requests supported fields and `exclude_fields` omits fields.

Example question and output

Example: “Find retail listings in Los Angeles County with zoning code C2.”

Role: Direct tool; it returns the requested information.

Choose this when the request needs exact structured filters or semantic ranking over listing-page text.

What it needs: A geography filter is required. Use `geog_city`, `geog_county`, `geog_state`, or `geog_zip` in `structured_filters`, or include a city, state, county, or ZIP code in `semantic_query`.

What you’ll see: Matching listings with applied filters, pagination information, and relevant listing fields, including requested parcel zoning when available.

Technical inputs

Search listings using structured filters and optional semantic ranking over listing-page text. A geography filter is required in structured_filters, or a city, state, county, or ZIP code must appear in semantic_query. Always resolve vague place names first. If needs_clarification is true, ask the user to choose, then search again with the chosen ZIPs, city or radius. ZIP filters use geog_zip; exact point radii use within_radius with lat, lon, and miles, or an address of a geocoded listing. Use `zoning_code` with a Los Angeles County geography filter to match stored City of LA or Long Beach municipal, selected-jurisdiction SCAG regional, or County Z-NET zone codes linked to listing parcels. Request `return_fields=["zoning_code"]` to include parcel-derived zoning and its source in each result. Broker-stated zoning appears separately as listing text. When filters leave no semantic text, results are sorted by most recently updated. Compact responses are the default; use response_mode `standard` for up to three short snippets or `full` for complete evidence. Pass `keywords` for exact zoning, use, or feature phrases; known terms and quoted phrases are detected automatically. `keyword_mode="require"` limits results to text matches, and `keyword_hits` explains matches. Oversized responses include `truncated` and `next_offset` for paging. `return_fields` requests supported fields and `exclude_fields` omits fields.

semantic_query
string
keywords
array
keyword_mode
string · default: boost
structured_filters
object
return_fields
array
exclude_fields
array
response_mode
string · default: compact
structured_top_k
integer · default: 10000
chunk_top_k
integer · default: 200
listing_top_n
integer · default: 10
listing_offset
integer · default: 0
max_chunks_per_listing
integer · default: 3
min_supporting_chunks
integer · default: 2

Get a listing by ID

get_listing_by_idAvailable

Return one canonical listing record by listing ID.

Retrieve one canonical canvassed listing record by listing ID, including available attributes and dates.

Example question and output

Example: “Look up canvassed listing ABC123.”

Role: Direct tool; it returns the requested information.

What you’ll see: The listing record and whether it was found.

Technical inputs

Retrieve one canonical canvassed listing record by listing ID, including available attributes and dates.

listing_idRequired
string

Get parcels for a listing

get_listing_parcelsAvailable

Look up County parcels and available County, municipal, and regional zoning linked to a canvassed listing.

Return all Regrid parcels matched to a listing and their linked LA County parcel APNs/AINs, County Z-NET zoning, City of LA or Long Beach municipal zoning, and (where available) separate SCAG regional zoning keyed by APN. The top-level zoning_code uses municipal, regional, then County precedence and includes its source. The response reports source vintages, parcel and zoning match status, and manual review flags. County parcel coverage is Los Angeles County; SCAG regional zoning covers selected incorporated jurisdictions.

Example question and output

Example: “Show the parcels and zoning for listing ABC123.”

Role: Direct tool; it returns the requested information.

What you’ll see: Regrid parcel identifiers, County APN/AIN and situs details, County Z-NET zoning, available City of LA or Long Beach zoning, SCAG local and standardized regional zone codes, the preferred top-level zone and its source, source vintages, match statuses, and manual-review flags.

Technical inputs

Return all Regrid parcels matched to a listing and their linked LA County parcel APNs/AINs, County Z-NET zoning, City of LA or Long Beach municipal zoning, and (where available) separate SCAG regional zoning keyed by APN. The top-level zoning_code uses municipal, regional, then County precedence and includes its source. The response reports source vintages, parcel and zoning match status, and manual review flags. County parcel coverage is Los Angeles County; SCAG regional zoning covers selected incorporated jurisdictions.

listing_idRequired
string

Listing contacts

Get listing contacts

get_listing_contactsAvailable

Return available broker or contact details for a listing.

Retrieve available broker or contact names, email addresses, valid US phone numbers, license details, and titles for a canvassed listing ID. Contact details are grouped by person only when listing data supports a unique match. Email addresses are normalized to lowercase; unmatched emails and phone numbers remain unassigned. Compatible MCP clients may display progress updates.

Example question and output

Example: “Who is the broker for listing ABC123?”

Role: Direct tool; it returns the requested information.

Choose this when broker contact details are needed for a listing; get_listing_by_id returns property details without those contacts.

What you’ll see: Available contact names, emails, US phone numbers, license details, and titles. Contact details are grouped by person only when listing data supports a unique match. Email addresses are normalized to lowercase; unmatched emails and phone numbers remain unassigned. Compatible MCP clients may show progress while the server checks listing data.

Technical inputs

Retrieve available broker or contact names, email addresses, valid US phone numbers, license details, and titles for a canvassed listing ID. Contact details are grouped by person only when listing data supports a unique match. Email addresses are normalized to lowercase; unmatched emails and phone numbers remain unassigned. Compatible MCP clients may display progress updates.

listing_idRequired
string
max_chunks
integer · default: 25

Geography, companies, and filters

Resolve a location

resolve_geographyAvailable

Resolve an ambiguous or approximate place into canonical listing filters.

Resolve a place name to approved area aliases, ZIPs, cities, counties, states, or radius filters. Always resolve vague place names first. If needs_clarification is true, ask the user to choose, then search again with the chosen ZIPs, city or radius. Ambiguous areas return concrete options; preserve partial_zips as approximate coverage, separate from full ZIP coverage.

Example question and output

Example: “Search around downtown Nashville within 20 miles.”

Role: Helper tool; it prepares or clarifies inputs for another tool.

What you’ll see: Matched geography and recommended search filters.

Technical inputs

Resolve a place name to approved area aliases, ZIPs, cities, counties, states, or radius filters. Always resolve vague place names first. If needs_clarification is true, ask the user to choose, then search again with the chosen ZIPs, city or radius. Ambiguous areas return concrete options; preserve partial_zips as approximate coverage, separate from full ZIP coverage.

queryRequired
string
radius_miles
number · default: 15
max_zip_list
integer · default: 100
max_city_list
integer · default: 15
expand_nearby
boolean · default: true

Resolve a company

resolve_companyAvailable

Match a company or brokerage phrase to canonical company names.

Match a company or brokerage phrase to canonical company names found in canvassed listings. Results include ranked candidates.

Example question and output

Example: “Find the canonical name for CBRE.”

Role: Helper tool; it prepares or clarifies inputs for another tool.

Use this to identify the exact company name stored in canvassed before filtering or counting listings by company.

What you’ll see: Candidate company names from current listings.

Technical inputs

Match a company or brokerage phrase to canonical company names found in canvassed listings. Results include ranked candidates.

queryRequired
string
limit
integer · default: 5

List filter values

list_filter_valuesAvailable

Find available values for a supported listing filter.

List values available for a supported listing filter field, optionally narrowed by a prefix.

Example question and output

Example: “Which property types are available?”

Role: Direct tool; it returns the requested information.

What you’ll see: Matching filter values and related metadata.

Technical inputs

List values available for a supported listing filter field, optionally narrowed by a prefix.

fieldRequired
string
prefix
string
limit
integer · default: 25

Counts and availability

Count listings

count_listingsAvailable

Count listings matching filters, optionally grouped by one field.

Count listings that match structured filters, optionally grouped by a field, with compact sample records by default. A geography filter is required in structured_filters. Always resolve vague place names first. If needs_clarification is true, ask the user to choose, then search again with the chosen ZIPs, city or radius before counting. Use response_mode `standard` or `full` for more detail. Oversized samples include `truncated` and `next_offset` for paging.

Example question and output

Example: “How many retail listings for lease are in Austin?”

Role: Direct tool; it returns the requested information.

Choose this for totals or grouped counts instead of a list of matching listings.

What it needs: A geography filter is required in `structured_filters`.

What you’ll see: A total count, optional grouped counts, and sample listings.

Technical inputs

Count listings that match structured filters, optionally grouped by a field, with compact sample records by default. A geography filter is required in structured_filters. Always resolve vague place names first. If needs_clarification is true, ask the user to choose, then search again with the chosen ZIPs, city or radius before counting. Use response_mode `standard` or `full` for more detail. Oversized samples include `truncated` and `next_offset` for paging.

structured_filters
object
group_by
string
examples_limit
integer · default: 3
examples_offset
integer · default: 0
return_fields
array
exclude_fields
array
response_mode
string · default: compact

History and market changes

Search listing changes

search_listing_changesAvailable

Return listing lifecycle events for a selected date window and optional filters.

Search listing-level added and removed events in a date window, with optional active-at-start context, listing filters, and cursor pagination. Event rows include the available 15 pt_* property-type flags in compact, standard, and full modes; response_mode `full` adds the remaining public event fields. Oversized pages are shortened at item boundaries and include a continuation cursor.

Example question and output

Example: “Show additions and removals in Travis County, Texas, during January 2026.”

Role: Direct tool; it returns the requested information.

What you’ll see: One page of change-log events with date-only valid_from and valid_to, no listing-level date_created, cleaned property_type labels, available pt_* property-type flags, event dates, listing identifiers, and a next cursor. Use response_mode=full for all other available public event fields.

Technical inputs

Search listing-level added and removed events in a date window, with optional active-at-start context, listing filters, and cursor pagination. Event rows include the available 15 pt_* property-type flags in compact, standard, and full modes; response_mode `full` adds the remaining public event fields. Oversized pages are shortened at item boundaries and include a continuation cursor.

start_dateRequired
string
end_dateRequired
string
filters
object
event_type
string · default: all
include_active
boolean · default: false
per_page
integer · default: 25
cursor
string
response_mode
string · default: compact

Summarize listing changes

summarize_listing_changesAvailable

Return reconciled change-over-time totals, with optional group breakdowns.

Summarize listings active at the start and end of a date window and listing lifespans added or removed during it, optionally grouped by one or two dimensions. Set group_by=property_type for change counts by the available pt_* classifications; these groups can overlap.

Example question and output

Example: “Summarize listings added and removed in Manhattan during May 2026, grouped by property type.”

Role: Direct tool; it returns the requested information.

What you’ll see: Overall start-active, added, removed, end-active, net/gross change, rates, reconciliation, and optional grouped rows. Property-type groups are derived from available pt_* flags and can be non-additive.

Technical inputs

Summarize listings active at the start and end of a date window and listing lifespans added or removed during it, optionally grouped by one or two dimensions. Set group_by=property_type for change counts by the available pt_* classifications; these groups can overlap.

start_dateRequired
string
end_dateRequired
string
filters
object
group_by
string

Generate Change Over Time report

generate_change_over_time_reportAvailable

Create a human-readable market change report with summary metrics and detailed events.

Combine a Change Over Time summary with a cursor-paginated listing change log and format the result as a readable market change report. Set summary_group_by=property_type for summary counts by the available pt_* classifications; the formatted and spreadsheet summaries label the selected grouping.

Example question and output

Example: “Create a May 2026 market change report for Manhattan, with a summary by property type.”

Role: Direct tool; it returns the requested information.

What you’ll see: Formatted report text, JSON summary and event records with date-only validity fields, no listing-level date_created, cleaned property_type labels, and available pt_* property-type flags, plus source freshness and completeness/cursor metadata. Property-type group counts may overlap.

Technical inputs

Combine a Change Over Time summary with a cursor-paginated listing change log and format the result as a readable market change report. Set summary_group_by=property_type for summary counts by the available pt_* classifications; the formatted and spreadsheet summaries label the selected grouping.

start_dateRequired
string
end_dateRequired
string
filters
object
max_records
integer · default: 250
summary_group_by
string · default: company

Export Change Over Time spreadsheet

export_change_over_time_spreadsheetAvailable

Generate a shareable Excel report for a selected date window and optional filters.

Export an Excel workbook with Report Summary and Change Log tabs for a selected market and date window. Set summary_group_by=property_type to include added/removed summary counts by the available pt_* flags.

Example question and output

Example: “Export the May 2026 Manhattan change-over-time report with a property-type summary.”

Role: Direct tool; it returns the requested information.

What you’ll see: An XLSX workbook with summary metrics by the selected grouping and a detailed change log with date-only validity fields, no listing-level date_created, cleaned property_type labels, and available pt_* property-type flags; property-type groups may overlap, and output includes completeness metadata when the record cap is reached.

Technical inputs

Export an Excel workbook with Report Summary and Change Log tabs for a selected market and date window. Set summary_group_by=property_type to include added/removed summary counts by the available pt_* flags.

start_dateRequired
string
end_dateRequired
string
filters
object
max_records
integer · default: 250
summary_group_by
string · default: company

Help

canvassed help

helpAvailable

Explain how to use canvassed tools, including the available Change Over Time tools.

Explain the available canvassed tools and workflows, including listing-change summaries and listing-level change outputs. It uses the published guide and does not query customer data.

Example question and output

Example: “How do I summarize listing changes?”

Role: Helper tool; it prepares or clarifies inputs for another tool.

What you’ll see: Readable Markdown help with the relevant tool, required inputs, expected output, and guide link.

Technical inputs

Explain the available canvassed tools and workflows, including listing-change summaries and listing-level change outputs. It uses the published guide and does not query customer data.

question
string
topic
string
tool_name
string
prompt_name
string

MCP prompts

canvassed help prompt

canvassed-helpAvailable

Selectable shortcut for MCP clients that support prompts. It returns the same quick guide or topic-specific help as the Help tool.

Example and output

Example: “Select canvassed help and ask for troubleshooting.”

What you’ll see: One user-facing guide message; no topic returns the concise quick guide.

Prompt input
topic
string

canvassed MCP Help guide

Quick reference

The canvassed MCP server lets you ask an AI assistant to find and review commercial real estate listings. Describe the market, property type, and what you need in plain language; the assistant can use canvassed tools to search and explain the results.

Add canvassed as a custom connector in your AI app. Once canvassed is listed in your AI app’s directory, you can connect from there instead.

  • “Find retail listings for lease in Austin.”
  • “Show me industrial listings under 50,000 square feet in Phoenix, AZ.”
  • “Which brokerages have the most multifamily listings in LA County?”
  • “Who is the broker for listing ABC123?”
  • “Show the parcels and zoning for listing ABC123.”
  • “What can I filter listings by?”

For help, ask a question in plain language, name a tool, or ask for a topic such as setup, tips, troubleshooting, or recent changes. Read the setup guide or tool reference.

Welcome

The canvassed MCP server connects canvassed listing and analysis tools to an AI assistant. You can ask in everyday language, and the assistant chooses the tools that fit your request.

Get started

To connect and try the canvassed MCP server:

  1. In Claude, open Settings → Connectors → Add custom connector and enter https://mcp.canvassed.ai/mcp. In other AI apps, follow the canvassed setup guide.
  2. When your AI app asks, sign in to your canvassed account and approve the connection. The MCP uses your account sign-in, not an API key.
  3. Ask for a listing search or analysis in plain language.
  4. Refine the request with a location, property type, price, size, or other detail.

canvassed works with a canvassed account that includes AI assistant access. Sign in when your AI app asks. Setup: https://www.canvassed.ai/developers/mcp/onboarding

Once canvassed is listed in your AI app’s directory, you can connect from there instead.