Skip to main content
Glama

PropertyList: Spanish Property MLS

Create listing draft

create_listing

Start a new property listing in YOUR agency's CRM from a description. Use when the agent is describing a property they have taken on and wants it in the system.

Creates a DRAFT. It is never published and never appears on the portal from here: the agent adds photographs and the energy rating in the CRM and publishes it themselves. The response includes a direct link to the draft.

Location is resolved against the real area tree, so a town, suburb or urbanisation name is enough. Requires a linked PropertyList account (or an agency API key).

Commercial premises take a commercial property_type (office, shop, retail, bar, restaurant, warehouse, garage, storage-room, building, commercial-land...), no bedrooms, and their own facts: usable area, the activity licence, a sale's tenure (freehold, or traspaso: the lease and the business taken over, with the rent and years left on the lease), a letting's guarantee, minimum term and VAT. They are checked as the CRM checks them.

Input Schema

NameRequiredDescriptionDefault
floorNoThe floor a flat or a unit (office, shop, garage, storage room) is on; 0 is the ground floor.
priceNoAsking price in euros, or monthly rent for a rental.
tenureNoCommercial sales only: freehold, or traspaso (the lease and the business are taken over).
bedroomsNo
headlineNoShort headline for the listing. Optional.
languageNoLanguage the description is written in. Defaults to the agency language.
locationNoTown, suburb or urbanisation, e.g. "Nueva Andalucia" or "Menara Beach".
plot_sqmNoPlot size in square metres.
bathroomsNo
build_sqmNoBuilt area in square metres.
frontage_mNoCommercial only: street frontage in metres.
usable_sqmNoCommercial only: usable floor area in square metres.
current_useNoCommercial only: what the premises are used as now.
descriptionYesThe property description, in the language the agent wrote it.
search_typeNoWhether it is for sale or for long-term rent. Defaults to for-sale.
buildable_sqmNoLand only (a plot or commercial land): how many square metres may be built on it (edificabilidad).
property_typeNoA home: apartment, villa, penthouse, townhouse, country-house or plot. Commercial premises: office, business, cafe, bar, restaurant, retail (premises, a local comercial), shop, hotel, leisure, industrial, warehouse, commercial-land, garage, storage-room or building.
activity_licenceNoCommercial only: the activity licence (licencia de actividad): none, in_progress or granted.
ceiling_height_mNoCommercial only: ceiling height in metres.
lease_years_leftNoTraspaso only: years left on the lease.
licensed_activityNoCommercial only: the activity the licence is for.
rent_vat_applicableNoCommercial letting only: VAT is added to the rent.
minimum_lease_monthsNoCommercial letting only: the minimum lease term in months.
traspaso_monthly_rentNoTraspaso only: the monthly rent the buyer takes over, in euros.
extra_guarantee_monthsNoCommercial letting only: months of extra guarantee asked.

Output Schema

NameRequiredDescriptionDefault
urlYesThe draft in the CRM, where the agent finishes and publishes it.
statusYes
warningNoAdvice to pass on to the agent before they publish.
locationNoWhere the draft was filed; null when the place name matched no area.
referenceYes
next_stepsYes
property_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / buildable_sqm
      Added value: +{
      +  "description": "Land only (a plot or commercial land): how many square metres may be built on it (edificabilidad).",
      +  "type": "integer"
      +}
  2. Changed14 schema fields changed
    • addedInput schema / properties / activity_licence
      Added value: +{
      +  "description": "Commercial only: the activity licence (licencia de actividad): none, in_progress or granted.",
      +  "enum": [
      +    "none",
      +    "in_progress",
      +    "granted"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / ceiling_height_m
      Added value: +{
      +  "description": "Commercial only: ceiling height in metres.",
      +  "type": "number"
      +}
    • addedInput schema / properties / current_use
      Added value: +{
      +  "description": "Commercial only: what the premises are used as now.",
      +  "type": "string"
      +}
    • addedInput schema / properties / extra_guarantee_months
      Added value: +{
      +  "description": "Commercial letting only: months of extra guarantee asked.",
      +  "type": "integer"
      +}
    • addedInput schema / properties / floor
      Added value: +{
      +  "description": "The floor a flat or a unit (office, shop, garage, storage room) is on; 0 is the ground floor.",
      +  "type": "integer"
      +}
    • addedInput schema / properties / frontage_m
      Added value: +{
      +  "description": "Commercial only: street frontage in metres.",
      +  "type": "number"
      +}
    • addedInput schema / properties / lease_years_left
      Added value: +{
      +  "description": "Traspaso only: years left on the lease.",
      +  "type": "integer"
      +}
    • addedInput schema / properties / licensed_activity
      Added value: +{
      +  "description": "Commercial only: the activity the licence is for.",
      +  "type": "string"
      +}
    • addedInput schema / properties / minimum_lease_months
      Added value: +{
      +  "description": "Commercial letting only: the minimum lease term in months.",
      +  "type": "integer"
      +}
    • changedInput schema / properties / property_type / description
      Previous value: -"apartment, villa, penthouse, townhouse, plot or commercial."New value: +"A home: apartment, villa, penthouse, townhouse, country-house or plot. Commercial premises: office, business, cafe, bar, restaurant, retail (premises, a local comercial), shop, hotel, leisure, industrial, warehouse, commercial-land, garage, storage-room or building."
    • addedInput schema / properties / rent_vat_applicable
      Added value: +{
      +  "description": "Commercial letting only: VAT is added to the rent.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / tenure
      Added value: +{
      +  "description": "Commercial sales only: freehold, or traspaso (the lease and the business are taken over).",
      +  "enum": [
      +    "freehold",
      +    "traspaso"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / traspaso_monthly_rent
      Added value: +{
      +  "description": "Traspaso only: the monthly rent the buyer takes over, in euros.",
      +  "type": "integer"
      +}
    • addedInput schema / properties / usable_sqm
      Added value: +{
      +  "description": "Commercial only: usable floor area in square metres.",
      +  "type": "integer"
      +}
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "location": {
      +      "description": "Where the draft was filed; null when the place name matched no area.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "next_steps": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "property_id": {
      +      "type": "integer"
      +    },
      +    "reference": {
      +      "type": "string"
      +    },
      +    "status": {
      +      "enum": [
      +        "draft_created"
      +      ],
      +      "type": "string"
      +    },
      +    "url": {
      +      "description": "The draft in the CRM, where the agent finishes and publishes it.",
      +      "type": "string"
      +    },
      +    "warning": {
      +      "description": "Advice to pass on to the agent before they publish.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "status",
      +    "property_id",
      +    "reference",
      +    "url",
      +    "next_steps"
      +  ],
      +  "type": "object"
      +}
  4. Added

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, it discloses important behavior: the result is only a draft, it never appears on the portal, the response includes a direct link, and a linked PropertyList account or agency API key is required. It also explains that location is resolved against the real area tree and that commercial facts are validated as the CRM validates them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action and usage condition, then moves to draft behavior and commercial-specific rules. Despite its length, each paragraph addresses useful context for a 25-parameter tool and contains no obvious filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity and the presence of an output schema, the description is complete enough to guide invocation. It covers the create-draft scope, account requirement, location resolution, publication behavior, and commercial-property validation rules.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is already 92%, so the schema does most parameter-level work. The description still adds meaningful guidance by explaining that commercial premises take a commercial property_type, no bedrooms, and their own facts such as usable area, activity licence, tenure, rent, and lease terms.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: starts a new property listing draft in the agency CRM from a description. It clearly distinguishes this from publishing tools by saying the listing is created as a draft and is never published or shown on the portal from here.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear usage condition: use when the agent has taken on a property and wants it in the system. It also clarifies the downstream workflow, where the agent adds photos and the energy rating and publishes separately. It does not name explicit alternatives or when-not-to-use cases, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources