PropFácil
Search authorized real estate in Mexico and manage favorites and publishing with OAuth.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"propfacil": {
"url": "https://www.propfacil.com/api/mcp"
}
}
}Remote-Endpunkte
https://www.propfacil.com/api/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (13)
🟢search_properties(city, transactionType, minPrice, maxPrice, minBedrooms, ...)
Use this when the user wants to find authorized PropFácil property listings in Mexico by city, transaction type, price, bedrooms, or geographic radius.
Eingabe-Schema
{
"type": "object",
"properties": {
"city": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Mexican city or municipality name explicitly requested by the user."
},
"transactionType": {
"type": "string",
"enum": [
"ForSale",
"ForLease"
],
"description": "Listing operation: ForSale to buy or ForLease to rent."
},
"minPrice": {
"type": "number",
"minimum": 0,
"description": "Minimum listing price in the listing currency."
},
"maxPrice": {
"type": "number",
"minimum": 0,
"description": "Maximum listing price in the listing currency."
},
"minBedrooms": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Minimum number of bedrooms."
},
"near": {
"type": "string",
"pattern": "^-?\\d+(?:\\.\\d+)?,-?\\d+(?:\\.\\d+)?$",
"description": "Map center as lat,lng. Use only a location explicitly supplied by the user."
},
"radius": {
"type": "number",
"minimum": 100,
"maximum": 100000,
"description": "Search radius in meters."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 20,
"description": "Maximum number of results to return."
}
},
"additionalProperties": false,
"dependentRequired": {
"near": [
"radius"
],
"radius": [
"near"
]
}
}Ausgabe-Schema
{
"type": "object",
"properties": {
"count": {
"type": "integer",
"minimum": 0
},
"results": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"listingKey",
"transactionType",
"propertyType",
"price",
"currency",
"bedrooms",
"bathrooms",
"city",
"postalCode",
"latitude",
"longitude",
"photoUrl",
"summary",
"apiUrl",
"webUrl"
],
"properties": {
"listingKey": {
"type": "string"
},
"transactionType": {
"type": "string",
"enum": [
"ForSale",
"ForLease"
]
},
"propertyType": {
"type": "string"
},
"price": {
"type": "number"
},
"currency": {
"type": "string"
},
"bedrooms": {
"type": [
"number",
"null"
]
},
"bathrooms": {
"type": [
"number",
"null"
]
},
"city": {
"type": [
"string",
"null"
]
},
"postalCode": {
"type": [
"string",
"null"
]
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"photoUrl": {
"type": [
"string",
"null"
]
},
"summary": {
"type": "string"
},
"apiUrl": {
"type": "string",
"format": "uri"
},
"webUrl": {
"type": "string",
"format": "uri"
}
}
}
},
"nextCursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"count",
"results",
"nextCursor"
],
"additionalProperties": false
}🟢get_property(id)
Use this when the user wants the details of one authorized PropFácil listing and has supplied a listingKey or ID from search_properties.
Eingabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "A listingKey or listing ID returned by search_properties."
}
},
"required": [
"id"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"property": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"listingKey",
"standardStatus",
"transactionType",
"propertyType",
"price",
"currency",
"bedrooms",
"bathrooms",
"livingArea",
"publicRemarks",
"unparsedAddress",
"postalCode",
"city",
"state",
"country",
"latitude",
"longitude",
"media",
"summary",
"apiUrl",
"webUrl",
"confidence",
"contactAvailable",
"sourceAvailable"
],
"properties": {
"listingKey": {
"type": "string"
},
"standardStatus": {
"type": "string"
},
"transactionType": {
"type": "string",
"enum": [
"ForSale",
"ForLease"
]
},
"propertyType": {
"type": "string"
},
"price": {
"type": "number"
},
"currency": {
"type": "string"
},
"bedrooms": {
"type": [
"number",
"null"
]
},
"bathrooms": {
"type": [
"number",
"null"
]
},
"livingArea": {
"type": [
"number",
"null"
]
},
"publicRemarks": {
"type": [
"string",
"null"
]
},
"unparsedAddress": {
"type": [
"string",
"null"
]
},
"postalCode": {
"type": [
"string",
"null"
]
},
"city": {
"type": [
"string",
"null"
]
},
"state": {
"type": [
"string",
"null"
]
},
"country": {
"type": "string"
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"media": {
"type": "array",
"maxItems": 12,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"url",
"width",
"height"
],
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"width": {
"type": [
"number",
"null"
]
},
"height": {
"type": [
"number",
"null"
]
}
}
}
},
"summary": {
"type": "string"
},
"apiUrl": {
"type": "string",
"format": "uri"
},
"webUrl": {
"type": "string",
"format": "uri"
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"contactAvailable": {
"type": "boolean"
},
"sourceAvailable": {
"type": "boolean"
}
}
},
{
"type": "null"
}
]
}
},
"required": [
"property"
],
"additionalProperties": false
}🟢get_property_contact(id)
Use this when the user explicitly asks to contact the advertiser or open the authorized original listing for a property previously returned by PropFácil.
Eingabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "A listingKey or listing ID returned by search_properties or get_property."
}
},
"required": [
"id"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"contact": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"listingKey",
"phone",
"phoneUrl",
"whatsappUrl",
"sourceUrl",
"webUrl"
],
"properties": {
"listingKey": {
"type": "string"
},
"phone": {
"type": [
"string",
"null"
]
},
"phoneUrl": {
"type": [
"string",
"null"
],
"format": "uri"
},
"whatsappUrl": {
"type": [
"string",
"null"
],
"format": "uri"
},
"sourceUrl": {
"type": [
"string",
"null"
],
"format": "uri"
},
"webUrl": {
"type": "string",
"format": "uri"
}
}
},
{
"type": "null"
}
]
}
},
"required": [
"contact"
],
"additionalProperties": false
}🟢render_property_results(propertyIds, title)
Use this when, after search_properties, the user would benefit from interactive property cards, comparison, details, or a map. Pass only listing IDs already returned by a data tool.
Eingabe-Schema
{
"type": "object",
"properties": {
"propertyIds": {
"type": "array",
"minItems": 1,
"maxItems": 12,
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"description": "Up to 12 listingKey values returned by search_properties."
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Short user-facing heading for the rendered property selection."
}
},
"required": [
"propertyIds"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"count": {
"type": "integer",
"minimum": 0
},
"properties": {
"type": "array",
"maxItems": 12,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"listingKey",
"standardStatus",
"transactionType",
"propertyType",
"price",
"currency",
"bedrooms",
"bathrooms",
"livingArea",
"publicRemarks",
"unparsedAddress",
"postalCode",
"city",
"state",
"country",
"latitude",
"longitude",
"media",
"summary",
"apiUrl",
"webUrl",
"confidence",
"contactAvailable",
"sourceAvailable"
],
"properties": {
"listingKey": {
"type": "string"
},
"standardStatus": {
"type": "string"
},
"transactionType": {
"type": "string",
"enum": [
"ForSale",
"ForLease"
]
},
"propertyType": {
"type": "string"
},
"price": {
"type": "number"
},
"currency": {
"type": "string"
},
"bedrooms": {
"type": [
"number",
"null"
]
},
"bathrooms": {
"type": [
"number",
"null"
]
},
"livingArea": {
"type": [
"number",
"null"
]
},
"publicRemarks": {
"type": [
"string",
"null"
]
},
"unparsedAddress": {
"type": [
"string",
"null"
]
},
"postalCode": {
"type": [
"string",
"null"
]
},
"city": {
"type": [
"string",
"null"
]
},
"state": {
"type": [
"string",
"null"
]
},
"country": {
"type": "string"
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"media": {
"type": "array",
"maxItems": 12,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"url",
"width",
"height"
],
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"width": {
"type": [
"number",
"null"
]
},
"height": {
"type": [
"number",
"null"
]
}
}
}
},
"summary": {
"type": "string"
},
"apiUrl": {
"type": "string",
"format": "uri"
},
"webUrl": {
"type": "string",
"format": "uri"
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"contactAvailable": {
"type": "boolean"
},
"sourceAvailable": {
"type": "boolean"
}
}
}
}
},
"required": [
"title",
"count",
"properties"
],
"additionalProperties": false
}🟢restore_property_results
Use this when the PropFácil app needs to restore the latest public property selection for the current MCP session after its widget is recreated.
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"render": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"required": [
"propertyIds",
"title"
],
"properties": {
"propertyIds": {
"type": "array",
"minItems": 1,
"maxItems": 12,
"items": {
"type": "string"
}
},
"title": {
"type": "string"
}
}
}
},
"required": [
"render"
],
"additionalProperties": false
}🟡publish_property(idempotencyKey, transactionType, price, currency, title, ...)
Use this when an authenticated user explicitly asks to publish a property publicly on PropFácil. This creates a public listing and is safe to retry with the same idempotencyKey.
Eingabe-Schema
{
"type": "object",
"properties": {
"idempotencyKey": {
"type": "string",
"minLength": 8,
"maxLength": 100,
"pattern": "^[A-Za-z0-9._:-]+$",
"description": "Stable unique key for this publish request; reuse it when retrying."
},
"transactionType": {
"type": "string",
"enum": [
"ForSale",
"ForLease"
],
"description": "Whether the property is offered for sale or lease."
},
"price": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 500000000,
"description": "Positive advertised price in the selected currency."
},
"currency": {
"type": "string",
"enum": [
"MXN",
"USD"
],
"default": "MXN",
"description": "Currency used for the advertised price."
},
"title": {
"type": "string",
"minLength": 8,
"maxLength": 160,
"description": "Public listing title shown to prospective buyers or tenants."
},
"description": {
"type": "string",
"minLength": 20,
"maxLength": 5000,
"description": "Public, accurate description of the property."
},
"city": {
"type": "string",
"minLength": 2,
"maxLength": 120,
"description": "Mexican city or municipality where the property is located."
},
"state": {
"type": "string",
"maxLength": 120,
"description": "Mexican state where the property is located, when known."
},
"bedrooms": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Number of bedrooms; use zero only when the property has none."
},
"bathrooms": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Number of bathrooms, including fractional half-bath values when applicable."
},
"areaSqm": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 10000000,
"description": "Property area in square meters."
},
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "WGS84 latitude for the property location."
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "WGS84 longitude for the property location."
},
"isCommercial": {
"type": "boolean",
"default": false,
"description": "True for commercial real estate; false for residential real estate."
}
},
"required": [
"idempotencyKey",
"transactionType",
"price",
"title",
"description",
"city"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"published",
"rejected"
]
},
"id": {
"type": [
"string",
"null"
]
},
"url": {
"type": [
"string",
"null"
]
},
"idempotentReplay": {
"type": "boolean"
},
"reasons": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"status",
"id",
"url",
"idempotentReplay",
"reasons"
],
"additionalProperties": false
}🟢my_listings
Use this when an authenticated user asks to review the property listings they published on PropFácil.
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"listings": {
"type": "array",
"maxItems": 100,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"price",
"currency",
"transactionType",
"city",
"url",
"isLive"
],
"properties": {
"id": {
"type": "string"
},
"title": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"null"
]
},
"currency": {
"type": "string"
},
"transactionType": {
"type": "string",
"enum": [
"ForSale",
"ForLease"
]
},
"city": {
"type": [
"string",
"null"
]
},
"url": {
"type": "string",
"format": "uri"
},
"isLive": {
"type": [
"boolean",
"null"
]
}
}
}
}
},
"required": [
"listings"
],
"additionalProperties": false
}🟢list_property_lists
Use this when an authenticated user wants to see their PropFácil favorite lists. This returns only lists owned by the linked user.
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"lists": {
"type": "array",
"maxItems": 100,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name",
"count",
"createdAt"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"count": {
"type": "integer",
"minimum": 0
},
"createdAt": {
"type": "string",
"format": "date-time"
}
}
}
}
},
"required": [
"lists"
],
"additionalProperties": false
}🟢get_property_list(listId)
Use this when an authenticated user wants to inspect one of their PropFácil favorite lists and its saved properties.
Eingabe-Schema
{
"type": "object",
"properties": {
"listId": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Identifier of a favorite list owned by the authenticated user."
}
},
"required": [
"listId"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"list": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name",
"count",
"createdAt"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"count": {
"type": "integer",
"minimum": 0
},
"createdAt": {
"type": "string",
"format": "date-time"
}
}
},
"items": {
"type": "array",
"maxItems": 200,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"property",
"note",
"addedAt"
],
"properties": {
"property": {
"type": "object",
"additionalProperties": false,
"required": [
"listingKey",
"transactionType",
"propertyType",
"price",
"currency",
"bedrooms",
"bathrooms",
"city",
"postalCode",
"latitude",
"longitude",
"photoUrl",
"summary",
"apiUrl",
"webUrl"
],
"properties": {
"listingKey": {
"type": "string"
},
"transactionType": {
"type": "string",
"enum": [
"ForSale",
"ForLease"
]
},
"propertyType": {
"type": "string"
},
"price": {
"type": "number"
},
"currency": {
"type": "string"
},
"bedrooms": {
"type": [
"number",
"null"
]
},
"bathrooms": {
"type": [
"number",
"null"
]
},
"city": {
"type": [
"string",
"null"
]
},
"postalCode": {
"type": [
"string",
"null"
]
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"photoUrl": {
"type": [
"string",
"null"
]
},
"summary": {
"type": "string"
},
"apiUrl": {
"type": "string",
"format": "uri"
},
"webUrl": {
"type": "string",
"format": "uri"
}
}
},
"note": {
"type": "string"
},
"addedAt": {
"type": "string",
"format": "date-time"
}
}
}
}
},
"required": [
"list",
"items"
],
"additionalProperties": false
}🟡save_property_to_list(propertyId, listId, listName, note)
Use this when an authenticated user asks to save a property to a favorite list. If no list is supplied, use the idempotent default list named Favoritos.
Eingabe-Schema
{
"type": "object",
"properties": {
"propertyId": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "A listingKey returned by search_properties."
},
"listId": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Identifier of a favorite list owned by the authenticated user."
},
"listName": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"default": "Favoritos",
"description": "Name for a new favorite list; defaults to Favoritos."
},
"note": {
"type": "string",
"maxLength": 500,
"description": "Optional private note stored with the saved property."
}
},
"required": [
"propertyId"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"saved": {
"type": "boolean"
},
"propertyId": {
"type": "string"
},
"list": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name",
"count",
"createdAt"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"count": {
"type": "integer",
"minimum": 0
},
"createdAt": {
"type": "string",
"format": "date-time"
}
}
}
},
"required": [
"saved",
"propertyId",
"list"
],
"additionalProperties": false
}🟢rename_property_list(listId, name)
Use this when an authenticated user asks to rename one of their PropFácil favorite lists.
Eingabe-Schema
{
"type": "object",
"properties": {
"listId": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Identifier of a favorite list owned by the authenticated user."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "New name for the favorite list."
}
},
"required": [
"listId",
"name"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"list": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name",
"count",
"createdAt"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"count": {
"type": "integer",
"minimum": 0
},
"createdAt": {
"type": "string",
"format": "date-time"
}
}
}
},
"required": [
"list"
],
"additionalProperties": false
}🔴remove_property_from_list(listId, propertyId)
Use this when an authenticated user asks to remove a saved property from one of their PropFácil lists. The list remains available if it becomes empty.
Eingabe-Schema
{
"type": "object",
"properties": {
"listId": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Identifier of a favorite list owned by the authenticated user."
},
"propertyId": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "A listingKey for the saved property to remove."
}
},
"required": [
"listId",
"propertyId"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"removed": {
"type": "boolean"
},
"listId": {
"type": "string"
},
"propertyId": {
"type": "string"
}
},
"required": [
"removed",
"listId",
"propertyId"
],
"additionalProperties": false
}🔴delete_property_list(listId)
Use this when an authenticated user explicitly asks to permanently delete one of their PropFácil favorite lists and its saved entries. Do not use it for removing a single property.
Eingabe-Schema
{
"type": "object",
"properties": {
"listId": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Identifier of a favorite list owned by the authenticated user."
}
},
"required": [
"listId"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"deleted": {
"type": "boolean"
},
"listId": {
"type": "string"
}
},
"required": [
"deleted",
"listId"
],
"additionalProperties": false
}Community
Nachweis