MCP server · version 1.1.0

Connect your AI to Groundbreak

Ask Claude, ChatGPT, Cursor or any MCP client about the public record in 8 markets: permits, deeds, loans and liens, the projects behind them and the companies on them. Look up who owns a property and who is behind the LLC, and work your deals in the CRM. 22 tools, one account.

Serverhttps://mcp.groundbreak.city/mcp
Point your agent athttps://docs.groundbreak.city/mcp.md

Auth: the Claude app, ChatGPT and other clients that sign in with OAuth need only the server address. Others send Authorization: Bearer <your key>. Make a key, free with any account.

Connect

The Claude app and ChatGPT sign in: paste the address and approve. For the others, make a key on your API page in Groundbreak Pro, one per client; the setup there has it filled in. The CRM's Connect AI page holds the same keys.

  1. Run this in a terminal. Every Claude Code session gets Groundbreak. Or leave out the header and run /mcp in Claude Code to sign in instead.
Terminal
claude mcp add --transport http groundbreak https://mcp.groundbreak.city/mcp \
  --header "Authorization: Bearer <your key>"

Requests and responses

Every request is an HTTP POST of one JSON-RPC 2.0 message, or a batch of them, to https://mcp.groundbreak.city/mcp with your key as a Bearer token. Each call below is a curl you can paste, with the answer it gets. Real responses from the public record, captured 2026-10-28, with lists cut to two items. The tools that change a workspace or spend credits show the shape they return, with a made-up person.

initialize

The first call a client makes. The answer names the server, the protocol version and, in instructions, the workspace, the plan, the limits and the credits left.

Request
curl -s https://mcp.groundbreak.city/mcp \
  -H "Authorization: Bearer gbcrm_your_key" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"my-agent","version":"1.0"}}}'
Response · HTTP 200
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "protocolVersion": "2025-06-18",
    "capabilities": {
      "tools": {
        "listChanged": false
      }
    },
    "serverInfo": {
      "name": "groundbreak-crm",
      "title": "Groundbreak",
      "version": "1.1.0"
    },
    "instructions": "Groundbreak: the development database and CRM for commercial real estate. The database (search_records, search_projects, get_project, search_companies) holds permits, deeds, loans, starts, zoning cases and liens in Austin, Atlanta, Miami, Nashville, Tampa Bay, Charlotte, Dallas-Fort Worth, Toronto, the projects they belong to and the companies on them; anything filed in the last 90 days names its parties only on Pro, older records come back whole. The CRM: any Florida property, and outside Florida the counties Groundbreak reads (Travis, Dallas, Tarrant, Fulton, DeKalb, Davidson, Mecklenburg). Start from a property: lookup_property (address with city, folio or owner name), then add_property to save it; for a Florida property the owner's Sunbiz filing is read and the people behind an LLC become contacts (Sunbiz is Florida only). find_phones skip traces them and spends credits; ask the user before calling it. get_property and groundbreak_records return the public record: appraiser sales, clerk deeds, mortgages, liens, lis pendens and permits. Deals: list_deals, get_deal, create_deal, move_deal, add_note, create_task. Every result carries app URLs; link them. Never invent a phone or an owner. Numbers marked DNC must not be cold called. A result too long to send comes back with its longest lists cut and a trimmed note: narrow the ask for the rest. Full docs: https://docs.groundbreak.city/mcp.md. Workspace: Jordan's team. Plan: Pro. Limits: 60 API calls a minute and 2,000 API calls a day. Skip-trace credits left: 100."
  }
}

tools/list

Every tool with its JSON Schema. A read key lists only the tools that read. Here the first of 22.

Request
curl -s https://mcp.groundbreak.city/mcp \
  -H "Authorization: Bearer gbcrm_your_key" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
Response · HTTP 200
{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "tools": [
      {
        "name": "lookup_property",
        "title": "Lookup property",
        "description": "Look up a property by street address, parcel id or folio, or every parcel an owner name holds: any Florida property on the statewide tax roll, and outside Florida any parcel in Travis, Dallas, Tarrant, Fulton, DeKalb, Davidson and Mecklenburg counties on the county rolls Groundbreak reads. Returns the owner, mailing address, use, size, value and last sale. Writes nothing; add_property saves one to the workspace.",
        "inputSchema": {
          "type": "object",
          "properties": {
            "q": {
              "description": "A street address with city (and state outside Florida), a parcel id or Miami-Dade folio, or an owner name such as an LLC",
              "type": "string",
              "minLength": 4
            }
          },
          "required": [
            "q"
          ],
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "idempotentHint": true,
          "openWorldHint": true
        }
      }
    ]
  }
}

tools/call

Runs one tool. The result comes twice: as an object in structuredContent, and as the same JSON in content[0].text for clients that read only text. Each tool below shows its own.

Request
curl -s https://mcp.groundbreak.city/mcp \
  -H "Authorization: Bearer gbcrm_your_key" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"search_companies","arguments":{"market":"miami","q":"Coastal Construction"}}}'
Response · HTTP 200
{
  "jsonrpc": "2.0",
  "id": 3,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{\"market\":\"Miami\",\"total\":3,\"companies\":[{\"name\":\"Coastal Construction Of Miami Dade Inc Dba Coastal Condominiums Ii\",\"roles\":[\"gc\",\"trade\"],\"live_projects\":13,\"filings_90d\":6,\"filings_12m\":38,\"permit_value_12m\":\"$457M\",\"last_filed\":\"2026-10-19\",\"deeds_bought\":0,\"loans_lent\":0,\"url\":\"https://pro.groundbreak.city/miami/companies/2aa3affa-f4aa-47a3-a292-536b9d1d02d4\"},{\"name\":\"Coastal Construction Of Miami Dade Cou\",\"roles\":[\"gc\",\"trade\"],\"live_projects\":5,\"filings_90d\":4,\"filings_12m\":15,\"permit_value_12m\":\"$560M\",\"last_filed\":\"2026-10-22\",\"deeds_bought\":0,\"loans_lent\":0,\"url\":\"https://pro.groundbreak.city/miami/companies/0600a17b-d9bb-477c-aecd-b61a57d63eb1\"}]}"
      }
    ],
    "structuredContent": {
      "market": "Miami",
      "total": 3,
      "companies": [
        {
          "name": "Coastal Construction Of Miami Dade Inc Dba Coastal Condominiums Ii",
          "roles": [
            "gc",
            "trade"
          ],
          "live_projects": 13,
          "filings_90d": 6,
          "filings_12m": 38,
          "permit_value_12m": "$457M",
          "last_filed": "2026-10-19",
          "deeds_bought": 0,
          "loans_lent": 0,
          "url": "https://pro.groundbreak.city/miami/companies/2aa3affa-f4aa-47a3-a292-536b9d1d02d4"
        },
        {
          "name": "Coastal Construction Of Miami Dade Cou",
          "roles": [
            "gc",
            "trade"
          ],
          "live_projects": 5,
          "filings_90d": 4,
          "filings_12m": 15,
          "permit_value_12m": "$560M",
          "last_filed": "2026-10-22",
          "deeds_bought": 0,
          "loans_lent": 0,
          "url": "https://pro.groundbreak.city/miami/companies/0600a17b-d9bb-477c-aecd-b61a57d63eb1"
        }
      ]
    },
    "isError": false
  }
}

ping

Checks the key and the connection. Costs nothing.

Request
curl -s https://mcp.groundbreak.city/mcp \
  -H "Authorization: Bearer gbcrm_your_key" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":4,"method":"ping"}'
Response · HTTP 200
{
  "jsonrpc": "2.0",
  "id": 4,
  "result": {}
}

No key, or a wrong one

HTTP 401. The WWW-Authenticate header points a client that signs in at the OAuth metadata.

Request
curl -s https://mcp.groundbreak.city/mcp \
  -H "Authorization: Bearer gbcrm_wrong" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":5,"method":"tools/list"}'
Response · HTTP 401
WWW-Authenticate: Bearer realm="groundbreak", resource_metadata="https://mcp.groundbreak.city/.well-known/oauth-protected-resource/mcp", error="invalid_token"

{
  "jsonrpc": "2.0",
  "id": 5,
  "error": {
    "code": -32001,
    "message": "Sign in, or send a Groundbreak key. Make one at https://pro.groundbreak.city/connect. Docs: https://docs.groundbreak.city/mcp.md"
  }
}

Past the daily limit

A tool result with isError true, so the agent can read it to the person. The minute limit answers the same way, with "Try again in a minute."

Request
curl -s https://mcp.groundbreak.city/mcp \
  -H "Authorization: Bearer gbcrm_your_key" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":6,"method":"tools/call","params":{"name":"search_companies","arguments":{"market":"miami","q":"Coastal Construction"}}}'
Response · HTTP 200
{
  "jsonrpc": "2.0",
  "id": 6,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "That is past your limit of 2,000 API calls a day. It resets at midnight UTC. For a higher daily limit, ask at https://pro.groundbreak.city/connect or email max@groundbreak.city."
      }
    ],
    "isError": true
  }
}

Arguments the tool does not take

A tool result with isError true that names the field.

Request
curl -s https://mcp.groundbreak.city/mcp \
  -H "Authorization: Bearer gbcrm_your_key" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":7,"method":"tools/call","params":{"name":"search_records","arguments":{"market":"miami","sort":"biggest"}}}'
Response · HTTP 200
{
  "jsonrpc": "2.0",
  "id": 7,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "Invalid arguments: sort Invalid option: expected one of \"date\"|\"value\""
      }
    ],
    "isError": true
  }
}

A tool that does not exist

A JSON-RPC error, code -32602. A body that is not JSON gets -32700 and HTTP 400.

Request
curl -s https://mcp.groundbreak.city/mcp \
  -H "Authorization: Bearer gbcrm_your_key" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":8,"method":"tools/call","params":{"name":"search_everything","arguments":{}}}'
Response · HTTP 200
{
  "jsonrpc": "2.0",
  "id": 8,
  "error": {
    "code": -32602,
    "message": "Unknown tool: search_everything"
  }
}

Tools

Every result carries app links. Tools that change your CRM or spend credits say so in their description, and a good client asks you first. Open an example under each tool for its request body and the object that comes back in result.structuredContent.

The database

Permits, deeds, loans, notices of commencement, zoning cases and liens in every market, the projects they belong to and the companies on them. Parties on anything filed in the last 90 days come back with Pro; older records come back whole on any account.

search_records

Reads

Search Groundbreak's public-record filings in one market: building permits, deeds, loans, notices of commencement (starts), zoning and site plan cases, liens. Returns up to 25 rows, newest or biggest first, with the true count, the source record and an app link. Parties and phones on filings from the last 90 days come back on Pro; older filings come back whole for everyone.

marketrequired
austin | atlanta | miami | nashville | tampa | charlotte | dfw | torontoMarket: austin (Austin), atlanta (Atlanta), miami (Miami), nashville (Nashville), tampa (Tampa Bay), charlotte (Charlotte), dfw (Dallas-Fort Worth), toronto (Toronto)
q
stringAddress, project or scope text
kind
all | permits | instruments | deeds | loans | starts | cases | distressinstruments is deeds and loans; distress is liens and lis pendens
days
integer, 1 to 365Window back from today, default 30; ignored when from is set
from
date (YYYY-MM-DD)Start date YYYY-MM-DD
to
date (YYYY-MM-DD)End date YYYY-MM-DD, inclusive
min
number, 0 or moreMinimum dollar value
sort
date | valuedate (default) for the newest, value for the biggest
Example request and response
Request body
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search_records",
    "arguments": {
      "market": "miami",
      "kind": "permits",
      "days": 30,
      "min": 5000000,
      "sort": "value"
    }
  }
}
Response · result.structuredContent
{
  "market": "Miami",
  "count": 36,
  "more": true,
  "window": "last 30 days",
  "rows": [
    {
      "kind": "permit",
      "filed": "2026-10-01",
      "value": "$252M",
      "address": "8234 NW 56 ST Doral FL 33166-0000",
      "description": "BD Building New Construction (Comm) (Primary): New 2-Story Commercial Building with Cafe, Covered Patio, Storage, Restrooms, Gym/Rehabilitation Training Space, Two Soccer Fields, and 16 Ground-Level P",
      "parties": {
        "to": null,
        "from": null,
        "applicant": null
      },
      "contacts": [],
      "project": {
        "name": "8234 Nw 56 St Doral Fl 33166-0000",
        "url": "https://pro.groundbreak.city/miami/projects/c08992ea-70a4-42e5-a0ca-dac2a41d9eb9"
      },
      "source": "City of Doral, building permits",
      "record": "BDCC-2610-5142"
    },
    {
      "kind": "permit",
      "filed": "2026-10-22",
      "value": "$175M",
      "address": "721 NW 1 AV, Miami, FL",
      "description": "New: 5 Units Or More  - Residential · NEW CONSTRUCTION",
      "parties": {
        "to": null,
        "from": null,
        "applicant": "Coastal Construction Of Miami Dade Cou"
      },
      "contacts": [
        {
          "name": null,
          "org": "Coastal Construction Of Miami Dade Cou",
          "role": "contractor",
          "phone": "(305) 796-3907",
          "email": null
        }
      ],
      "project": {
        "name": "700 North Miami Avenue",
        "url": "https://pro.groundbreak.city/miami/projects/ac4e215b-50b9-45e1-8e6b-91043917952a"
      },
      "source": "Miami-Dade RER / City of Miami Building Dept.",
      "record": "https://www.miamidade.gov/Apps/PA/propertysearch/#/?folio=0131370250011"
    }
  ]
}

search_projects

Reads

Find development projects in one market by name or address. Returns status and an id for get_project.

marketrequired
austin | atlanta | miami | nashville | tampa | charlotte | dfw | torontoMarket: austin (Austin), atlanta (Atlanta), miami (Miami), nashville (Nashville), tampa (Tampa Bay), charlotte (Charlotte), dfw (Dallas-Fort Worth), toronto (Toronto)
qrequired
stringProject name or street address
Example request and response
Request body
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search_projects",
    "arguments": {
      "market": "miami",
      "q": "Brickell"
    }
  }
}
Response · result.structuredContent
{
  "market": "Miami",
  "projects": [
    {
      "id": "ac61aeff-77bd-4f56-8496-d4d89633e3ed",
      "name": "Calle 8",
      "address": "190 Southwest 8th Street, Brickell, Miami",
      "status": "approved",
      "url": "https://pro.groundbreak.city/miami/projects/ac61aeff-77bd-4f56-8496-d4d89633e3ed"
    },
    {
      "id": "d485f143-7d65-4c28-a151-bdfb27b035da",
      "name": "1425 Brickell Av 54E",
      "address": "1425 BRICKELL AV 54E, Miami, FL",
      "status": "approved",
      "url": "https://pro.groundbreak.city/miami/projects/d485f143-7d65-4c28-a151-bdfb27b035da"
    }
  ]
}

get_project

Reads

One project's file: status, specs, the team (developer, architect, GC), its filings with values, the owner of record and what changed. Parties and the owner are Pro unless nothing has filed on the project in 90 days, when the file is open to any account.

marketrequired
austin | atlanta | miami | nashville | tampa | charlotte | dfw | torontoMarket: austin (Austin), atlanta (Atlanta), miami (Miami), nashville (Nashville), tampa (Tampa Bay), charlotte (Charlotte), dfw (Dallas-Fort Worth), toronto (Toronto)
idrequired
idProject id from search_projects or search_records
Example request and response
Request body
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_project",
    "arguments": {
      "market": "miami",
      "id": "ddc84265-6038-44fe-895c-b2f16b5039e1"
    }
  }
}
Response · result.structuredContent
{
  "project": {
    "name": "Namdar Towers Phase II (222)",
    "status": "under_construction",
    "address": "50 NE 3rd Street, Miami, FL 33132",
    "use": "mixed_use",
    "units": 714,
    "floors": 43,
    "height_ft": 450,
    "sqft": 395000,
    "cost": "·",
    "expected_completion": "2028-12-31",
    "url": "https://pro.groundbreak.city/miami/projects/ddc84265-6038-44fe-895c-b2f16b5039e1"
  },
  "team": [
    {
      "role": "developer",
      "company": "Namdar Group",
      "url": "https://pro.groundbreak.city/miami/companies/57d7ca44-cafd-4b12-b73e-6f320102bbaf"
    },
    {
      "role": "architect",
      "company": "Behar Font & Partners",
      "url": "https://pro.groundbreak.city/miami/companies/da31ae0e-73d8-448f-8dca-cdcd60fae62b"
    }
  ],
  "filings": [
    {
      "kind": "permit",
      "filed": "2026-09-28",
      "value": "$129M",
      "source": "Miami-Dade RER / City of Miami Building Dept.",
      "record": "MIA-BD23028187001B001",
      "parties": {
        "to": null,
        "from": null,
        "applicant": "John Moriarty And Associates Of Florida Inc"
      }
    },
    {
      "kind": "permit",
      "filed": "2026-08-19",
      "value": "$100",
      "source": "Miami-Dade RER / City of Miami Building Dept.",
      "record": "MIA-BD25010338001B001",
      "parties": {
        "to": null,
        "from": null,
        "applicant": "Sprinklermatic Fire Protection System Inc"
      }
    }
  ],
  "owner_of_record": "222 NORTH MIAMI LLC",
  "changes": [
    {
      "at": "2026-09-28T12:00:00+00:00",
      "headline": "Building permit issued · $128,663,319"
    },
    {
      "at": "2026-09-07T21:48:44.621379+00:00",
      "headline": "Amenities reported: fitness center, golf simulator, co-working space, movie theater room, outdoor terrace, party room, resident lounge, basketball court, bowling alley, dog washing station"
    }
  ],
  "open_to_everyone": false
}

search_companies

Reads

Find companies in one market by name: developers, GCs, trade subs, architects and engineers, lenders, owners. Returns their roles, live projects, filings in the last 90 days and 12 months, permit value, deeds and loans, and an app link.

marketrequired
austin | atlanta | miami | nashville | tampa | charlotte | dfw | torontoMarket: austin (Austin), atlanta (Atlanta), miami (Miami), nashville (Nashville), tampa (Tampa Bay), charlotte (Charlotte), dfw (Dallas-Fort Worth), toronto (Toronto)
qrequired
stringCompany name, or part of it
Example request and response
Request body
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search_companies",
    "arguments": {
      "market": "miami",
      "q": "Coastal Construction"
    }
  }
}
Response · result.structuredContent
{
  "market": "Miami",
  "total": 3,
  "companies": [
    {
      "name": "Coastal Construction Of Miami Dade Inc Dba Coastal Condominiums Ii",
      "roles": [
        "gc",
        "trade"
      ],
      "live_projects": 13,
      "filings_90d": 6,
      "filings_12m": 38,
      "permit_value_12m": "$457M",
      "last_filed": "2026-10-19",
      "deeds_bought": 0,
      "loans_lent": 0,
      "url": "https://pro.groundbreak.city/miami/companies/2aa3affa-f4aa-47a3-a292-536b9d1d02d4"
    },
    {
      "name": "Coastal Construction Of Miami Dade Cou",
      "roles": [
        "gc",
        "trade"
      ],
      "live_projects": 5,
      "filings_90d": 4,
      "filings_12m": 15,
      "permit_value_12m": "$560M",
      "last_filed": "2026-10-22",
      "deeds_bought": 0,
      "loans_lent": 0,
      "url": "https://pro.groundbreak.city/miami/companies/0600a17b-d9bb-477c-aecd-b61a57d63eb1"
    }
  ]
}

Properties and owners

Any Florida property, and the county rolls Groundbreak reads outside Florida. Find the owner, the people behind an LLC (Florida, from Sunbiz), their phones, and the public record on the parcel.

lookup_property

Reads

Look up a property by street address, parcel id or folio, or every parcel an owner name holds: any Florida property on the statewide tax roll, and outside Florida any parcel in Travis, Dallas, Tarrant, Fulton, DeKalb, Davidson and Mecklenburg counties on the county rolls Groundbreak reads. Returns the owner, mailing address, use, size, value and last sale. Writes nothing; add_property saves one to the workspace.

qrequired
stringA street address with city (and state outside Florida), a parcel id or Miami-Dade folio, or an owner name such as an LLC
Example request and response
Request body
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "lookup_property",
    "arguments": {
      "q": "1450 Brickell Ave, Miami"
    }
  }
}
Response · result.structuredContent
{
  "searched_as": "address",
  "match": {
    "county": "Miami-Dade",
    "state": "FL",
    "parcel_id": "0141391170010",
    "address": "1450 BRICKELL AVE, Miami, 33131",
    "owner": "1450 BRICKELL LLC",
    "owner_mailing": "1450 BRICKELL AVE STE #1450, MIAMI FL 33131",
    "use": "Office, multi-story",
    "year_built": 2010,
    "building_sqft": 1152000,
    "lot_acres": 1.92,
    "units": null,
    "just_value": "$241M",
    "last_sale": null,
    "in_workspace": {
      "path": "/properties/9f9d54f9-cfc3-4c62-96f8-03ce2f6fd03a",
      "url": "https://crm.groundbreak.city/properties/9f9d54f9-cfc3-4c62-96f8-03ce2f6fd03a"
    }
  },
  "others": [
    {
      "county": "Miami-Dade",
      "state": "FL",
      "parcel_id": "0141390010270",
      "address": "1500 BRICKELL AVE, Miami, 33129",
      "owner": "CHATEAU PETIT DOUY LLC",
      "owner_mailing": "1428 BRICKELL AVE STE 400, MIAMI FL",
      "use": "Restaurant",
      "year_built": 1928,
      "building_sqft": 6297,
      "lot_acres": 0.35,
      "units": null,
      "just_value": "$4M",
      "last_sale": null
    },
    {
      "county": "Miami-Dade",
      "state": "FL",
      "parcel_id": "0141390640010",
      "address": "1435 BRICKELL AVE, Miami, 33131",
      "owner": "FSM HOTEL OWNER LLC",
      "owner_mailing": "206 TETUAN ST 403, SAN JUAN PR",
      "use": "Hotel or motel",
      "year_built": 2003,
      "building_sqft": 326460,
      "lot_acres": 3.74,
      "units": 221,
      "just_value": "$56.6M",
      "last_sale": null
    }
  ],
  "note": "To save it, call add_property with county and parcel_id. The roll only carries recent sales; groundbreak_records has the sale history and the clerk filings Groundbreak reads.",
  "source": "Florida DOR tax roll via the Florida GIS office statewide parcels"
}

groundbreak_records

Reads

The public record for an address or parcel without adding it: appraiser sales, plus what Groundbreak reads in its markets (Miami: permits, trade subs, deeds, construction loans, notices of commencement and FAA height filings; Atlanta: permits, planning cases, DeKalb deeds & loans and FAA height filings; Nashville: permits, Planning Commission cases, sales and FAA height filings; Austin: permits, site plan and zoning cases, TDLR registrations, JETI plant applications and FAA height filings; Tampa Bay: permits, deeds, mortgages, notices of commencement and FAA height filings; Charlotte: permits, rezoning petitions, owners of record and FAA height filings; Dallas-Fort Worth: permits, TDLR registrations, JETI plant applications, deeds of trust, deeds, zoning cases and FAA height filings; Toronto: permits, rezonings and site plans and school and hospital projects); City of Orlando permits in Orlando. Elsewhere only the appraiser roll.

qrequired
stringStreet address with city (and state outside Florida), or a parcel id or folio
Example request and response
Request body
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "groundbreak_records",
    "arguments": {
      "q": "1450 Brickell Ave, Miami"
    }
  }
}
Response · result.structuredContent
{
  "parcel": {
    "county": "Miami-Dade",
    "state": "FL",
    "parcel_id": "0141391170010",
    "address": "1450 BRICKELL AVE, Miami, 33131",
    "owner": "1450 BRICKELL LLC",
    "owner_mailing": "1450 BRICKELL AVE STE #1450, MIAMI FL 33131",
    "use": "Office, multi-story",
    "year_built": 2010,
    "building_sqft": 1152000,
    "lot_acres": 1.92,
    "units": null,
    "just_value": "$241M",
    "last_sale": null
  },
  "title_flags": [],
  "record": {
    "sales": [],
    "records": [],
    "permits": [
      {
        "id": "MIA-BD26002707001P001",
        "filed": "2026-10-27",
        "work": "Permit",
        "description": "Roughing Fixture: Miscellaneous Sink, Setting Fixture: Miscellaneous Sink, Roughing Fixture: Ice Maker",
        "value": "$3K",
        "contractor": "The Severn Group INC",
        "contractor_phone": null,
        "source": "Miami-Dade County and City of Miami (trade permit)"
      },
      {
        "id": "MIA-BD26002707001MA001",
        "filed": "2026-10-27",
        "work": "Permit",
        "description": "Fiberglass Ductwork",
        "value": "$8K",
        "contractor": "The Severn Group INC",
        "contractor_phone": null,
        "source": "Miami-Dade County and City of Miami (trade permit)"
      }
    ],
    "contacts_on_filings": [
      {
        "name": null,
        "org": "Origin Construction LLC",
        "role": "contractor",
        "phone": "(305) 573-8030",
        "email": null,
        "filed": "2026-09-23"
      },
      {
        "name": null,
        "org": "Hitt Contracting\\,inc",
        "role": "contractor",
        "phone": "(786) 368-4028",
        "email": null,
        "filed": "2026-08-11"
      }
    ],
    "sources": [
      "Florida DOR tax roll (statewide parcels): 1 found",
      "Miami-Dade Property Appraiser: 0 found"
    ],
    "as_of": "2026-10-28T20:26:05.262Z"
  }
}

add_property

Changes your CRM

Add a parcel to the workspace. Pulls the county record and makes the owner an owner record; for a Florida property it reads the owner's Sunbiz filing for the people behind it (free). Returns the property with links. Use the county and parcel_id from lookup_property.

countyrequired
stringCounty name as lookup_property returned it, e.g. Miami-Dade, Orange, Travis, Dallas, Fulton
parcel_idrequired
stringParcel id exactly as lookup_property returned it
Example request and response
Request body
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "add_property",
    "arguments": {
      "county": "Miami-Dade",
      "parcel_id": "0141391170010"
    }
  }
}
Response · result.structuredContent
{
  "created": true,
  "property": {
    "id": "9f9d54f9-cfc3-4c62-96f8-03ce2f6fd03a",
    "address": "1450 Brickell Ave, Miami, 33131",
    "county": "Miami-Dade",
    "owner": "1450 BRICKELL LLC",
    "path": "/properties/9f9d54f9-cfc3-4c62-96f8-03ce2f6fd03a",
    "url": "https://crm.groundbreak.city/properties/9f9d54f9-cfc3-4c62-96f8-03ce2f6fd03a"
  },
  "owner": {
    "id": "a27ee843-bbb5-42dc-8211-6141b7856e97",
    "path": "/owners/a27ee843-bbb5-42dc-8211-6141b7856e97",
    "url": "https://crm.groundbreak.city/owners/a27ee843-bbb5-42dc-8211-6141b7856e97"
  },
  "people_behind_owner": [
    {
      "id": "5e0c3a8e-4b1f-4c2a-9d7e-2f6b8a1c0d34",
      "name": "Jordan Lee",
      "title": "Manager",
      "phones": [],
      "emails": [],
      "mailing": "100 Example St, Miami FL 33131",
      "flags": [],
      "path": "/contacts/5e0c3a8e-4b1f-4c2a-9d7e-2f6b8a1c0d34",
      "url": "https://crm.groundbreak.city/contacts/5e0c3a8e-4b1f-4c2a-9d7e-2f6b8a1c0d34"
    }
  ],
  "next": "find_phones with owner_id spends a credit per person found."
}

get_property

Reads

A property in the workspace: facts, owner, the people behind the owner, deals, and the public record (sales, deeds, mortgages, liens, lis pendens, permits) with title flags.

idrequired
idProperty id
Example request and response
Request body
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_property",
    "arguments": {
      "id": "9f9d54f9-cfc3-4c62-96f8-03ce2f6fd03a"
    }
  }
}
Response · result.structuredContent
{
  "id": "9f9d54f9-cfc3-4c62-96f8-03ce2f6fd03a",
  "address": "1450 Brickell Ave, Miami, 33131",
  "county": "Miami-Dade",
  "parcel_id": "0141391170010",
  "use": "Office, multi-story",
  "year_built": 2010,
  "building_sqft": 1152000,
  "lot_acres": 1.92,
  "units": null,
  "just_value": "$241M",
  "last_sale": "· ·",
  "owner": {
    "id": "a27ee843-bbb5-42dc-8211-6141b7856e97",
    "name": "1450 Brickell LLC",
    "kind": "llc",
    "sunbiz": null,
    "path": "/owners/a27ee843-bbb5-42dc-8211-6141b7856e97",
    "url": "https://crm.groundbreak.city/owners/a27ee843-bbb5-42dc-8211-6141b7856e97"
  },
  "owner_mailing": "1450 BRICKELL AVE STE #1450, MIAMI FL 33131",
  "people_behind_owner": [],
  "deals": [
    {
      "id": "b2fe5d77-9618-47f3-b090-f29a5b0fe015",
      "name": "1450 Brickell Ave",
      "stage": "Prospect",
      "value": "·",
      "path": "/deals/b2fe5d77-9618-47f3-b090-f29a5b0fe015",
      "url": "https://crm.groundbreak.city/deals/b2fe5d77-9618-47f3-b090-f29a5b0fe015"
    }
  ],
  "title_flags": [],
  "record": {
    "sales": [],
    "records": [],
    "permits": [
      {
        "id": "MIA-BD26002707001E001",
        "filed": "2026-10-06",
        "work": "Permit",
        "description": "Light Socket, Rough Wiring Outlets, Refrigerators Domestic",
        "value": "$89K",
        "contractor": "Fisk Electric Company",
        "contractor_phone": null,
        "source": "miami trades"
      },
      {
        "id": "MIA-BD24015076012E001",
        "filed": "2026-10-05",
        "work": "Permit",
        "description": "Low Voltage Energy Management System",
        "value": "$100",
        "contractor": "Fisk Electric Company",
        "contractor_phone": null,
        "source": "miami trades"
      }
    ],
    "contacts_on_filings": [
      {
        "org": "Origin Construction LLC",
        "name": null,
        "role": "contractor",
        "email": null,
        "filed": "2026-09-23",
        "phone": "(305) 573-8030"
      },
      {
        "org": "Hitt Contracting\\,inc",
        "name": null,
        "role": "contractor",
        "email": null,
        "filed": "2026-08-11",
        "phone": "(786) 368-4028"
      }
    ],
    "sources": [
      "Florida DOR tax roll (statewide parcels): 1 found",
      "Miami-Dade Property Appraiser: 0 found"
    ],
    "as_of": "2026-10-14T20:30:35.073Z"
  },
  "path": "/properties/9f9d54f9-cfc3-4c62-96f8-03ce2f6fd03a",
  "url": "https://crm.groundbreak.city/properties/9f9d54f9-cfc3-4c62-96f8-03ce2f6fd03a"
}

refresh_property_research

Changes your CRM

Re-read the public record for a property in the workspace (appraiser sales, clerk filings, permits). Free.

idrequired
idProperty id
Example request and response
Request body
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "refresh_property_research",
    "arguments": {
      "id": "9f9d54f9-cfc3-4c62-96f8-03ce2f6fd03a"
    }
  }
}
Response · result.structuredContent
{
  "refreshed": true,
  "record": {
    "sales": [],
    "records": [],
    "permits": [
      {
        "id": "MIA-BD26002707001E001",
        "filed": "2026-10-06",
        "work": "Permit",
        "description": "Light Socket, Rough Wiring Outlets, Refrigerators Domestic",
        "value": "$89K",
        "contractor": "Fisk Electric Company",
        "contractor_phone": null,
        "source": "miami trades"
      },
      {
        "id": "MIA-BD24015076012E001",
        "filed": "2026-10-05",
        "work": "Permit",
        "description": "Low Voltage Energy Management System",
        "value": "$100",
        "contractor": "Fisk Electric Company",
        "contractor_phone": null,
        "source": "miami trades"
      }
    ],
    "contacts_on_filings": [
      {
        "org": "Origin Construction LLC",
        "name": null,
        "role": "contractor",
        "email": null,
        "filed": "2026-09-23",
        "phone": "(305) 573-8030"
      },
      {
        "org": "Hitt Contracting\\,inc",
        "name": null,
        "role": "contractor",
        "email": null,
        "filed": "2026-08-11",
        "phone": "(786) 368-4028"
      }
    ],
    "sources": [
      "Florida DOR tax roll (statewide parcels): 1 found",
      "Miami-Dade Property Appraiser: 0 found"
    ],
    "as_of": "2026-10-14T20:30:35.073Z"
  },
  "path": "/properties/9f9d54f9-cfc3-4c62-96f8-03ce2f6fd03a",
  "url": "https://crm.groundbreak.city/properties/9f9d54f9-cfc3-4c62-96f8-03ce2f6fd03a"
}

get_owner

Reads

An owner (LLC, corporation, trust or person) in the workspace by id or name: its Sunbiz filing, the people behind it with phones and emails, its properties and deals.

id
idOwner id
name
stringOwner name, when there is no id
Example request and response
Request body
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_owner",
    "arguments": {
      "id": "a27ee843-bbb5-42dc-8211-6141b7856e97"
    }
  }
}
Response · result.structuredContent
{
  "id": "a27ee843-bbb5-42dc-8211-6141b7856e97",
  "name": "1450 Brickell LLC",
  "kind": "llc",
  "sunbiz": null,
  "people": [
    {
      "id": "5e0c3a8e-4b1f-4c2a-9d7e-2f6b8a1c0d34",
      "name": "Jordan Lee",
      "title": "Manager",
      "phones": [
        "(305) 555-0142 mobile",
        "(305) 555-0187 landline DNC"
      ],
      "emails": [
        "jordan.lee@example.com"
      ],
      "mailing": "100 Example St, Miami FL 33131",
      "flags": [],
      "path": "/contacts/5e0c3a8e-4b1f-4c2a-9d7e-2f6b8a1c0d34",
      "url": "https://crm.groundbreak.city/contacts/5e0c3a8e-4b1f-4c2a-9d7e-2f6b8a1c0d34"
    }
  ],
  "properties": [
    {
      "id": "9f9d54f9-cfc3-4c62-96f8-03ce2f6fd03a",
      "address": "1450 Brickell Ave",
      "city": "Miami",
      "path": "/properties/9f9d54f9-cfc3-4c62-96f8-03ce2f6fd03a",
      "url": "https://crm.groundbreak.city/properties/9f9d54f9-cfc3-4c62-96f8-03ce2f6fd03a"
    }
  ],
  "deals": [
    {
      "id": "b2fe5d77-9618-47f3-b090-f29a5b0fe015",
      "name": "1450 Brickell Ave",
      "stage": "Prospect",
      "path": "/deals/b2fe5d77-9618-47f3-b090-f29a5b0fe015",
      "url": "https://crm.groundbreak.city/deals/b2fe5d77-9618-47f3-b090-f29a5b0fe015"
    }
  ],
  "notes": null,
  "path": "/owners/a27ee843-bbb5-42dc-8211-6141b7856e97",
  "url": "https://crm.groundbreak.city/owners/a27ee843-bbb5-42dc-8211-6141b7856e97"
}

trace_owner_people

Changes your CRM

Read the owner's Sunbiz filing and add the managers, members and officers as contacts, following a managing LLC up to two levels. Free. Run before find_phones when an owner has no people yet.

owner_idrequired
idOwner id
Example request and response
Request body
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "trace_owner_people",
    "arguments": {
      "owner_id": "a27ee843-bbb5-42dc-8211-6141b7856e97"
    }
  }
}
Response · result.structuredContent
{
  "status": "found",
  "note": "Read the Sunbiz filing.",
  "entity": {
    "doc_number": "L05000113449",
    "type": "Florida LLC",
    "status": "Active",
    "filed": "2005-11-23"
  },
  "managed_by": [
    {
      "id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
      "name": "PARK PLACE HOLDINGS AT BRICKELL LLC",
      "path": "/owners/c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
      "url": "https://crm.groundbreak.city/owners/c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f"
    }
  ],
  "people": [
    {
      "id": "5e0c3a8e-4b1f-4c2a-9d7e-2f6b8a1c0d34",
      "name": "Jordan Lee",
      "title": "Manager",
      "phones": [],
      "emails": [],
      "mailing": "100 Example St, Miami FL 33131",
      "flags": [],
      "path": "/contacts/5e0c3a8e-4b1f-4c2a-9d7e-2f6b8a1c0d34",
      "url": "https://crm.groundbreak.city/contacts/5e0c3a8e-4b1f-4c2a-9d7e-2f6b8a1c0d34"
    }
  ],
  "path": "/owners/a27ee843-bbb5-42dc-8211-6141b7856e97",
  "url": "https://crm.groundbreak.city/owners/a27ee843-bbb5-42dc-8211-6141b7856e97"
}

find_phones

Spends credits

Skip trace people for phones and emails, with DNC and TCPA litigator flags. Spends one workspace credit per person found; misses are free; anyone traced in the last 30 days is not charged again. Pass owner_id to trace everyone behind an owner, or contact_ids.

owner_id
id
contact_ids
list of id
Example request and response
Request body
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "find_phones",
    "arguments": {
      "owner_id": "a27ee843-bbb5-42dc-8211-6141b7856e97"
    }
  }
}
Response · result.structuredContent
{
  "status": "done",
  "note": "Done.",
  "credits_left": 99,
  "traced": [
    {
      "outcome": "hit",
      "id": "5e0c3a8e-4b1f-4c2a-9d7e-2f6b8a1c0d34",
      "name": "Jordan Lee",
      "title": "Manager",
      "phones": [
        "(305) 555-0142 mobile",
        "(305) 555-0187 landline DNC"
      ],
      "emails": [
        "jordan.lee@example.com"
      ],
      "mailing": "100 Example St, Miami FL 33131",
      "flags": [],
      "path": "/contacts/5e0c3a8e-4b1f-4c2a-9d7e-2f6b8a1c0d34",
      "url": "https://crm.groundbreak.city/contacts/5e0c3a8e-4b1f-4c2a-9d7e-2f6b8a1c0d34"
    }
  ],
  "compliance": "Numbers marked DNC are on a do-not-call list or flagged for TCPA risk. Do not cold call them."
}

sunbiz_lookup

Reads

The Florida Division of Corporations filing for an entity by exact name or document number: status, type, filing date, addresses, registered agent and officers. Or, with partial=true, entity names that start with the text.

name
string
doc_number
string
partial
boolean
Example request and response
Request body
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "sunbiz_lookup",
    "arguments": {
      "name": "1450 Brickell LLC"
    }
  }
}
Response · result.structuredContent
{
  "name": "1450 BRICKELL, LLC",
  "doc_number": "L05000113449",
  "type": "Florida LLC",
  "status": "Active",
  "filed": "2005-11-23",
  "fein": "204832729",
  "last_report": "Annual report 2026",
  "principal": "1450 BRICKELL AVE., MIAMI FL 33131",
  "mailing": "1450 BRICKELL AVE., MIAMI FL 33131",
  "registered_agent": {
    "name": "Interamerican Corporate Services LLC",
    "address": "2525 Ponce de Leon Blvd, Coral Gables FL 33134",
    "agent_service": true
  },
  "officers": [
    {
      "title": "Authorized member",
      "name": "PARK PLACE HOLDINGS AT BRICKELL LLC",
      "address": "1450 BRICKELL AVE., MIAMI FL 33131",
      "kind": "entity"
    }
  ],
  "sunbiz_search": "https://search.sunbiz.org/Inquiry/CorporationSearch/SearchResults?inquiryType=EntityName&searchTerm=1450%20BRICKELL%2C%20LLC&searchNameOrder=1450BRICKELLLLC",
  "source": "Florida Division of Corporations bulk data"
}

entities_managed_by

Reads

Every Florida entity a person or company is listed on as a manager, member or officer: the portfolio behind a name. Names as Sunbiz writes them, e.g. "PINTO, MIGUEL A" or "PINTO MIGUEL A".

namerequired
string
Example request and response
Request body
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "entities_managed_by",
    "arguments": {
      "name": "PARK PLACE HOLDINGS AT BRICKELL LLC"
    }
  }
}
Response · result.structuredContent
{
  "name": "PARK PLACE HOLDINGS AT BRICKELL LLC",
  "count": 2,
  "entities": [
    {
      "docNumber": "L05000113449",
      "name": "1450 BRICKELL, LLC",
      "title": "Authorized member",
      "status": "Active",
      "filedOn": "2005-11-23"
    },
    {
      "docNumber": "L00000012857",
      "name": "PARK PLACE AT BRICKELL LLC",
      "title": "Authorized member",
      "status": "Active",
      "filedOn": "2000-10-20"
    }
  ],
  "tip": "lookup_property with an entity name lists its parcels."
}

Your CRM

The deals, people, notes and tasks in your workspace. Writes land on the timeline marked as made over MCP.

search_crm

Reads

Search this workspace: deals, owners, properties and people by name or address.

qrequired
string
Example request and response
Request body
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search_crm",
    "arguments": {
      "q": "Brickell"
    }
  }
}
Response · result.structuredContent
{
  "hits": [
    {
      "kind": "deal",
      "id": "b2fe5d77-9618-47f3-b090-f29a5b0fe015",
      "title": "1450 Brickell Ave",
      "sub": "Prospect",
      "path": "/deals/b2fe5d77-9618-47f3-b090-f29a5b0fe015",
      "url": "https://crm.groundbreak.city/deals/b2fe5d77-9618-47f3-b090-f29a5b0fe015"
    },
    {
      "kind": "owner",
      "id": "a27ee843-bbb5-42dc-8211-6141b7856e97",
      "title": "1450 Brickell LLC",
      "sub": "LLC",
      "path": "/owners/a27ee843-bbb5-42dc-8211-6141b7856e97",
      "url": "https://crm.groundbreak.city/owners/a27ee843-bbb5-42dc-8211-6141b7856e97"
    }
  ]
}

list_deals

Reads

Deals in the pipeline, optionally one stage or a name search. Stages: prospect, contacted, meeting, proposal, signed, contract, closed, lost (or the workspace's own).

stage
string
q
string
Example request and response
Request body
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_deals",
    "arguments": {}
  }
}
Response · result.structuredContent
{
  "stages": [
    {
      "key": "prospect",
      "label": "Prospect",
      "deals": 6
    },
    {
      "key": "contacted",
      "label": "Contacted",
      "deals": 0
    }
  ],
  "open_value": "·",
  "deals": [
    {
      "id": "6b8c240a-a523-436a-bed5-2fa2503d1c31",
      "name": "2201 NW 79 Ave listing",
      "stage": "Proposal",
      "value": "·",
      "side": "listing",
      "property": "2201 NW 79 Ave",
      "owner": null,
      "people": [],
      "updated": "Oct 18",
      "path": "/deals/6b8c240a-a523-436a-bed5-2fa2503d1c31",
      "url": "https://crm.groundbreak.city/deals/6b8c240a-a523-436a-bed5-2fa2503d1c31"
    },
    {
      "id": "b2fe5d77-9618-47f3-b090-f29a5b0fe015",
      "name": "1450 Brickell Ave",
      "stage": "Prospect",
      "value": "·",
      "side": "listing",
      "property": "1450 Brickell Ave",
      "owner": "1450 Brickell LLC",
      "people": [],
      "updated": "Oct 14",
      "path": "/deals/b2fe5d77-9618-47f3-b090-f29a5b0fe015",
      "url": "https://crm.groundbreak.city/deals/b2fe5d77-9618-47f3-b090-f29a5b0fe015"
    }
  ]
}

get_deal

Reads

One deal: stage, value, property, owner, the people on it with phones, the last 20 timeline entries, open tasks and the title snapshot.

idrequired
id
Example request and response
Request body
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_deal",
    "arguments": {
      "id": "b2fe5d77-9618-47f3-b090-f29a5b0fe015"
    }
  }
}
Response · result.structuredContent
{
  "id": "b2fe5d77-9618-47f3-b090-f29a5b0fe015",
  "name": "1450 Brickell Ave",
  "stage": "Prospect",
  "side": "listing",
  "value": "·",
  "fee_pct": null,
  "close_date": null,
  "in_stage_since": "Oct 14",
  "property": {
    "id": "9f9d54f9-cfc3-4c62-96f8-03ce2f6fd03a",
    "address": "1450 Brickell Ave",
    "path": "/properties/9f9d54f9-cfc3-4c62-96f8-03ce2f6fd03a",
    "url": "https://crm.groundbreak.city/properties/9f9d54f9-cfc3-4c62-96f8-03ce2f6fd03a"
  },
  "owner": {
    "id": "a27ee843-bbb5-42dc-8211-6141b7856e97",
    "name": "1450 Brickell LLC",
    "path": "/owners/a27ee843-bbb5-42dc-8211-6141b7856e97",
    "url": "https://crm.groundbreak.city/owners/a27ee843-bbb5-42dc-8211-6141b7856e97"
  },
  "people": [],
  "timeline": [
    {
      "at": "2026-10-19T20:52:48.196568+00:00",
      "kind": "pitch",
      "by": "Jordan Lee",
      "via": "app",
      "text": "Built a pitch for 1450 Brickell Ave"
    },
    {
      "at": "2026-10-14T20:30:39.329009+00:00",
      "kind": "created",
      "by": "Jordan Lee",
      "via": "app",
      "text": "Created the deal in Prospect"
    }
  ],
  "open_tasks": [],
  "title_snapshot": null,
  "path": "/deals/b2fe5d77-9618-47f3-b090-f29a5b0fe015",
  "url": "https://crm.groundbreak.city/deals/b2fe5d77-9618-47f3-b090-f29a5b0fe015"
}

create_deal

Changes your CRM

Create a deal in the pipeline, optionally tied to a property, owner and contacts. Stage defaults to the first stage.

namerequired
string
stage
string
side
listing | acquisition | lease | financing | other
value
number, 0 or moreExpected price or deal size in dollars
property_id
id
owner_id
id
contact_ids
list of id
Example request and response
Request body
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_deal",
    "arguments": {
      "name": "1450 Brickell Ave sale",
      "side": "listing",
      "value": 240000000,
      "property_id": "9f9d54f9-cfc3-4c62-96f8-03ce2f6fd03a"
    }
  }
}
Response · result.structuredContent
{
  "id": "3f2a9c1e-7b4d-4e8a-b6c5-9d0e1f2a3b4c",
  "name": "1450 Brickell Ave sale",
  "stage": "Prospect",
  "path": "/deals/3f2a9c1e-7b4d-4e8a-b6c5-9d0e1f2a3b4c",
  "url": "https://crm.groundbreak.city/deals/3f2a9c1e-7b4d-4e8a-b6c5-9d0e1f2a3b4c"
}

move_deal

Changes your CRM

Move a deal to another stage. Entering Signed or Under contract takes a title snapshot from the county record.

idrequired
id
stagerequired
stringStage key or label
lost_reason
string
Example request and response
Request body
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "move_deal",
    "arguments": {
      "id": "3f2a9c1e-7b4d-4e8a-b6c5-9d0e1f2a3b4c",
      "stage": "contacted"
    }
  }
}
Response · result.structuredContent
{
  "id": "3f2a9c1e-7b4d-4e8a-b6c5-9d0e1f2a3b4c",
  "stage": "Contacted",
  "title_snapshot_taken": false,
  "path": "/deals/3f2a9c1e-7b4d-4e8a-b6c5-9d0e1f2a3b4c",
  "url": "https://crm.groundbreak.city/deals/3f2a9c1e-7b4d-4e8a-b6c5-9d0e1f2a3b4c"
}

add_note

Changes your CRM

Log a note, call, email or meeting on a deal, contact, owner or property timeline. Calls, emails and meetings update the contact's last touch.

bodyrequired
string
kind
note | call | email | meeting
deal_id
id
contact_id
id
owner_id
id
property_id
id
Example request and response
Request body
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "add_note",
    "arguments": {
      "body": "Called the owner. Open to an offer after the first quarter.",
      "kind": "call",
      "deal_id": "3f2a9c1e-7b4d-4e8a-b6c5-9d0e1f2a3b4c"
    }
  }
}
Response · result.structuredContent
{
  "logged": true,
  "id": "8a7b6c5d-4e3f-4a2b-9c1d-0e9f8a7b6c5d"
}

create_task

Changes your CRM

Create a task (a call back, a follow-up), optionally due on a date and tied to a deal or contact. Assigned to the caller unless assignee_email names a teammate.

titlerequired
string
due
stringYYYY-MM-DD or an ISO time
deal_id
id
contact_id
id
assignee_email
string
Example request and response
Request body
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_task",
    "arguments": {
      "title": "Send the owner the comps",
      "due": "2026-11-06",
      "deal_id": "3f2a9c1e-7b4d-4e8a-b6c5-9d0e1f2a3b4c"
    }
  }
}
Response · result.structuredContent
{
  "id": "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
  "title": "Send the owner the comps",
  "due": "Nov 6",
  "path": "/today",
  "url": "https://crm.groundbreak.city/today"
}

list_tasks

Reads

Tasks in the workspace: open ones by default, the caller's own when mine=true.

open
boolean
mine
boolean
Example request and response
Request body
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_tasks",
    "arguments": {
      "open": true
    }
  }
}
Response · result.structuredContent
{
  "tasks": [
    {
      "id": "af48b62a-d28f-4fa4-868e-f85887d3a851",
      "title": "Call the owner back about the listing",
      "due": "Oct 18",
      "done": false,
      "deal": {
        "id": "6b8c240a-a523-436a-bed5-2fa2503d1c31",
        "name": "2201 NW 79 Ave listing",
        "path": "/deals/6b8c240a-a523-436a-bed5-2fa2503d1c31",
        "url": "https://crm.groundbreak.city/deals/6b8c240a-a523-436a-bed5-2fa2503d1c31"
      }
    }
  ]
}

Markets

Pass a market by its id. What each one holds comes from the public record, and some records are not public everywhere.

MarketRecordsNot in the recordProperties
Austin, TXaustinpermits, site plan and zoning cases, TDLR registrations, JETI plant applications and FAA height filingssales name buyer and seller with no price; no loans; no notices of commencement; no liens or lis pendensProperties in Travis County, TX. Naming the people behind an LLC is Florida only.
Atlanta, GAatlantapermits, planning cases, DeKalb deeds & loans and FAA height filingssales name buyer and seller with no price; no notices of commencementProperties in Fulton and DeKalb counties, GA. Naming the people behind an LLC is Florida only.
Miami, FLmiamipermits, trade subs, deeds, construction loans, notices of commencement and FAA height filings·Any Florida property, from the statewide roll. The people behind an LLC come from Sunbiz.
Nashville, TNnashvillepermits, Planning Commission cases, sales and FAA height filingsno loans; no notices of commencement; no liens or lis pendens; no phones on permitsProperties in Davidson County, TN. Naming the people behind an LLC is Florida only.
Tampa Bay, FLtampapermits, deeds, mortgages, notices of commencement and FAA height filings·Any Florida property, from the statewide roll. The people behind an LLC come from Sunbiz.
Charlotte, NCcharlottepermits, rezoning petitions, owners of record and FAA height filingsno sales; no loans; no notices of commencement; no liens or lis pendensProperties in Mecklenburg County, NC. Naming the people behind an LLC is Florida only.
Dallas-Fort Worth, TXdfwpermits, TDLR registrations, JETI plant applications, deeds of trust, deeds, zoning cases and FAA height filingssales name buyer and seller with no price; no notices of commencementProperties in Dallas and Tarrant counties, TX. Naming the people behind an LLC is Florida only.
Toronto, ONtorontopermits, rezonings and site plans and school and hospital projectsno sales; no loans; no notices of commencement; no liens or lis pendens; no phones on permitsProperties: not yet.

Plans and limits

Pro returns the parties on filings from the last 90 days. Without Pro those come back withheld, and older filings come back whole.

PlanTool calls a minuteTool calls a day
Pro602,000
Without Pro20100

Limits count tool calls per person, across all of that person's keys. Connecting and listing tools are free. Daily limits reset at midnight UTC. Your calls today are on your API page. Need more a day? Ask for a higher limit there, or email max@groundbreak.city.

  • find_phones spends 1 credit for each person it finds a phone or email for. Misses are free, and anyone traced in the last 30 days is free again.
  • Pro ($27 a month) adds 50 credits to your workspace each month. A pack adds 200 for $27 and they keep.
  • Every other tool is free. Sunbiz people, phones on permits and owners of record never cost a credit.

Errors

WhatWhat it looks likeWhat to do
Not signed in, or a wrong, revoked or expired keyHTTP 401 with JSON-RPC error -32001 and a WWW-Authenticate headerA client that signs in starts the sign-in from that header; an expired sign-in refreshes on its own. Otherwise make a key at https://pro.groundbreak.city/connect and check the client sends it.
Past the limitA tool result with isError and "past your limit of ..."Wait for the window to reset: a minute, or midnight UTC. For a higher daily limit, ask at https://pro.groundbreak.city/connect or email max@groundbreak.city.
A read key asked to writeA tool result with isError and "This key reads only"Use a key with full access for that client.
Arguments the tool does not takeA tool result with isError and "Invalid arguments: ..."The message names the field. The tool list carries each input schema.
A refusal meant for youA result with an error field: an id from another workspace, no credits leftRead it to the person: it says what to do.
A failure on our sideA tool result with isError and "That tool failed on our side"We are told when this happens. Try again in a moment.

Keys and safety

  • A key, or an app you signed in to, acts as you in the workspace you picked. It reads everything you can.
  • With full access it also logs notes, makes and moves deals and spends credits in your name. Read only sees only the tools that read.
  • Make one key per client, so you can revoke one without the others. Revoking a key or disconnecting an app on your API page stops it at once.
  • A key in a URL lives in that client's settings. Treat the URL like a password, and prefer signing in where the client can.

Protocol

  • JSON-RPC 2.0 over HTTP POST, Streamable HTTP. Methods: initialize, ping, tools/list, tools/call. Batches work.
  • Answers are plain JSON, never an event stream. No sessions: every request stands alone. GET answers 405.
  • Protocol versions: 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05.
  • A result longer than 60,000 characters comes back with its longest lists cut and a trimmed note.
  • Tools carry readOnlyHint. On connect the server tells the client the workspace, the plan, the limits and the credits left.
  • OAuth 2.1: a request without a token gets a 401 whose WWW-Authenticate names the resource metadata; the server metadata lists the endpoints. Dynamic client registration, PKCE (S256 only), scopes mcp:full and mcp:read. Access tokens last 60 minutes; refresh tokens 90 days, replaced on every use.

Try asking

  • The 10 biggest permits filed in Miami in the last 30 days, with the contractor on each
  • Mortgages recorded in Tampa in the last 60 days: lender, borrower and amount
  • Find the project at an address I give you and list its developer, architect and GC
  • What has a company I name filed in Atlanta in the last year?
  • Look up an address I give you: who owns it, and who is behind the LLC?
  • Which deals in my pipeline have no phone for the owner yet?
  • Log a call with the owner on my newest deal and set a follow-up for Friday