# Allee Spain - Complete MCP & API Documentation

**Version:** 1.1
**Generated:** 2026-10-24 01:14:22

## Table of Contents

1. [System Overview](#system-overview)
2. [MCP Server Information](#mcp-server-information)
3. [Getting Started](#getting-started)
4. [Available Endpoints](#available-endpoints)
5. [OpenAPI Specification](#openapi-specification)
6. [System Prompts & AI Guidance](#system-prompts)
7. [Contact Information](#contact-information)

## MCP Server Information {#mcp-server-information}

- **Name:** Allee Spain
- **Email:** info@alleespain.com
- **Phone:** 952663330
- **Address:** Avda. Juan Luis Peralta, 3. Local 4, 29639 Benalmádena
- **License (AMI):** N/A
- **MCP Server URL:** https://www.alleespain.com/
- **Public Website:** https://www.alleespain.com/

## Getting Started {#getting-started}

### MCP transport

The MCP endpoint is JSON-RPC 2.0 over HTTP. Send `POST` requests to `/mcp` or `/mcp/rpc` with `Content-Type: application/json`.
Supported protocol methods are `initialize`, `ping`, `tools/list`, and `tools/call`; the server advertises MCP protocol version `2024-11-05`.

Client credentials are not validated by this public proxy. Requests forwarded to the internal API are protected with a binding-scoped signed assertion generated by the proxy.

### Discovery and metadata endpoints

- `GET /llms.txt` or `GET /.well-known/llm/llms.txt` - discovery summary
- `GET /llms-full.txt` or `GET /.well-known/llm/llms-full.txt` - this complete documentation
- `GET /llms-data.json` or `GET /.well-known/llm/llms-data.json` - structured server metadata
- `GET /openapi.json` - generated OpenAPI 3.0.1 document for the REST-oriented API schema
- `GET /.well-known/llm/openai.yaml` or `GET /.well-known/llm/openai.json` - OpenAI context document
- `GET /.well-known/server-card.json` or `GET /mcp/server-card` - MCP server card
- `GET /.well-known/ai-plugin.json` and `GET /.well-known/logo.png` - legacy AI plugin metadata

## Available Endpoints {#available-endpoints}

### MCP tools

Use `tools/list` to retrieve the authoritative, localized descriptions and input schemas. The currently registered tools are:

- `search` - search property listings
- `detail` - retrieve a listing or development detail
- `lead` and `leadexclusive` - register property enquiries
- `companyinfo` and `rasorinfo` - retrieve company and RASOR information
- `imicalculator` - calculate Portuguese IMI tax
- `servicesinfo` - retrieve available services
- `loancalculator` and `creditcontact` - mortgage simulation and credit contact
- `chat`, `history`, and `clear` - assistant conversation operations
- `registerevent` - register an AI-chat interaction event

#### tools/call example

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search",
    "arguments": {
      "CountryName": "Portugal",
      "StateName": "Lisboa",
      "BusinessType": "Sale",
      "MinPrice": 100000,
      "MaxPrice": 500000
    }
  }
}
```

### REST-compatible routes

For existing integrations, the proxy also routes `/mcp/search`, `/mcp/mcpSearch`, `/mcp/detail`, `/mcp/mcpDetail`, `/mcp/lead`, `/mcp/mcpLead`, `/mcp/companyinfo`, `/mcp/mcpCompanyInfo`, `/mcp/rasorinfo`, `/mcp/mcpRasorInfo`, `/mcp/imicalculator`, `/mcp/mcpImiCalculator`, `/mcp/servicesinfo`, `/mcp/mcpServicesInfo`, `/mcp/loancalculator`, `/mcp/mcpLoanCalculator`, `/mcp/creditcontact`, `/mcp/mcpCreditContact`, `/mcp/chat`, `/mcp/history`, `/mcp/clear`, `/mcp/registerevent`, and `/mcp/leadexclusive`. These are compatibility routes; new MCP clients should use JSON-RPC.

## OpenAPI Specification {#openapi-specification}

Complete OpenAPI 3.0.1 specification for this MCP server:

```yaml
openapi: 3.0.1
info:
  title: Real Estate MCP API - Allee Spain
  version: 1.1
  description: Contexto MCP Inmobiliario para buscar inmuebles y enviar solicitudes de contacto. - Allee Spain
  termsOfService: https://www.alleespain.com/termos-e-condicoes
  contact:
    name: Allee Spain
    url: https://www.alleespain.com/
    email: info@alleespain.com
  companyInfo:
    name: Allee Spain
    nif: 
    aMI: 
    address: Avda. Juan Luis Peralta, 3. Local 4, 29639 Benalmádena
servers:
- url: https://www.alleespain.com/
  description: Identificador del servidor MCP
components:
  securitySchemes: 
  schemas:
    SearchToMatchRequest:
      type: object
      properties:
        BusinessType:
          type: string
          example: 
          description: Define o devuelve el identificador del tipo de negocio del inmueble
          format: 
          items: 
          enum: 
          ref: 
        CountryName:
          type: string
          example: 
          description: Nombre del país utilizado como criterio de filtrado. Este campo debe permanecer vacío cuando el país no se identifica.
          format: 
          items: 
          enum: 
          ref: 
        StateName:
          type: string
          example: 
          description: Nombre de la región (distrito) del inmueble (obligatorio en la búsqueda si no se especifica municipio).
          format: 
          items: 
          enum: 
          ref: 
        TownName:
          type: string
          example: 
          description: Nombre del municipio del inmueble (obligatorio en la búsqueda si no se especifica distrito).
          format: 
          items: 
          enum: 
          ref: 
        NeighborhoodName:
          type: string
          example: 
          description: Nombre o ID del barrio o parroquia donde se encuentra la propiedad.
          format: 
          items: 
          enum: 
          ref: 
        ZoneName:
          type: string
          example: 
          description: Identificador de la zona geográfica para filtrar en las búsquedas.
          format: 
          items: 
          enum: 
          ref: 
        MasterCategoryIds:
          type: array
          example: 
          description: 'Identificadores (IDs) de uno o más grupos principales de categorías de inmueble (p. ej.: apartamentos, pisos, viviendas, almacenes, terrenos, hoteles). Es obligatorio indicar al menos uno si no se especifica un tipo específico de inmueble.'
          format: 
          items: 
          enum: 
          ref: 
        CategoryIds:
          type: array
          example: 
          description: 'Identificadores (ID) de una o más categorías específicas de inmuebles (p. ej.: apartamento, piso, vivienda, almacén, terreno, hotel).'
          format: 
          items: 
          enum: 
          ref: 
        Condition:
          type: string
          example: 
          description: Estado de conservación.
          format: 
          items: 
          enum: 
          ref: 
        MinPrice:
          type: integer
          example: 
          description: Precio mínimo en euros. Completar cuando el usuario indique un presupuesto mínimo o límite inferior de precio.
          format: int32
          items: 
          enum: 
          ref: 
        MaxPrice:
          type: integer
          example: 
          description: Precio máximo en euros. Completar cuando el usuario indique un presupuesto máximo o límite superior de precio.
          format: int32
          items: 
          enum: 
          ref: 
        MinBedrooms:
          type: integer
          example: 
          description: Número mínimo de habitaciones o dormitorios para filtrar
          format: int32
          items: 
          enum: 
          ref: 
        MaxBedrooms:
          type: integer
          example: 
          description: Número máximo de habitaciones o dormitorios para filtrar
          format: int32
          items: 
          enum: 
          ref: 
        Bathrooms:
          type: integer
          example: 
          description: Número mínimo de baños.
          format: int32
          items: 
          enum: 
          ref: 
        ListingReference:
          type: string
          example: 
          description: Referencia interna del inmueble utilizada para su identificación.
          format: 
          items: 
          enum: 
          ref: 
        DevelopmentName:
          type: string
          example: 
          description: Nombre de la promoción.
          format: 
          items: 
          enum: 
          ref: 
        DevelopmentFractions:
          type: boolean
          example: 
          description: Indica si la búsqueda debe considerar fracciones de un proyecto inmobiliario (por ejemplo, apartamentos o locales) en lugar del proyecto en su conjunto. Cuando está activado, los resultados incluyen solo fracciones asociadas a un proyecto.
          format: 
          items: 
          enum: 
          ref: 
        DevelopmentTags:
          type: array
          example: 
          description: Etiquetas de promociones inmobiliarias utilizadas para filtrar la búsqueda.
          format: 
          items: 
          enum: 
          ref: 
        WithVideos:
          type: boolean
          example: 
          description: Busca solo propiedades con vídeos disponibles. Aplicar cuando el usuario mencione expresiones como 'con vídeo', 'con vídeos', 'tiene vídeo', 'tiene vídeos', 'ver vídeo de la propiedad', 'ver vídeo online', etc.
          format: 
          items: 
          enum: 
          ref: 
        WithBluePrints:
          type: boolean
          example: 
          description: Busca solo propiedades que tengan planos (blueprints) disponibles. Aplicar cuando el usuario mencione 'con plano', 'tiene planos', 'planos de la casa', 'mapa de la propiedad', 'planta baja', 'ver plano', etc.
          format: 
          items: 
          enum: 
          ref: 
        WithVirtualVisits:
          type: boolean
          example: 
          description: Busca solo propiedades con visitas virtuales disponibles. Aplicar cuando el usuario mencione 'con visita virtual', 'tiene visita virtual', 'tour virtual', 'tour 3D', 'visita 3D', 'tour interactivo', 'recorrido virtual', 'experiencia virtual', 'visualización virtual', 'ver visita virtual online'.
          format: 
          items: 
          enum: 
          ref: 
        With360Photos:
          type: boolean
          example: 
          description: Busca solo propiedades con fotos 360º disponibles. Aplicar cuando el usuario mencione 'con fotos 360º', 'tiene fotos 360º', 'con fotos panorámicas', 'tiene fotos panorámicas', 'ver fotos 360º online', etc.
          format: 
          items: 
          enum: 
          ref: 
        FeaturesNames:
          type: array
          example: 
          description: Características del inmueble, incluidas las comodidades, servicios y lugares de interés cercanos, así como tipos de vistas para proporcionar una descripción completa de la propiedad
          format: 
          items: 
          enum: 
          ref: 
        Page:
          type: integer
          example: 
          description: Número de página a devolver en los resultados de búsqueda.
          format: int32
          items: 
          enum: 
          ref: 
      description: Esquema que describe los parámetros de entrada para la búsqueda inmobiliaria.
    SearchResponse:
      type: object
      properties:
        results:
          type: array
          example: 
          description: Lista de resultados de la página actual, basada en el número de registros por página.
          format: 
          items:
            type: 
            example: 
            description: 
            format: 
            items: 
            enum: 
            ref: '#/components/schemas/DetailResponse'
          enum: 
          ref: 
        count:
          type: integer
          example: 
          description: Número total de resultados que corresponden a los criterios de búsqueda.
          format: int32
          items: 
          enum: 
          ref: 
        page:
          type: integer
          example: 
          description: Número de la página actual según los criterios de búsqueda.
          format: int32
          items: 
          enum: 
          ref: 
        totalpages:
          type: integer
          example: 
          description: Número total de páginas correspondientes a los criterios de búsqueda.
          format: int32
          items: 
          enum: 
          ref: 
        statetownnameequals:
          type: boolean
          example: 
          description: Indica si el nombre del distrito es igual al nombre del municipio.
          format: 
          items: 
          enum: 
          ref: 
        developmentname:
          type: string
          example: 
          description: Nombre del proyecto; este campo solo se completará si los resultados están relacionados con un proyecto específico con este nombre.
          format: 
          items: 
          enum: 
          ref: 
      description: Esquema que describe los parámetros de salida de la búsqueda inmobiliaria.
    DetailRequest:
      type: object
      properties:
        ListingId:
          type: integer
          example: 
          description: ID del inmueble para contacto.
          format: int32
          items: 
          enum: 
          ref: 
        ListingReference:
          type: string
          example: 
          description: Referencia interna del inmueble utilizada para su identificación.
          format: 
          items: 
          enum: 
          ref: 
        DevelopmentFractions:
          type: boolean
          example: 
          description: Indica si la búsqueda debe considerar fracciones de un proyecto inmobiliario (por ejemplo, apartamentos o locales) en lugar del proyecto en su conjunto. Cuando está activado, los resultados incluyen solo fracciones asociadas a un proyecto.
          format: 
          items: 
          enum: 
          ref: 
      description: Esquema que describe los parámetros de entrada para el detalle del inmueble.
    DetailResponse:
      type: object
      properties:
        ListingId:
          type: integer
          example: 
          description: ID único del anuncio del inmueble.
          format: int32
          items: 
          enum: 
          ref: 
        PropertyType:
          type: string
          example: 
          description: Tipo de inmueble.
          format: 
          items: 
          enum: 
          ref: 
        Condition:
          type: string
          example: 
          description: Estado de conservación del inmueble.
          format: 
          items: 
          enum: 
          ref: 
        ListingReference:
          type: string
          example: 
          description: Referencia del inmueble mostrada en los resultados de búsqueda.
          format: 
          items: 
          enum: 
          ref: 
        FirstPhoto:
          type: string
          example: 
          description: URL de la miniatura de la primera foto del inmueble.
          format: 
          items: 
          enum: 
          ref: 
        Description:
          type: string
          example: 
          description: Descripción detallada de la propiedad.
          format: 
          items: 
          enum: 
          ref: 
        Title:
          type: string
          example: 
          description: Título del anuncio.
          format: 
          items: 
          enum: 
          ref: 
        Price:
          type: string
          example: 
          description: Precio en euros.
          format: 
          items: 
          enum: 
          ref: 
        IMIValue:
          type: string
          example: 
          description: Importe del IMI a pagar por el inmueble, calculado según el VPT y las normas fiscales aplicables.
          format: 
          items: 
          enum: 
          ref: 
        Business:
          type: string
          example: 
          description: Tipo de negocio del inmueble.
          format: 
          items: 
          enum: 
          ref: 
        Location:
          type: string
          example: 
          description: Nombre de la ubicación.
          format: 
          items: 
          enum: 
          ref: 
        Bedrooms:
          type: integer
          example: 
          description: Número de dormitorios de la propiedad.
          format: int32
          items: 
          enum: 
          ref: 
        Bathrooms:
          type: integer
          example: 
          description: Número de baños de la propiedad.
          format: int32
          items: 
          enum: 
          ref: 
        Url:
          type: string
          example: 
          description: URL público del anuncio.
          format: 
          items: 
          enum: 
          ref: 
        HasVideos:
          type: boolean
          example: 
          description: Indica si la propiedad tiene vídeos disponibles.
          format: 
          items: 
          enum: 
          ref: 
        HasBluePrints:
          type: boolean
          example: 
          description: Indica si la propiedad tiene planos o blueprints disponibles.
          format: 
          items: 
          enum: 
          ref: 
        Has360Photos:
          type: boolean
          example: 
          description: Indica si la propiedad tiene fotos 360° disponibles.
          format: 
          items: 
          enum: 
          ref: 
        HasVirtualVisits:
          type: boolean
          example: 
          description: Indica si la propiedad tiene visitas virtuales o recorridos virtuales disponibles.
          format: 
          items: 
          enum: 
          ref: 
        Features:
          type: 
          example: 
          description: Estas claves representan la descripción de las características específicas de una propiedad, incluyendo atributos físicos y ubicaciones relevantes como piscina, vistas al mar, cercanía a hospitales, escuelas y otras instalaciones importantes. Esta información ayuda a detallar y calificar la propiedad para facilitar la búsqueda y la presentación de resultados según las preferencias del usuario.
          format: 
          items: 
          enum: 
          ref: '#/components/schemas/Dictionary`2'
      description: Esquema que describe los parámetros de salida del detalle del inmueble.
    LeadRequest:
      type: object
      properties:
        ListingId:
          type: integer
          example: 
          description: ID del inmueble para contacto.
          format: int32
          items: 
          enum: 
          ref: 
        ListingReference:
          type: string
          example: 
          description: Referencia interna del inmueble utilizada para su identificación.
          format: 
          items: 
          enum: 
          ref: 
        Name:
          type: string
          example: 
          description: Nombre del usuario.
          format: 
          items: 
          enum: 
          ref: 
        Email:
          type: string
          example: 
          description: Dirección de correo electrónico del usuario (obligatoria si no proporciona teléfono).
          format: 
          items: 
          enum: 
          ref: 
        Phone:
          type: string
          example: 
          description: Número de teléfono del usuario (opcional si proporciona dirección de correo electrónico).
          format: 
          items: 
          enum: 
          ref: 
        PhoneCountryCode:
          type: string
          example: 
          description: Código del país del teléfono incluyendo el signo más, por ejemplo, "+34" para España, "+351" para Portugal.
          format: 
          items: 
          enum: 
          ref: 
        Message:
          type: string
          example: 
          description: Mensaje personalizado del usuario.
          format: 
          items: 
          enum: 
          ref: 
      description: Esquema que describe los parámetros de entrada para el envío de leads inmobiliarios.
    LeadResponse:
      type: object
      properties:
        Status:
          type: string
          example: 
          description: 'Estado del envío del formulario de contacto (ej.: éxito, error).'
          format: 
          items: 
          enum: 
          ref: 
        Message:
          type: string
          example: 
          description: Mensaje que describe el resultado del envío del formulario de contacto.
          format: 
          items: 
          enum: 
          ref: 
        ConfirmedLead:
          type: boolean
          example: 
          description: ''
          format: 
          items: 
          enum: 
          ref: 
      description: Esquema que describe los parámetros de salida del envío de leads inmobiliarios.
    CompanyInfoRequest:
      type: object
      properties:
        CompanyId:
          type: integer
          example: 
          description: Identificador de la empresa/agencia a consultar (opcional, por defecto se usa el interno de la empresa).
          format: int32
          items: 
          enum: 
          ref: 
      description: Esquema de entrada para solicitud de información de la empresa
    CompanyInfoWithAgenciesResponse:
      type: object
      properties:
        Headquarters:
          type: 
          example: 
          description: Información de los datos de contacto de la empresa correspondientes a la sede.
          format: 
          items: 
          enum: 
          ref: '#/components/schemas/CompanyInfoResponse'
        Agencies:
          type: array
          example: 
          description: Información de los datos de contacto de las agencias de la empresa.
          format: 
          items:
            type: 
            example: 
            description: 
            format: 
            items: 
            enum: 
            ref: '#/components/schemas/CompanyInfoResponse'
          enum: 
          ref: 
      description: Esquema de salida con datos de información de la empresa
    CompanyInfoResponse:
      type: object
      properties:
        Name:
          type: string
          example: 
          description: Nombre de la empresa
          format: 
          items: 
          enum: 
          ref: 
        Phone:
          type: string
          example: 
          description: Teléfono de la empresa
          format: 
          items: 
          enum: 
          ref: 
        Mobile:
          type: string
          example: 
          description: Teléfono móvil de la empresa
          format: 
          items: 
          enum: 
          ref: 
        Email:
          type: string
          example: 
          description: Correo electrónico de contacto de la empresa
          format: 
          items: 
          enum: 
          ref: 
        Address:
          type: string
          example: 
          description: Dirección de la empresa (sin código postal)
          format: 
          items: 
          enum: 
          ref: 
        District:
          type: string
          example: 
          description: Provincia donde se encuentra la empresa
          format: 
          items: 
          enum: 
          ref: 
        Municipality:
          type: string
          example: 
          description: Municipio donde se encuentra la empresa
          format: 
          items: 
          enum: 
          ref: 
        Parish:
          type: string
          example: 
          description: Población/Barrio donde se encuentra la empresa
          format: 
          items: 
          enum: 
          ref: 
        ZipCode:
          type: string
          example: 
          description: Código postal de la dirección de la empresa
          format: 
          items: 
          enum: 
          ref: 
        BusinessHours:
          type: string
          example: 
          description: Horario de atención de la empresa
          format: 
          items: 
          enum: 
          ref: 
        GoogleMapsUrl:
          type: string
          example: 
          description: Enlace directo a la ubicación de la empresa en Google Maps
          format: 
          items: 
          enum: 
          ref: 
      description: Esquema de salida con datos de información de la empresa
    RasorInfoRequest:
      type: object
      properties:
        RasorName:
          type: string
          example: 
          description: Nombre del consultor inmobiliario sobre el cual se desea obtener información detallada.
          format: 
          items: 
          enum: 
          ref: 
        StateName:
          type: string
          example: 
          description: Permite buscar consultores por distrito.
          format: 
          items: 
          enum: 
          ref: 
        TownName:
          type: string
          example: 
          description: Permite buscar consultores por municipio.
          format: 
          items: 
          enum: 
          ref: 
      description: Esquema de entrada para solicitar información detallada del consultor inmobiliario
    RasorInfoResponse:
      type: object
      properties:
        Name:
          type: string
          example: 
          description: Nombre completo del consultor inmobiliario.
          format: 
          items: 
          enum: 
          ref: 
        Phone:
          type: string
          example: 
          description: Teléfono fijo del consultor inmobiliario.
          format: 
          items: 
          enum: 
          ref: 
        Mobile:
          type: string
          example: 
          description: Teléfono móvil del consultor inmobiliario.
          format: 
          items: 
          enum: 
          ref: 
        Observations:
          type: string
          example: 
          description: Observaciones adicionales relacionadas con el consultor.
          format: 
          items: 
          enum: 
          ref: 
        Email:
          type: string
          example: 
          description: Correo electrónico del consultor inmobiliario.
          format: 
          items: 
          enum: 
          ref: 
        Address:
          type: string
          example: 
          description: Dirección completa del consultor inmobiliario o oficina.
          format: 
          items: 
          enum: 
          ref: 
        City:
          type: string
          example: 
          description: Municipio donde el consultor ejerce su actividad.
          format: 
          items: 
          enum: 
          ref: 
        Parish:
          type: string
          example: 
          description: Parroquia donde el consultor ejerce su actividad.
          format: 
          items: 
          enum: 
          ref: 
        SpokenLanguages:
          type: array
          example: 
          description: Lista de idiomas que habla el consultor.
          format: 
          items: 
          enum: 
          ref: 
        SocialProfiles:
          type: array
          example: 
          description: Listado de enlaces a perfiles o páginas sociales del consultor.
          format: 
          items:
            type: 
            example: 
            description: 
            format: 
            items: 
            enum: 
            ref: '#/components/schemas/SocialProfile'
          enum: 
          ref: 
        Avatar:
          type: string
          example: 
          description: Imagen del avatar asociado al consultor.
          format: 
          items: 
          enum: 
          ref: 
        ListingUrl:
          type: string
          example: 
          description: URL de la página que muestra todas las propiedades asignadas o relacionadas con el consultor, permitiendo el acceso directo al listado completo de las respectivas propiedades.
          format: 
          items: 
          enum: 
          ref: 
        DetailUrl:
          type: string
          example: 
          description: Página que muestra la información completa del agente, incluidos datos de contacto, perfil profesional y propiedades asociadas.
          format: 
          items: 
          enum: 
          ref: 
      description: Esquema de salida con información detallada del consultor inmobiliario
    IMIRequest:
      type: object
      properties:
        TownName:
          type: string
          example: 
          description: 'Nombre del municipio donde se encuentra el inmueble. Este campo es obligatorio para la identificación geográfica y la determinación de la tasa de IMI. Ejemplo: "Lisboa", "Oporto", "Sintra", "Albufeira".'
          format: 
          items: 
          enum: 
          ref: 
        TaxableValue:
          type: number
          example: 
          description: 'Valor catastral imponible del inmueble (VPT), según consta en la Autoridad Tributaria portuguesa. Es el valor fiscal oficial utilizado como base para calcular el IMI. Debe ser un valor decimal positivo expresado en euros. Ejemplo: "185000.00".'
          format: decimal
          items: 
          enum: 
          ref: 
        DependentsNumber:
          type: integer
          example: 
          description: 'Número de personas dependientes en el hogar del contribuyente para el año fiscal de referencia. Incluye hijos, padres mayores u otros dependientes legalmente reconocidos que puedan dar derecho a reducciones o exenciones del IMI. Valores válidos: entero ≥ 0. Ejemplo: "2".'
          format: int32
          items: 
          enum: 
          ref: 
        IsUrban:
          type: boolean
          example: 
          description: 'Indica si la propiedad está clasificada como urbana o rústica. Las propiedades urbanas están sujetas al IMI, mientras que las propiedades rústicas pueden estar sujetas a reglas fiscales distintas. Ejemplo: true/false.'
          format: 
          items: 
          enum: 
          ref: 
      description: Esquema de datos de entrada utilizado para solicitar el cálculo del Impuesto Municipal sobre Inmuebles (IMI) de una propiedad.
    IMIResponse:
      type: object
      properties:
        TownName:
          type: string
          example: 
          description: Nombre del municipio considerado para el cálculo del IMI
          format: 
          items: 
          enum: 
          ref: 
        TaxableValue:
          type: string
          example: 
          description: Valor Patrimonial Tributario (VPT) considerado para el cálculo del IMI, expresado en euros
          format: 
          items: 
          enum: 
          ref: 
        DependentsNumber:
          type: string
          example: 
          description: Número de dependientes contabilizados para efectos de beneficios aplicados en el cálculo del IMI
          format: 
          items: 
          enum: 
          ref: 
        IsUrban:
          type: string
          example: 
          description: Indicación si el inmueble es urbano o rústico, considerado para el cálculo del IMI
          format: 
          items: 
          enum: 
          ref: 
        IMIValue:
          type: string
          example: 
          description: Valor final del IBI (Impuesto sobre Bienes Inmuebles) calculado según los datos proporcionados.
          format: 
          items: 
          enum: 
          ref: 
        IMITaxValue:
          type: string
          example: 
          description: Tasa utilizada para el cálculo del IMI.
          format: 
          items: 
          enum: 
          ref: 
        DependentDiscount:
          type: string
          example: 
          description: Valor del descuento basado en el número de dependientes.
          format: 
          items: 
          enum: 
          ref: 
        DataYear:
          type: integer
          example: 
          description: Año de referencia de las tasas utilizadas para el cálculo del IMI.
          format: int32
          items: 
          enum: 
          ref: 
      description: Esquema de datos de salida que proporciona el resultado del cálculo del IMI, incluyendo información detallada sobre el importe a pagar.
    ServicesInfoRequest:
      type: object
      properties:
        CompanyId:
          type: integer
          example: 
          description: Identificador de la empresa/agencia a consultar (opcional, por defecto se usa el interno de la empresa).
          format: int32
          items: 
          enum: 
          ref: 
      description: Resumen de los servicios disponibles, incluyendo su finalidad y aplicación para los clientes.
    ServicesInfoResponse:
      type: object
      properties:
        companyId:
          type: integer
          example: 
          description: Identificador único de la empresa asociada al catálogo de servicios.
          format: int32
          items: 
          enum: 
          ref: 
        companyName:
          type: string
          example: 
          description: Nombre de la empresa que proporciona el catálogo de servicios.
          format: 
          items: 
          enum: 
          ref: 
        categories:
          type: array
          example: 
          description: Lista de categorías de servicios disponibles, organizadas por perfil de cliente.
          format: 
          items:
            type: 
            example: 
            description: 
            format: 
            items: 
            enum: 
            ref: '#/components/schemas/ServiceCategory'
          enum: 
          ref: 
      description: Resumen de los servicios proporcionados al cliente, incluidos detalles, alcance y aplicación.
security: 
paths:
  /mcp/search:
    get:
      summary: Buscar anuncios inmobiliarios usando filtros como ubicación, precio, tipo y condición.
      description: Buscar anuncios inmobiliarios usando filtros como ubicación, precio, tipo y condición.
      security: 
      operationId: mcpSearch
      parameters:
      - name: BusinessType
        in: query
        required: false
        schema:
          type: string
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Define o devuelve el identificador del tipo de negocio del inmueble (Alquiler, Venta). Si no se indica en la búsqueda, se usará Venta por defecto
      - name: CountryName
        in: query
        required: true
        schema:
          type: string
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Nombre del país utilizado como criterio de filtrado. Este campo debe permanecer vacío cuando el país no se identifica., (es obligatorio)
      - name: StateName
        in: query
        required: true
        schema:
          type: string
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Nombre de la región (distrito) del inmueble (obligatorio en la búsqueda si no se especifica municipio)., (es obligatorio)
      - name: TownName
        in: query
        required: false
        schema:
          type: string
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Nombre del municipio del inmueble (obligatorio en la búsqueda si no se especifica distrito).
      - name: NeighborhoodName
        in: query
        required: false
        schema:
          type: string
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Nombre o ID del barrio o parroquia donde se encuentra la propiedad.
      - name: ZoneName
        in: query
        required: false
        schema:
          type: string
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Identificador de la zona geográfica para filtrar en las búsquedas.
      - name: MasterCategoryIds
        in: query
        required: false
        schema:
          type: array
          example: 
          description: 
          format: 
          items:
            type: string
            example: 
            description: 
            format: 
            items: 
            enum: 
            ref: 
          enum: 
          ref: 
        description: 'Identificadores (IDs) de uno o más grupos principales de categorías de inmueble (p. ej.: apartamentos, pisos, viviendas, almacenes, terrenos, hoteles). Es obligatorio indicar al menos uno si no se especifica un tipo específico de inmueble.'
      - name: CategoryIds
        in: query
        required: false
        schema:
          type: array
          example: 
          description: 
          format: 
          items:
            type: string
            example: 
            description: 
            format: 
            items: 
            enum: 
            ref: 
          enum: 
          ref: 
        description: 'Identificadores (ID) de una o más categorías específicas de inmuebles (p. ej.: apartamento, piso, vivienda, almacén, terreno, hotel).'
      - name: Condition
        in: query
        required: false
        schema:
          type: string
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Estado de conservación. (A demoler o reconstruir, A estrenar, A reformar, Con incentivos a la rehabilitación, En buen estado, En construcción, En proyecto, No aplicable, Para la venta, Reformado, Rehabilitado, Reservado)
      - name: MinPrice
        in: query
        required: false
        schema:
          type: integer
          example: 
          description: 
          format: int32
          items: 
          enum: 
          ref: 
        description: Precio mínimo en euros. Completar cuando el usuario indique un presupuesto mínimo o límite inferior de precio.
      - name: MaxPrice
        in: query
        required: false
        schema:
          type: integer
          example: 
          description: 
          format: int32
          items: 
          enum: 
          ref: 
        description: Precio máximo en euros. Completar cuando el usuario indique un presupuesto máximo o límite superior de precio.
      - name: MinBedrooms
        in: query
        required: false
        schema:
          type: integer
          example: 
          description: 
          format: int32
          items: 
          enum: 
          ref: 
        description: Número mínimo de habitaciones o dormitorios para filtrar
      - name: MaxBedrooms
        in: query
        required: false
        schema:
          type: integer
          example: 
          description: 
          format: int32
          items: 
          enum: 
          ref: 
        description: Número máximo de habitaciones o dormitorios para filtrar
      - name: Bathrooms
        in: query
        required: false
        schema:
          type: integer
          example: 
          description: 
          format: int32
          items: 
          enum: 
          ref: 
        description: Número mínimo de baños.
      - name: ListingReference
        in: query
        required: false
        schema:
          type: string
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Referencia interna del inmueble utilizada para su identificación.
      - name: DevelopmentName
        in: query
        required: false
        schema:
          type: string
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Nombre de la promoción.
      - name: DevelopmentFractions
        in: query
        required: false
        schema:
          type: boolean
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Indica si la búsqueda debe considerar fracciones de un proyecto inmobiliario (por ejemplo, apartamentos o locales) en lugar del proyecto en su conjunto. Cuando está activado, los resultados incluyen solo fracciones asociadas a un proyecto.
      - name: DevelopmentTags
        in: query
        required: false
        schema:
          type: array
          example: 
          description: 
          format: 
          items:
            type: string
            example: 
            description: 
            format: 
            items: 
            enum: 
            ref: 
          enum: 
          ref: 
        description: Etiquetas de promociones inmobiliarias utilizadas para filtrar la búsqueda. ()
      - name: WithVideos
        in: query
        required: false
        schema:
          type: boolean
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Busca solo propiedades con vídeos disponibles. Aplicar cuando el usuario mencione expresiones como 'con vídeo', 'con vídeos', 'tiene vídeo', 'tiene vídeos', 'ver vídeo de la propiedad', 'ver vídeo online', etc.
      - name: WithBluePrints
        in: query
        required: false
        schema:
          type: boolean
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Busca solo propiedades que tengan planos (blueprints) disponibles. Aplicar cuando el usuario mencione 'con plano', 'tiene planos', 'planos de la casa', 'mapa de la propiedad', 'planta baja', 'ver plano', etc.
      - name: WithVirtualVisits
        in: query
        required: false
        schema:
          type: boolean
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Busca solo propiedades con visitas virtuales disponibles. Aplicar cuando el usuario mencione 'con visita virtual', 'tiene visita virtual', 'tour virtual', 'tour 3D', 'visita 3D', 'tour interactivo', 'recorrido virtual', 'experiencia virtual', 'visualización virtual', 'ver visita virtual online'.
      - name: With360Photos
        in: query
        required: false
        schema:
          type: boolean
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Busca solo propiedades con fotos 360º disponibles. Aplicar cuando el usuario mencione 'con fotos 360º', 'tiene fotos 360º', 'con fotos panorámicas', 'tiene fotos panorámicas', 'ver fotos 360º online', etc.
      - name: FeaturesNames
        in: query
        required: false
        schema:
          type: array
          example: 
          description: 
          format: 
          items:
            type: string
            example: 
            description: 
            format: 
            items: 
            enum: 
            ref: 
          enum: 
          ref: 
        description: Características del inmueble, incluidas las comodidades, servicios y lugares de interés cercanos, así como tipos de vistas para proporcionar una descripción completa de la propiedad (Aire acondicionado, Aislamiento agudo, Aislamiento termico, Alarma, Amueblado, Aparcamiento, Aparcamiento público, Ascensor, Baño de servicio, Baño privado, Benzinstation, Bodega de vino, Bomba eléctrica, Calefacción, Campo, Campo de golf, Capota de cocina, Carretera, CCTV, Centro ciudad, Centro comercial, Cerca del mar, Ciudad, Closet, Cocina, Comedor, Complejo sellado, Cristal doble, Dryer, Edificio, Entrada de vídeo, Escuela, Espacios verdes, Estación de autobuses, Estufa eléctrica, Farmacia, Garaje, Gimnasio, Golf, Hipermercado, Hoja de inducción, Horno, Internet Pre-Instalación, Jardín, Lavadero, Lavadora, Lavavajillas, Mar, Microondas, Montaña, Oficina, Orientación solar, Paneles solares, Piscina, Piscina compartida, Piscinas, Playa, Playroom, Policía, Porche, Puerta blindada, Puerta de alta seguridad, Refrigerador, Sala de estar, Satélite, Seguridad 24 horas, Suite, Tabla de planchar, Tejado verde, Terraza, Transportes Públicos, Videovigilancia)
      - name: Page
        in: query
        required: false
        schema:
          type: integer
          example: 
          description: 
          format: int32
          items: 
          enum: 
          ref: 
        description: Número de página a devolver en los resultados de búsqueda.
      required: 
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                ref: '#/components/schemas/SearchResponse'
      requestBody: 
      servers: 
    post: 
  /mcp/detail:
    get:
      summary: Obtiene información detallada sobre una propiedad inmobiliaria.
      description: Obtiene información detallada sobre una propiedad inmobiliaria.
      security: 
      operationId: mcpDetail
      parameters:
      - name: ListingId
        in: query
        required: false
        schema:
          type: integer
          example: 
          description: 
          format: int32
          items: 
          enum: 
          ref: 
        description: ID del inmueble para contacto.
      - name: ListingReference
        in: query
        required: false
        schema:
          type: string
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Referencia interna del inmueble utilizada para su identificación.
      - name: DevelopmentFractions
        in: query
        required: false
        schema:
          type: boolean
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Indica si la búsqueda debe considerar fracciones de un proyecto inmobiliario (por ejemplo, apartamentos o locales) en lugar del proyecto en su conjunto. Cuando está activado, los resultados incluyen solo fracciones asociadas a un proyecto.
      required: 
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                ref: '#/components/schemas/DetailResponse'
      requestBody: 
      servers: 
    post: 
  /mcp/lead:
    get:
      summary: Enviar un formulario de contacto para un anuncio específico.
      description: Enviar un formulario de contacto para un anuncio específico.
      security: 
      operationId: mcpLead
      parameters:
      - name: ListingId
        in: query
        required: false
        schema:
          type: integer
          example: 
          description: 
          format: int32
          items: 
          enum: 
          ref: 
        description: ID del inmueble para contacto.
      - name: ListingReference
        in: query
        required: false
        schema:
          type: string
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Referencia interna del inmueble utilizada para su identificación.
      - name: Name
        in: query
        required: true
        schema:
          type: string
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Nombre del usuario., (es obligatorio)
      - name: Email
        in: query
        required: true
        schema:
          type: string
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Dirección de correo electrónico del usuario (obligatoria si no proporciona teléfono)., (es obligatorio)
      - name: Phone
        in: query
        required: false
        schema:
          type: string
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Número de teléfono del usuario (opcional si proporciona dirección de correo electrónico).
      - name: PhoneCountryCode
        in: query
        required: false
        schema:
          type: string
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Código del país del teléfono incluyendo el signo más, por ejemplo, "+34" para España, "+351" para Portugal.
      - name: Message
        in: query
        required: false
        schema:
          type: string
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Mensaje personalizado del usuario.
      required: 
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                ref: '#/components/schemas/LeadResponse'
      requestBody: 
      servers: 
    post: 
  /mcp/companyinfo:
    get:
      summary: Permite obtener los datos de contacto de la empresa, incluyendo el nombre de la agencia, dirección, teléfono y correo electrónico. Ideal para mostrar información institucional o permitir que el usuario contacte con la agencia.
      description: Permite obtener los datos de contacto de la empresa, incluyendo el nombre de la agencia, dirección, teléfono y correo electrónico. Ideal para mostrar información institucional o permitir que el usuario contacte con la agencia.
      security: 
      operationId: mcpCompanyInfo
      parameters:
      - name: CompanyId
        in: query
        required: false
        schema:
          type: integer
          example: 
          description: 
          format: int32
          items: 
          enum: 
          ref: 
        description: Identificador de la empresa/agencia a consultar (opcional, por defecto se usa el interno de la empresa).
      required: 
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                ref: '#/components/schemas/CompanyInfoWithAgenciesResponse'
      requestBody: 
      servers: 
    post: 
  /mcp/rasorinfo:
    get:
      summary: Permite obtener los datos de contacto del consultor inmobiliario, incluyendo nombre, teléfono, correo electrónico y dirección. Ideal para mostrar información de contacto del consultor o permitir que el usuario se comunique con él.
      description: Permite obtener los datos de contacto del consultor inmobiliario, incluyendo nombre, teléfono, correo electrónico y dirección. Ideal para mostrar información de contacto del consultor o permitir que el usuario se comunique con él.
      security: 
      operationId: mcpRasorInfo
      parameters:
      - name: RasorName
        in: query
        required: false
        schema:
          type: string
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Nombre del consultor inmobiliario sobre el cual se desea obtener información detallada.
      - name: StateName
        in: query
        required: false
        schema:
          type: string
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Permite buscar consultores por distrito.
      - name: TownName
        in: query
        required: false
        schema:
          type: string
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: Permite buscar consultores por municipio.
      required: 
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                ref: '#/components/schemas/RasorInfoResponse'
      requestBody: 
      servers: 
    post: 
  /mcp/imicalculator:
    get:
      summary: Permite determinar el valor del Impuesto Municipal sobre Inmuebles (IMI) basado en los datos proporcionados por el usuario. Este servicio valida el municipio indicado, identifica el coeficiente aplicable, procesa el Valor Patrimonial Tributario (VPT), el número de dependientes y la naturaleza del inmueble (urbano o rústico), devolviendo el importe final del IMI a pagar de acuerdo con las normas fiscales vigentes en Portugal.
      description: Permite determinar el valor del Impuesto Municipal sobre Inmuebles (IMI) basado en los datos proporcionados por el usuario. Este servicio valida el municipio indicado, identifica el coeficiente aplicable, procesa el Valor Patrimonial Tributario (VPT), el número de dependientes y la naturaleza del inmueble (urbano o rústico), devolviendo el importe final del IMI a pagar de acuerdo con las normas fiscales vigentes en Portugal.
      security: 
      operationId: mcpImiCalculator
      parameters:
      - name: TownName
        in: query
        required: false
        schema:
          type: string
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: 'Nombre del municipio donde se encuentra el inmueble. Este campo es obligatorio para la identificación geográfica y la determinación de la tasa de IMI. Ejemplo: "Lisboa", "Oporto", "Sintra", "Albufeira".'
      - name: TaxableValue
        in: query
        required: false
        schema:
          type: number
          example: 
          description: 
          format: decimal
          items: 
          enum: 
          ref: 
        description: 'Valor catastral imponible del inmueble (VPT), según consta en la Autoridad Tributaria portuguesa. Es el valor fiscal oficial utilizado como base para calcular el IMI. Debe ser un valor decimal positivo expresado en euros. Ejemplo: "185000.00".'
      - name: DependentsNumber
        in: query
        required: false
        schema:
          type: integer
          example: 
          description: 
          format: int32
          items: 
          enum: 
          ref: 
        description: 'Número de personas dependientes en el hogar del contribuyente para el año fiscal de referencia. Incluye hijos, padres mayores u otros dependientes legalmente reconocidos que puedan dar derecho a reducciones o exenciones del IMI. Valores válidos: entero ≥ 0. Ejemplo: "2".'
      - name: IsUrban
        in: query
        required: false
        schema:
          type: boolean
          example: 
          description: 
          format: 
          items: 
          enum: 
          ref: 
        description: 'Indica si la propiedad está clasificada como urbana o rústica. Las propiedades urbanas están sujetas al IMI, mientras que las propiedades rústicas pueden estar sujetas a reglas fiscales distintas. Ejemplo: true/false.'
      required: 
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                ref: '#/components/schemas/IMIResponse'
      requestBody: 
      servers: 
    post: 
  /mcp/servicesinfo:
    get:
      summary: Descripción del endpoint que proporciona información completa sobre los servicios disponibles para un perfil de cliente.
      description: Descripción del endpoint que proporciona información completa sobre los servicios disponibles para un perfil de cliente.
      security: 
      operationId: mcpServicesInfo
      parameters:
      - name: CompanyId
        in: query
        required: false
        schema:
          type: integer
          example: 
          description: 
          format: int32
          items: 
          enum: 
          ref: 
        description: Identificador de la empresa/agencia a consultar (opcional, por defecto se usa el interno de la empresa).
      required: 
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                ref: '#/components/schemas/ServicesInfoResponse'
      requestBody: 
      servers: 
    post: 

```

## System Prompts & AI Guidance {#system-prompts}

The following system prompts guide AI behavior for different operation modes:

## Contact Information {#contact-information}

**Agency Name:** Allee Spain
**Email:** info@alleespain.com
**Phone:** 952663330
**Address:** Avda. Juan Luis Peralta, 3. Local 4, 29639 Benalmádena

### Additional Contact Numbers

- 952663330

### Support & Legal

- **Website:** https://www.alleespain.com/
- **Privacy Policy:** https://www.alleespain.com/politica-de-privacidad
- **Terms of Service:** https://www.alleespain.com/terminos-y-condiciones
- **Cookie Policy:** https://www.alleespain.com/politica-de-cookies
- **Dispute Resolution:** https://www.alleespain.com/resolucion-de-conflicto-alternativa

---

*This documentation was automatically generated for Allee Spain MCP Server.*
*For updates, visit: https://www.alleespain.com/llms-full.txt*

