Florida Home Search by U.S. Prime Realty
Search Florida properties and new construction for sale with U.S. Prime Realty.
Should I use this
Quality & Safety
Findings (2)
- LOWin book_appointment
- LOWin reschedule_appointment
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"florida-home-search": {
"url": "https://api.usprimerealty.com/mcp"
}
}
}Remote endpoints
https://api.usprimerealty.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (13)
🟢get_guides_list
Retrieve a list of all available real estate guides for the agent to share with the user
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢download_guides(contactId, guideIds)
Retrieve a specific real estate guide's (or multiple guides') download link for the agent to share with the user
Input Schema
{
"type": "object",
"properties": {
"contactId": {
"type": "string",
"minLength": 1,
"description": "The contact ID returned in the `contact` field of a previous send_contact_info call in this conversation.Never guess, invent, or reuse an ID from elsewhere. If you don't have one yet, collect the person's name and email or phone and call send_contact_info first."
},
"guideIds": {
"minItems": 1,
"type": "array",
"items": {
"type": "string"
},
"description": "The IDs of the guides to download. Reference IDs from get_guides_list."
}
},
"required": [
"contactId",
"guideIds"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢search_properties(listing_ids, community, zipcode, property_type, propertySubType, ...)
Search Florida listings through IDX Broker. Provide community OR zipcode (zipcode overrides community). listingIds overrides every filter except sort. Sort 'pra' requires mip; sort 'sqfta' requires sqft. Returns up to 25 results by default plus a searchURL to share with the client.
Input Schema
{
"type": "object",
"properties": {
"listing_ids": {
"description": "Exact MLS listing IDs to look up directly",
"type": "array",
"items": {
"type": "string"
}
},
"community": {
"type": "string",
"enum": [
"Aventura",
"Cape Coral",
"Fort Myers",
"Fort Lauderdale",
"Miami",
"Naples",
"Orlando",
"Tampa"
]
},
"zipcode": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"property_type": {
"description": "The sub-category of properties to include in the search; sfr = Single Family Residential, rnt = Rental, lse = Lease",
"type": "string",
"enum": [
"sfr",
"rnt",
"lse"
]
},
"propertySubType": {
"description": "Overrides property_type",
"type": "string",
"enum": [
"Apartment",
"Condominium",
"Duplex",
"Townhouse"
]
},
"minimumPrice": {
"description": "Required when sorting by low-to-high price",
"type": "integer",
"minimum": 1000,
"maximum": 9007199254740991
},
"maximumPrice": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"beds": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"baths": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"sqft": {
"description": "Required when sorting by low-to-high square footage",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"hoa_preference": {
"description": "Leave blank for 'No Preference'",
"type": "string",
"enum": [
"No HOA",
"HOA"
]
},
"yearBuilt": {
"description": "Set to current year for 'New Construction'",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"daysOld": {
"description": "Maximum number of days since the listing was created",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"community_feature": {
"type": "string",
"enum": [
"Beach",
"Gated",
"Golf"
]
},
"pets_allowed": {
"description": "Leave blank for 'No Preference'",
"type": "boolean"
},
"furnished": {
"description": "Leave blank for 'No Preference'",
"type": "string",
"enum": [
"Furnished",
"Partially",
"Unfurnished"
]
},
"sort": {
"description": "How to sort the results (note that only the top 25 will be returned by default); newest = newest listings, oldest = oldest listings, pra = least expensive to most (requires minimum asking price parameter), prd = most expensive to least, bda = bedrooms (low to high), bdd = bedrooms (high to low), tba = bathrooms (low to high) tbd = bathrooms (high to low), sqfta = square footage (low to high, requires sqft parameter), sqftd = square footage (high to low)",
"type": "string",
"enum": [
"newest",
"oldest",
"pra",
"prd",
"bda",
"bdd",
"tba",
"tbd",
"sqfta",
"sqftd"
]
},
"limit": {
"default": 25,
"description": "Maximum number of results to return (default: 25)",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢listing_details(listings)
Get details for either a single listing or several listings
Input Schema
{
"type": "object",
"properties": {
"listings": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"brokerage": {
"type": "string"
}
},
"required": [
"id",
"brokerage"
]
},
"description": "An array of full listing IDs to retrieve details for (include at least 1)"
}
},
"required": [
"listings"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢mortgage_calculator(price, downPayment, rate, years, rentalIncome)
Calculate an estimated mortgage price for a property
Input Schema
{
"type": "object",
"properties": {
"price": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Total listing price"
},
"downPayment": {
"type": "number",
"minimum": 0
},
"rate": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Annual interest rate (e.g., 7.5)"
},
"years": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Loan term (years)"
},
"rentalIncome": {
"description": "Monthly rental income (dollars)",
"type": "number",
"exclusiveMinimum": 0
}
},
"required": [
"price",
"downPayment",
"rate",
"years"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢affordability_calculator(annualIncome, monthlyDebts, maximumPayment, downPayment, debtToIncome, ...)
Calculate an estimate of home affordability
Input Schema
{
"type": "object",
"properties": {
"annualIncome": {
"default": 70000,
"type": "number",
"exclusiveMinimum": 0
},
"monthlyDebts": {
"default": 250,
"type": "number",
"minimum": 0
},
"maximumPayment": {
"default": 1850,
"type": "number",
"exclusiveMinimum": 0
},
"downPayment": {
"default": 20000,
"type": "number",
"minimum": 0
},
"debtToIncome": {
"default": 36,
"description": "The debt to income ratio, as a percentage",
"type": "number",
"minimum": 0
},
"interestRate": {
"default": 5.7,
"type": "number",
"exclusiveMinimum": 0
},
"loanTerm": {
"default": 360,
"description": "Loan term (months)",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"pmi": {
"default": 0,
"description": "Private Mortgage Insurance (PMI) surcharge per month",
"type": "number",
"minimum": 0
},
"propertyTax": {
"default": 1.2,
"description": "Annual percentage",
"type": "number",
"minimum": 0
},
"homeInsurance": {
"default": 945,
"description": "Annual amount",
"type": "number",
"minimum": 0
},
"hoaDues": {
"default": 0,
"type": "number",
"minimum": 0
},
"calculateBy": {
"default": "income",
"type": "string",
"enum": [
"income",
"payment"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡send_contact_info(name, address, contact, targetLocation, interestedIn, ...)
Upload the user's contact information to U.S. Prime Realty's CRM
Input Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the user (preferably full name"
},
"address": {
"type": "string"
},
"contact": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"phone": {
"type": "string"
}
},
"description": "At least ONE OF email/phone is required"
},
"targetLocation": {
"default": [],
"description": "The location the user is interested in",
"type": "array",
"items": {
"type": "string",
"enum": [
"Aventura",
"Cape Coral",
"Fort Lauderdale",
"Fort Myers",
"Miami",
"Naples",
"Orlando",
"Tampa"
]
}
},
"interestedIn": {
"default": [],
"description": "The type of property/properties the user is interested in; i.e. Waterfront Homes, School-Zone Properties, Pre-Construction Condos, Gulf Access, Pool Homes, New Builds, Waterfront Only, High-Rise Condos, Gated Communities, New Construction, Beachfront Condos, Gated Homes",
"type": "array",
"items": {
"type": "string"
}
},
"message": {
"description": "Additional message or notes from the user",
"type": "string"
},
"notes": {
"description": "Notes that should be saved along with the contact from the agent",
"type": "string"
}
},
"required": [
"name",
"contact"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴save_listings(contactId, listingIds)
Save listings to a custom URL for the user, which should then be shared by the agent
Input Schema
{
"type": "object",
"properties": {
"contactId": {
"type": "string",
"minLength": 1,
"description": "The contact ID returned in the `contact` field of a previous send_contact_info call in this conversation.Never guess, invent, or reuse an ID from elsewhere. If you don't have one yet, collect the person's name and email or phone and call send_contact_info first."
},
"listingIds": {
"minItems": 1,
"type": "array",
"items": {
"type": "string"
},
"description": "Full list of Listing IDs to save to the user's profile, overwriting any previous saved listings"
}
},
"required": [
"contactId",
"listingIds"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡notify_agent(contactId, message, notes)
Send a request to notify an agent that the user requires attention
Input Schema
{
"type": "object",
"properties": {
"contactId": {
"type": "string",
"minLength": 1,
"description": "The contact ID returned in the `contact` field of a previous send_contact_info call in this conversation.Never guess, invent, or reuse an ID from elsewhere. If you don't have one yet, collect the person's name and email or phone and call send_contact_info first."
},
"message": {
"description": "Additional message or notes from the user",
"type": "string"
},
"notes": {
"description": "Notes that should be saved along with the contact from the agent",
"type": "string"
}
},
"required": [
"contactId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_appointment_slots(startTime, endTime, timezone)
Retrieve available appointment slots from the calendar
Input Schema
{
"type": "object",
"properties": {
"startTime": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"description": "The start time for the appointment (ISO 8601 format)"
},
"endTime": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"description": "The end time for the range of available slots to retrieve (ISO 8601 format) - max range is 2 weeks"
},
"timezone": {
"default": "America/New_York",
"description": "The timezone for the appointment slots (e.g.: America/New_York)",
"type": "string"
}
},
"required": [
"startTime",
"endTime"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪book_appointment(contactId, startTime)
Book an appointment on the calendar
Input Schema
{
"type": "object",
"properties": {
"contactId": {
"type": "string",
"minLength": 1,
"description": "The contact ID returned in the `contact` field of a previous send_contact_info call in this conversation.Never guess, invent, or reuse an ID from elsewhere. If you don't have one yet, collect the person's name and email or phone and call send_contact_info first."
},
"startTime": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"description": "The start time for the appointment (ISO 8601 format)"
}
},
"required": [
"contactId",
"startTime"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴reschedule_appointment(bookingId, startTime)
Reschedule an existing appointment on the calendar
Input Schema
{
"type": "object",
"properties": {
"bookingId": {
"type": "string",
"minLength": 1,
"description": "The booking ID returned by a previous book_appointment call in this conversation. Never guess or invent one; if you don't have it, ask the person to rebook or contact the brokerage."
},
"startTime": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"description": "The start time for the appointment (ISO 8601 format)"
}
},
"required": [
"bookingId",
"startTime"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴cancel_appointment(bookingId)
Cancel an existing appointment on the calendar
Input Schema
{
"type": "object",
"properties": {
"bookingId": {
"type": "string",
"minLength": 1,
"description": "The booking ID returned by a previous book_appointment call in this conversation. Never guess or invent one; if you don't have it, ask the person to rebook or contact the brokerage."
}
},
"required": [
"bookingId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence