Broward County FL Real Estate MCP
Pricing
from $10.00 / 1,000 mcp tool calls
Broward County FL Real Estate MCP
MCP server for Broward County (FL) Property Appraiser records: property, sales, commercial, land, subdivision, time-share and tangible searches, parcel details, and a tax estimator.
Pricing
from $10.00 / 1,000 mcp tool calls
Rating
0.0
(0)
Developer
R.L.
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
6 hours ago
Last modified
Categories
Share
Give your AI agent instant access to Broward County, Florida property records. This Model Context Protocol (MCP) server turns the Broward County Property Appraiser (BCPA) database into clean, ready-to-use tools for property search, owner lookup, parcel details, sales comps, and property-tax estimates — no scraping, HTML parsing, or bot-handling on your side.
Ask Claude, Cursor, or any MCP-compatible agent things like "who owns 1800 N Andrews Ave?", "pull the full record for folio 494234AJ0750", or "list qualified residential sales in Fort Lauderdale over $500k last June" — and get back normalized JSON with owners, addresses, assessed/market values, exemptions, and full sales history.
Running on the Apify platform, it comes with a hosted HTTPS endpoint, standby mode, US proxy rotation, scheduling, and monitoring out of the box.
What is the Broward County property data MCP server?
It's a remote MCP server that exposes the entire Broward County Property Appraiser record search — every vertical the public site offers — as agent tools over Streamable HTTP. Under the hood it calls BCPA's ASP.NET JSON API directly (fast HTTP, no browser), normalizes the raw responses, and collapses indexed sales-history fields into tidy arrays, so your agent gets structured data instead of scraped HTML.
Why use it?
- Real-estate lead generation — owner names, mailing addresses, and values across all of Broward County.
- Comparable sales & market analysis — filter recorded sales by property type, date range, price, and beds/baths.
- Skip tracing & due diligence — mailing addresses, legal descriptions, homestead/exemption status.
- Property-tax estimation — annual tax from a taxable value and municipality millage rate.
- Drop-in agent tooling — no scraper to build or maintain; just point your LLM at the endpoint.
Tools & data you can pull
| Tool | What it does |
|---|---|
search_properties | Search by owner name, address, or folio (optional city filter, pagination). |
get_parcel_details | Full record for a folio: owners, site & mailing address, legal description, zoning, use code, assessed/market/land/building values, exemptions, and sales history. |
suggest_addresses | Autocomplete owner/address strings to build a precise query. |
search_sales | Recorded sales comps by type, date range, price, beds/baths, qualified-only. |
search_commercial | Commercial properties by use code + city. |
search_land | Land parcels by use code + city. |
search_subdivision | Find subdivision names, or list all parcels within a subdivision. |
search_timeshare | List time-share properties. |
search_tangible | Tangible Personal Property (business) accounts by name or address. |
estimate_taxes | Estimate annual property tax from a taxable value using the current millage rate. |
list_commercial_cities / list_commercial_use_codes | Reference lists for the commercial/land searches. |
A static millage-codes resource (bcpa://reference/millage-codes) maps each Broward municipality to its Tax Estimator code.
Connect from your LLM agent
The server speaks Streamable HTTP at:
https://<YOUR_USERNAME>--broward-fl-real-estate-mcp.apify.actor/mcp
Authenticate with your Apify API token as a Bearer header. Find both in the Apify Console:
- Endpoint → the Actor's API / Standby tab.
- Token → Settings → API & Integrations.
Authorization: Bearer <YOUR_APIFY_TOKEN>
Pick your client below (replace <YOUR_USERNAME> and <YOUR_APIFY_TOKEN>):
Claude Code
claude mcp add broward-real-estate \--transport http \https://<YOUR_USERNAME>--broward-fl-real-estate-mcp.apify.actor/mcp \--header "Authorization: Bearer <YOUR_APIFY_TOKEN>"
Claude Desktop
Edit claude_desktop_config.json (Settings → Developer → Edit Config). Claude Desktop bridges to remote servers via mcp-remote:
{"mcpServers": {"broward-real-estate": {"command": "npx","args": ["mcp-remote","https://<YOUR_USERNAME>--broward-fl-real-estate-mcp.apify.actor/mcp","--header","Authorization: Bearer <YOUR_APIFY_TOKEN>"]}}}
Cursor
Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (per project):
{"mcpServers": {"broward-real-estate": {"url": "https://<YOUR_USERNAME>--broward-fl-real-estate-mcp.apify.actor/mcp","headers": { "Authorization": "Bearer <YOUR_APIFY_TOKEN>" }}}}
VS Code (GitHub Copilot)
Add to .vscode/mcp.json:
{"servers": {"broward-real-estate": {"type": "http","url": "https://<YOUR_USERNAME>--broward-fl-real-estate-mcp.apify.actor/mcp","headers": { "Authorization": "Bearer <YOUR_APIFY_TOKEN>" }}}}
Windsurf / other MCP clients
Most clients accept a serverUrl (or url) plus a headers object — use the endpoint and Authorization header above. For stdio-only clients, wrap it with npx mcp-remote <url> --header "Authorization: Bearer <YOUR_APIFY_TOKEN>" as shown for Claude Desktop.
Python (programmatic)
import asynciofrom fastmcp import ClientURL = "https://<YOUR_USERNAME>--broward-fl-real-estate-mcp.apify.actor/mcp"async def main():async with Client(URL, auth="<YOUR_APIFY_TOKEN>") as client:hits = await client.call_tool("search_properties", {"query": "1800 N ANDREWS AVE"})folio = hits.structured_content["results"][0]["folioNumber"]parcel = await client.call_tool("get_parcel_details", {"folio": folio})print(parcel.structured_content)asyncio.run(main())
Example: search, then fetch details
search_* tools return { "total": N, "results": [...] }. Feed a folioNumber into get_parcel_details for the full record:
{"found": true,"folioNumber": "494234AJ0750","owners": ["AVILES,WILSON", "WILSON AVILES REV TR"],"siteAddress": { "line1": "1800 N ANDREWS AVENUE # 8A", "city": "FORT LAUDERDALE", "zip": "33311" },"useCode": "04 - Condominium","legal": "DRAKE TOWER CONDO UNIT 8A ...","values": { "just": "$315,620", "land": "$31,560", "building": "$284,060" },"exemptions": { "homesteadPercent": "100%", "he1Amount": "$25,000" },"sales": [{ "saleDate": "04/09/2019", "stampAmount": "$100", "deedType": "Warranty Deed","bookAndPageOrCin": "115730117", "saleVerification": "Non-Sale Title Change" }]}
How much does it cost?
This Actor uses Pay Per Event: a flat $0.01 per tool call (tool-call event), plus Apify platform compute. A typical search → open a record flow is two tool calls (about $0.02) plus minimal compute. There are no per-page scraping costs — one tool call returns a full result set (up to the source's 500-row cap).
Run locally (development)
pip install -r requirements.txt# This machine may not reach BCPA directly; route via a US-exit proxy for local dev:export DEV_PROXY_URL='http://user:pass@host:port'APIFY_META_ORIGIN=STANDBY python -m my_actor
The server listens at http://localhost:3000/mcp. On the Apify platform, DEV_PROXY_URL is unset and the Actor calls BCPA directly, falling back to an Apify US datacenter proxy if a datacenter IP is blocked. See tests/ for a browser-vs-MCP differential test suite that validates output against the live BCPA site.
FAQ, disclaimer & support
- Is this legal? It reads the same public records BCPA already publishes on its website. Use the data in accordance with BCPA's terms and Florida public-records law. Values are for tax-roll purposes and are not final until certified.
- What area is covered? Broward County, Florida only (Fort Lauderdale, Hollywood, Pompano Beach, Pembroke Pines, Miramar, Coral Springs, and all other Broward municipalities).
- Do I need an Apify account? Yes — to get an endpoint URL and API token. A free account is enough to start.
- Feedback / bugs? Open an issue on the Actor's Issues tab.