Cambio Uruguay

Uruguay: exchange rates, rentals, used cars, product prices and search across cambio-uruguay.com

사용해야 할까요

품질 및 안전성

C
설명 품질
75%
스키마 완전성
83%
이름 품질
91%
오염 위험
0%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (22)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'search_rentals' description contains placeholder textsearch_rentals에서
  • MEDIUMTool 'get_rental' description contains placeholder textget_rental에서
  • MEDIUMTool 'search_used_cars' description contains placeholder textsearch_used_cars에서
  • MEDIUMTool 'search_site' description contains placeholder textsearch_site에서
  • MEDIUMTool description contains URL to non-standard domainget_rental에서
  • MEDIUMTool description contains URL to non-standard domainget_car에서
  • LOWTool 'best_house' description lacks action verbbest_house에서
  • LOWTool 'get_rental' description lacks action verbget_rental에서
  • LOWTool 'rental_market_stats' description lacks action verbrental_market_stats에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~10,118토큰 (도구 정의)
~2.4 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 7.90%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "cambio-uruguay": {
      "url": "https://mcp.cambio-uruguay.com/mcp"
    }
  }
}

원격 엔드포인트

https://mcp.cambio-uruguay.com/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (29)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢get_rates(currency)

Current buy/sell rates for a currency across Uruguayan exchange houses (casas de cambio): market average, best buy/sell house, lowest spread, and the full per-house list. Excludes BCU and interbank quotes. Currency is an ISO code like USD, EUR, ARS, BRL.

입력 스키마

{
  "type": "object",
  "properties": {
    "currency": {
      "type": "string",
      "description": "ISO currency code, e.g. USD, EUR, ARS, BRL"
    }
  },
  "required": [
    "currency"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪best_house(currency, side)

The single best casa de cambio right now to buy or sell a currency. side='buy' means you buy the currency (best = lowest sell price); side='sell' means you sell it (best = highest buy price).

입력 스키마

{
  "type": "object",
  "properties": {
    "currency": {
      "type": "string",
      "description": "ISO currency code, e.g. USD"
    },
    "side": {
      "type": "string",
      "enum": [
        "buy",
        "sell"
      ],
      "description": "'buy' = you buy the currency; 'sell' = you sell it"
    }
  },
  "required": [
    "currency",
    "side"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪convert(amount, from, to)

Convert an amount between currencies using the best available Uruguayan market rates. Foreign↔foreign routes through UYU (Uruguayan peso). Codes: USD, EUR, ARS, BRL, UYU, etc.

입력 스키마

{
  "type": "object",
  "properties": {
    "amount": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Amount to convert"
    },
    "from": {
      "type": "string",
      "description": "Source ISO code, e.g. USD"
    },
    "to": {
      "type": "string",
      "description": "Target ISO code, e.g. UYU"
    }
  },
  "required": [
    "amount",
    "from",
    "to"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_houses

All Uruguayan exchange houses (casas de cambio) tracked, with display name, website, and departments served.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_evolution(origin, currency, period)

Historical rate series and statistics (min/max/avg/current/change) for a given exchange house (origin) and currency over the last N months. Use list_houses for valid origin ids.

입력 스키마

{
  "type": "object",
  "properties": {
    "origin": {
      "type": "string",
      "description": "Exchange house id, e.g. brou, itau, prex"
    },
    "currency": {
      "type": "string",
      "description": "ISO currency code, e.g. USD"
    },
    "period": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 60,
      "description": "Months of history (default 6)"
    }
  },
  "required": [
    "origin",
    "currency"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_news(limit)

Latest Uruguayan dollar/economy headlines (Google News), de-duplicated and newest first.

입력 스키마

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 30,
      "description": "Max headlines (default 12)"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪daily_summary(lang, currency)

AI-generated analysis of the Uruguayan exchange market. Without a currency, a whole-market summary; with one, a per-currency analysis. lang is es | en | pt.

입력 스키마

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "es",
        "en",
        "pt"
      ],
      "description": "Language (default es)"
    },
    "currency": {
      "type": "string",
      "description": "Optional ISO code for a per-currency analysis, e.g. USD"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢geocode_uy_address(address, department)

Convierte una dirección, esquina, barrio o nombre de lugar de Uruguay («Facultad de Ingeniería», «Tres Cruces», «Pocitos») en coordenadas con Google Maps. search_rentals y rank_rentals_for_household ya geocodifican solas si les pasás address: no hace falta llamar a esta antes.

입력 스키마

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "minLength": 4,
      "maxLength": 180,
      "description": "Calle y número (\"Av. Italia 2500\"), esquina (\"Rivera y Soca\"), barrio o nombre del lugar (\"Hospital de Clínicas\")."
    },
    "department": {
      "type": "string",
      "maxLength": 40,
      "description": "Departamento de Uruguay con tildes, p. ej. \"Montevideo\", \"Canelones\", \"Maldonado\", \"Colonia\"."
    }
  },
  "required": [
    "address"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_rentals(department, neighborhoods, types, bedrooms, bedroomsExact, ...)

Busca viviendas en alquiler en todo Uruguay (unión de Mercado Libre, InfoCasas, Inmuebles El País, Casasweb y Facebook Marketplace, ~57.000 propiedades, avisos vistos en los últimos 10 días). Filtra por barrio, tipo, dormitorios, baños, m², precio (UYU o USD), TOTAL MENSUAL con gastos comunes, gastos comunes máximos, mascotas, garaje, amueblado, tipo de garantía (ANDA, Contaduría, seguro, depósito, BHU, propietario), comodidades, dueño directo, inmobiliaria, portal, texto libre, cercanía a un punto y calidad del barrio (pocas denuncias, pocos cortes de agua o reclamos). Devuelve cada vivienda con alquiler, gastos comunes y total cuando el MISMO aviso los publica (~70 % no publica gastos comunes), link al aviso original, ficha en cambio-uruguay.com, la mediana de la búsqueda, los barrios con más oferta y un link para guardar la búsqueda o crear una alerta. Para rankear según ingresos y traslados de un hogar usá rank_rentals_for_household.

입력 스키마

{
  "type": "object",
  "properties": {
    "department": {
      "type": "string",
      "maxLength": 40,
      "description": "Departamento de Uruguay con tildes, p. ej. \"Montevideo\", \"Canelones\", \"Maldonado\", \"Colonia\"."
    },
    "neighborhoods": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 60
      },
      "maxItems": 20,
      "description": "Barrios como aparecen en los avisos: \"Pocitos\", \"Cordón\", \"Punta Carretas\", \"Malvín\"…"
    },
    "types": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "vivienda",
          "apartamento",
          "casa",
          "habitacion",
          "local",
          "oficina",
          "garaje",
          "terreno",
          "otro"
        ]
      },
      "maxItems": 5,
      "description": "\"vivienda\" = apartamento+casa+habitación. Default: todos los tipos (incluye locales y oficinas), así que para vivir pasá [\"vivienda\"] o [\"apartamento\"]."
    },
    "bedrooms": {
      "type": "integer",
      "minimum": 0,
      "maximum": 10,
      "description": "Dormitorios mínimos (0 = monoambiente). Con bedroomsExact=true, exactos."
    },
    "bedroomsExact": {
      "type": "boolean"
    },
    "bathrooms": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "description": "Baños mínimos."
    },
    "areaMin": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "m² mínimos."
    },
    "areaMax": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "m² máximos."
    },
    "listedCurrency": {
      "type": "string",
      "enum": [
        "UYU",
        "USD"
      ],
      "description": "Sólo avisos publicados en esa moneda. NO cambia la moneda de los topes: priceMinUyu/priceMaxUyu son siempre pesos."
    },
    "priceMinUyu": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Alquiler mínimo en PESOS (sin gastos comunes). Si la persona habla en dólares, convertí (1 USD ≈ 41 UYU, o usá convert)."
    },
    "priceMaxUyu": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Alquiler máximo en PESOS (sin gastos comunes). Los avisos en dólares se comparan convertidos."
    },
    "monthlyMaxUyu": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Tope del TOTAL mensual en pesos (alquiler + gastos comunes). Excluye avisos que no publican gastos comunes."
    },
    "expensesMaxUyu": {
      "type": "number",
      "minimum": 0,
      "description": "Gastos comunes máximos en pesos. Excluye avisos que no los publican."
    },
    "pets": {
      "type": "boolean",
      "description": "Sólo avisos que aceptan mascotas explícitamente."
    },
    "parking": {
      "type": "boolean",
      "description": "Con garaje."
    },
    "furnished": {
      "type": "boolean",
      "description": "Amueblado."
    },
    "guarantees": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "anda",
          "contaduria",
          "aseguradora",
          "propietaria",
          "deposito",
          "bhu",
          "aConvenir"
        ]
      },
      "maxItems": 7,
      "description": "Garantías aceptadas (cualquiera de ellas): anda, contaduria (Contaduría General de la Nación), aseguradora (Porto, Sura, Mapfre…), propietaria (fiador propietario), deposito, bhu, aConvenir."
    },
    "amenities": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "gimnasio",
          "piscina",
          "parrillero",
          "ascensor",
          "aire",
          "balcon",
          "lavadero",
          "calefaccion",
          "jardin",
          "sauna",
          "salon"
        ]
      },
      "maxItems": 11,
      "description": "Comodidades que debe tener (todas)."
    },
    "ownerDirect": {
      "type": "boolean",
      "description": "Sólo dueño directo (sin inmobiliaria)."
    },
    "agency": {
      "type": "string",
      "maxLength": 80,
      "description": "Clave de una inmobiliaria."
    },
    "source": {
      "type": "string",
      "enum": [
        "mercadolibre",
        "infocasas",
        "facebook",
        "elpais",
        "casasweb"
      ],
      "description": "Un solo portal."
    },
    "text": {
      "type": "string",
      "maxLength": 80,
      "description": "Texto libre en título y descripción, p. ej. \"terraza\", \"patio\"."
    },
    "near": {
      "type": "object",
      "properties": {
        "address": {
          "type": "string",
          "maxLength": 180,
          "description": "Dirección, esquina, barrio o nombre de lugar en Uruguay: \"Bulevar Artigas 1234\", \"18 de Julio y Ejido\", \"Montevideo Shopping\"."
        },
        "lat": {
          "type": "number",
          "minimum": -35.5,
          "maximum": -30
        },
        "lng": {
          "type": "number",
          "minimum": -58.6,
          "maximum": -53
        },
        "label": {
          "type": "string",
          "maxLength": 60,
          "description": "Nombre del punto, p. ej. \"Trabajo\"."
        },
        "radiusKm": {
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 30,
          "description": "Quedarse sólo con viviendas a esta distancia en línea recta (km). Sin radio, sólo ordena por cercanía."
        }
      },
      "additionalProperties": false,
      "description": "Buscar cerca de un punto: ordena por distancia y, con radiusKm, filtra. Sólo cuentan avisos con ubicación propia."
    },
    "neighborhoodQuality": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "denuncias",
          "agua",
          "luz",
          "saneamiento",
          "limpieza",
          "alumbrado"
        ]
      },
      "maxItems": 6,
      "description": "Barrios que están entre los mejores en: denuncias (menos delitos), agua (menos cortes), luz, saneamiento, limpieza, alumbrado."
    },
    "hideReported": {
      "type": "string",
      "enum": [
        "none",
        "any",
        "multiple"
      ],
      "description": "Avisos que la comunidad reportó como no disponibles. Default \"multiple\" (oculta con 2+ reportes)."
    },
    "sort": {
      "type": "string",
      "enum": [
        "recientes",
        "precio",
        "precio-desc",
        "total",
        "precio-m2",
        "metros",
        "distancia"
      ],
      "description": "recientes (default), precio, precio-desc, total (menor total mensual), precio-m2, metros. Con near se ordena por distancia."
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "perPage": {
      "type": "integer",
      "minimum": 1,
      "maximum": 24,
      "description": "Resultados a devolver (default 10)."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢rank_rentals_for_household(people, housingBudgetUyu, otherExpensesUyu, savingsUyu, transportUyu, ...)

El buscador PERSONALIZADO: puntúa todas las viviendas vigentes (apartamentos y casas) para un hogar concreto. Cada persona puede tener ingreso, días de home office y hasta 4 destinos (trabajo, estudio) con días por semana y modo de traslado. Combina presupuesto (alquiler + gastos comunes vs. ingreso y otros gastos) y distancias a los destinos según la prioridad (balanced, budget, commute). Devuelve puntaje 0-100, total mensual, % del ingreso que se va en vivienda, lo que le queda al hogar, la distancia de cada persona a cada destino, motivos a favor y advertencias. Pedile a la persona lo mínimo: presupuesto, dónde trabaja/estudia cada uno, dormitorios, mascotas. Los ingresos no se guardan. Límite del sitio: ~10 consultas por minuto; la primera puede tardar hasta un minuto.

입력 스키마

{
  "type": "object",
  "properties": {
    "people": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "maxLength": 40,
            "description": "\"Ana\", \"Pareja\", \"Hijo\"…"
          },
          "incomeUyu": {
            "type": "number",
            "minimum": 0,
            "description": "Ingreso mensual líquido en pesos (0 si no tiene)."
          },
          "remoteDays": {
            "type": "integer",
            "minimum": 0,
            "maximum": 7,
            "description": "Días de home office por semana."
          },
          "destinations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "label": {
                  "type": "string",
                  "maxLength": 40,
                  "description": "Nombre corto: \"Trabajo\", \"Facultad\", \"Colegio de los chicos\"."
                },
                "kind": {
                  "type": "string",
                  "enum": [
                    "work",
                    "study",
                    "other"
                  ]
                },
                "address": {
                  "type": "string",
                  "maxLength": 180,
                  "description": "Dirección, esquina o nombre del lugar (\"Facultad de Ingeniería\", \"el Centro\"); se geocodifica sola. Alternativa: lat/lng."
                },
                "lat": {
                  "type": "number",
                  "minimum": -35.5,
                  "maximum": -30
                },
                "lng": {
                  "type": "number",
                  "minimum": -58.6,
                  "maximum": -53
                },
                "daysPerWeek": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 7,
                  "description": "Días por semana que va (default 5)."
                },
                "mode": {
                  "type": "string",
                  "enum": [
                    "walking",
                    "bicycling",
                    "transit",
                    "driving"
                  ],
                  "description": "Cómo va (default transit = ómnibus)."
                },
                "maxKm": {
                  "type": "number",
                  "exclusiveMinimum": 0,
                  "maximum": 300,
                  "description": "Distancia máxima aceptable en línea recta. Default según modo: caminando 2, bici 6, ómnibus 8, auto 15 km."
                }
              },
              "required": [
                "label"
              ],
              "additionalProperties": false
            },
            "maxItems": 4
          }
        },
        "required": [
          "label"
        ],
        "additionalProperties": false
      },
      "minItems": 1,
      "maxItems": 8
    },
    "housingBudgetUyu": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Presupuesto mensual para vivienda en pesos (alquiler + gastos comunes)."
    },
    "otherExpensesUyu": {
      "type": "number",
      "minimum": 0,
      "description": "Otros gastos fijos mensuales del hogar en pesos."
    },
    "savingsUyu": {
      "type": "number",
      "minimum": 0,
      "description": "Ahorro mensual que quieren mantener."
    },
    "transportUyu": {
      "type": "number",
      "minimum": 0,
      "description": "Gasto mensual en transporte."
    },
    "department": {
      "type": "string",
      "maxLength": 40,
      "description": "Departamento (default Montevideo)."
    },
    "types": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "apartamento",
          "casa"
        ]
      },
      "maxItems": 2
    },
    "minBedrooms": {
      "type": "integer",
      "minimum": 0,
      "maximum": 20
    },
    "minArea": {
      "type": "number",
      "minimum": 0,
      "description": "m² mínimos."
    },
    "pets": {
      "type": "boolean",
      "description": "Necesitan que acepte mascotas."
    },
    "parking": {
      "type": "boolean"
    },
    "furnished": {
      "type": "boolean"
    },
    "preferredNeighborhoods": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 60
      },
      "maxItems": 20,
      "description": "Barrios preferidos (\"Pocitos\" o \"Pocitos, Montevideo\")."
    },
    "excludedNeighborhoods": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 60
      },
      "maxItems": 20,
      "description": "Barrios a descartar."
    },
    "onlyPreferred": {
      "type": "boolean",
      "description": "true = sólo los barrios preferidos; false = los prefiere pero no descarta otros."
    },
    "includeReported": {
      "type": "boolean",
      "description": "Incluir avisos reportados como no disponibles (default no)."
    },
    "includeOverBudget": {
      "type": "boolean",
      "description": "Incluir los que se pasan del presupuesto (marcados)."
    },
    "priority": {
      "type": "string",
      "enum": [
        "balanced",
        "budget",
        "commute"
      ],
      "description": "Qué pesa más: equilibrado (default), precio o cercanía."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 24,
      "description": "Resultados a devolver (default 10)."
    }
  },
  "required": [
    "people",
    "housingBudgetUyu"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_rental(key)

Ficha completa de una vivienda en alquiler: todos los avisos que la publican (precio por portal e inmobiliaria), descripción, comodidades, texto de la garantía, superficies, comparación con la mediana de viviendas parecidas del mismo barrio (y cuánto por encima o debajo está), viviendas similares y perfil del barrio (denuncias, cortes de agua, reclamos de saneamiento/limpieza/alumbrado). Acepta la key que devuelven las otras tools o la URL https://cambio-uruguay.com/alquileres/<key>.

입력 스키마

{
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "minLength": 3,
      "maxLength": 600,
      "description": "key de la vivienda o URL de su ficha."
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢rental_market_stats(department, neighborhood, type, bedrooms, currency)

Estadísticas del mercado de alquiler: mediana y rango típico (p25–p75) del alquiler, gastos comunes, total mensual y precio por m², por departamento, barrio, tipo y dormitorios, más los barrios más accesibles y más caros. Usalo para '¿cuánto sale alquilar 2 dormitorios en Pocitos?' o '¿dónde me alcanza con $30.000?'. Son precios pedidos, no firmados.

입력 스키마

{
  "type": "object",
  "properties": {
    "department": {
      "type": "string",
      "maxLength": 40,
      "description": "Departamento de Uruguay con tildes, p. ej. \"Montevideo\", \"Canelones\", \"Maldonado\", \"Colonia\"."
    },
    "neighborhood": {
      "type": "string",
      "maxLength": 60,
      "description": "Barrio (requiere department)."
    },
    "type": {
      "type": "string",
      "enum": [
        "apartamento",
        "casa"
      ]
    },
    "bedrooms": {
      "type": "integer",
      "minimum": 0,
      "maximum": 10
    },
    "currency": {
      "type": "string",
      "enum": [
        "UYU",
        "USD"
      ],
      "description": "Moneda de los avisos a analizar (default UYU: los avisos en pesos)."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢estimate_fair_rent(department, neighborhood, type, bedrooms, bathrooms, ...)

Estima el alquiler justo de una vivienda concreta (barrio, tipo, dormitorios, baños, m²) con avisos comparables de anunciantes distintos y, si se da askingPrice, ubica ese precio (percentil y % sobre/bajo la mediana). Sirve para '¿me están cobrando caro?' o para negociar. Casas: superficie construida.

입력 스키마

{
  "type": "object",
  "properties": {
    "department": {
      "type": "string",
      "maxLength": 40,
      "description": "Departamento de Uruguay con tildes, p. ej. \"Montevideo\", \"Canelones\", \"Maldonado\", \"Colonia\"."
    },
    "neighborhood": {
      "type": "string",
      "maxLength": 60
    },
    "type": {
      "type": "string",
      "enum": [
        "apartamento",
        "casa"
      ]
    },
    "bedrooms": {
      "type": "integer",
      "minimum": 0,
      "maximum": 10
    },
    "bathrooms": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10
    },
    "areaM2": {
      "type": "number",
      "minimum": 20,
      "maximum": 450,
      "description": "Superficie en m²."
    },
    "areaBasis": {
      "type": "string",
      "enum": [
        "built",
        "total"
      ],
      "description": "built = construida (default), total = con balcones/terrazas."
    },
    "currency": {
      "type": "string",
      "enum": [
        "UYU",
        "USD"
      ]
    },
    "parkingSpaces": {
      "type": "integer",
      "minimum": 0,
      "maximum": 10
    },
    "askingPrice": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Precio pedido a evaluar, en la moneda indicada."
    }
  },
  "required": [
    "department",
    "neighborhood",
    "type",
    "bedrooms",
    "bathrooms",
    "areaM2"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢compare_neighborhoods(neighborhoods, department, type, bedrooms, rankBy, ...)

Compara barrios lado a lado con datos públicos: alquiler mediano y total con gastos comunes, precio por m², delitos denunciados (Ministerio del Interior, por tipo), cortes de agua (OSE), reclamos de saneamiento/limpieza/alumbrado/calles (IM), servicios cercanos (supermercados, farmacias, salud, transporte, educación) y el puesto de cada barrio entre los 62 de Montevideo. Pasá neighborhoods para comparar esos, o rankBy para listar los mejores (rent = más baratos, monthly = menor total, safety = menos denuncias, services = más servicios).

입력 스키마

{
  "type": "object",
  "properties": {
    "neighborhoods": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 60
      },
      "maxItems": 10
    },
    "department": {
      "type": "string",
      "maxLength": 40,
      "description": "Departamento de Uruguay con tildes, p. ej. \"Montevideo\", \"Canelones\", \"Maldonado\", \"Colonia\"."
    },
    "type": {
      "type": "string",
      "enum": [
        "apartamento",
        "casa"
      ],
      "description": "Precios de apartamentos (default) o casas."
    },
    "bedrooms": {
      "type": "string",
      "enum": [
        "any",
        "0",
        "1",
        "2",
        "3",
        "4plus"
      ]
    },
    "rankBy": {
      "type": "string",
      "enum": [
        "rent",
        "monthly",
        "safety",
        "services"
      ]
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢find_property_opportunities(operation, department, neighborhood, type, bedrooms, ...)

Viviendas pedidas por DEBAJO de avisos comparables (mismo barrio, tipo, dormitorios y superficie, varios anunciantes), con la brecha %, una brecha conservadora, cuántos comparables y anunciantes la sostienen, el nivel de evidencia y las cautelas. Alquiler compara alquiler + gastos comunes. Es una comparación de precios pedidos, no una tasación.

입력 스키마

{
  "type": "object",
  "properties": {
    "operation": {
      "type": "string",
      "enum": [
        "rent",
        "sale"
      ],
      "description": "rent = alquiler (default), sale = venta."
    },
    "department": {
      "type": "string",
      "maxLength": 40,
      "description": "Departamento de Uruguay con tildes, p. ej. \"Montevideo\", \"Canelones\", \"Maldonado\", \"Colonia\"."
    },
    "neighborhood": {
      "type": "string",
      "maxLength": 60
    },
    "type": {
      "type": "string",
      "enum": [
        "apartamento",
        "casa"
      ]
    },
    "bedrooms": {
      "type": "integer",
      "minimum": 0,
      "maximum": 8,
      "description": "Dormitorios exactos."
    },
    "maxPrice": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Tope del precio comparado: pesos por mes en alquiler (alquiler + gastos comunes), dólares en venta."
    },
    "confidence": {
      "type": "string",
      "enum": [
        "supported",
        "limited"
      ]
    },
    "evidence": {
      "type": "string",
      "enum": [
        "standard",
        "exploratory"
      ]
    },
    "signal": {
      "type": "string",
      "enum": [
        "total_price",
        "price_per_m2"
      ]
    },
    "sort": {
      "type": "string",
      "enum": [
        "evidence",
        "discount",
        "price",
        "recent"
      ]
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "perPage": {
      "type": "integer",
      "minimum": 1,
      "maximum": 24
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_used_cars(text, brand, model, yearMin, yearMax, ...)

Busca autos usados en todo Uruguay (~19.000 avisos de Mercado Libre, Facebook Marketplace, Dueño Directo, Clasiautos, Julio, Shopping de Autos, Carper, Fidocar, Motorlider y Car One; un mismo auto en varias fuentes aparece una vez). Filtra por marca y modelo (nombres comunes, se resuelven solos), año, km, precio en US$, consumo máximo L/100 km, combustible, caja, carrocería, puertas, color, departamento, automotora o particular, fuente, bajó de precio, sólo oportunidades, sin deuda ni choque declarados y publicados en los últimos N días. Cada auto trae versión, motor, consumo, si es oportunidad frente a autos iguales, precio de la guía de ML, riesgos que el vendedor declara (con su frase) y links.

입력 스키마

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "maxLength": 80,
      "description": "Texto libre: \"4x4\", \"full\", \"cuero\"."
    },
    "brand": {
      "type": "string",
      "maxLength": 40,
      "description": "Marca: \"Volkswagen\", \"Chevrolet\", \"Toyota\"…"
    },
    "model": {
      "type": "string",
      "maxLength": 60,
      "description": "Modelo: \"Gol\", \"Onix\", \"Hilux\" (requiere brand)."
    },
    "yearMin": {
      "type": "integer",
      "minimum": 1950,
      "maximum": 2100
    },
    "yearMax": {
      "type": "integer",
      "minimum": 1950,
      "maximum": 2100
    },
    "kmMax": {
      "type": "integer",
      "exclusiveMinimum": 0
    },
    "priceMinUsd": {
      "type": "number",
      "exclusiveMinimum": 0
    },
    "priceMaxUsd": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 1000000,
      "description": "Precio máximo en dólares."
    },
    "maxLitersPer100Km": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 30,
      "description": "Consumo máximo (litros cada 100 km)."
    },
    "fuel": {
      "type": "string",
      "enum": [
        "nafta",
        "diesel",
        "electrico",
        "hibrido",
        "gnc"
      ]
    },
    "transmission": {
      "type": "string",
      "enum": [
        "manual",
        "automatica"
      ]
    },
    "body": {
      "type": "string",
      "enum": [
        "sedan",
        "hatchback",
        "suv",
        "pickup",
        "rural",
        "furgon",
        "monovolumen",
        "coupe",
        "cabriolet"
      ],
      "description": "Carrocería: sedan, hatchback, suv, pickup, rural (familiar), furgon, monovolumen, coupe, cabriolet."
    },
    "doors": {
      "type": "integer",
      "minimum": 2,
      "maximum": 5
    },
    "color": {
      "type": "string",
      "maxLength": 20,
      "description": "blanco, gris, plata, rojo, azul, negro, verde, celeste, beige, marron, dorado, bordo, naranja, amarillo, violeta."
    },
    "department": {
      "type": "string",
      "enum": [
        "Artigas",
        "Canelones",
        "Cerro Largo",
        "Colonia",
        "Durazno",
        "Flores",
        "Florida",
        "Lavalleja",
        "Maldonado",
        "Montevideo",
        "Paysandú",
        "Río Negro",
        "Rivera",
        "Rocha",
        "Salto",
        "San José",
        "Soriano",
        "Tacuarembó",
        "Treinta y Tres"
      ]
    },
    "seller": {
      "type": "string",
      "enum": [
        "dealer",
        "private"
      ],
      "description": "dealer = automotora, private = particular."
    },
    "source": {
      "type": "string",
      "maxLength": 30,
      "description": "mercadolibre, facebook, duenodirecto, clasiautos, julio, shoppingdeautos, carper, fidocar, motorlider, carone."
    },
    "priceDrop": {
      "type": "boolean",
      "description": "Sólo los que bajaron de precio."
    },
    "onlyOpportunities": {
      "type": "boolean",
      "description": "Sólo pedidos por debajo de autos iguales."
    },
    "noDeclaredRisk": {
      "type": "boolean",
      "description": "Excluir los que declaran deuda, choque, papeles, recupero, etc."
    },
    "sinceDays": {
      "type": "integer",
      "minimum": 1,
      "maximum": 365,
      "description": "Publicados en los últimos N días."
    },
    "sort": {
      "type": "string",
      "enum": [
        "recent",
        "price_asc",
        "price_desc",
        "km_asc",
        "year_desc",
        "consumption_asc"
      ]
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 24,
      "description": "Resultados a devolver (default 10)."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢find_car_opportunities(tier, brand, priceMaxUsd, yearMin, kmMax, ...)

Autos pedidos por DEBAJO de su cohorte fija: mismo modelo, año, versión, motor y caja, con km dentro de max(20.000, 30 %). Cada oportunidad pasa por su ficha (activa, mismo precio, sin choque/recupero/deuda/chapa extranjera declarados). Trae brecha %, brecha conservadora, la muestra (n, vendedores, p25/mediana/p75) y comparables con link. tier strict = evidencia sólida; exploratory = para explorar.

입력 스키마

{
  "type": "object",
  "properties": {
    "tier": {
      "type": "string",
      "enum": [
        "strict",
        "exploratory"
      ]
    },
    "brand": {
      "type": "string",
      "maxLength": 40
    },
    "priceMaxUsd": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 1000000,
      "description": "Precio máximo en dólares."
    },
    "yearMin": {
      "type": "integer",
      "minimum": 1950,
      "maximum": 2100
    },
    "kmMax": {
      "type": "integer",
      "exclusiveMinimum": 0
    },
    "fuel": {
      "type": "string",
      "enum": [
        "nafta",
        "diesel",
        "electrico",
        "hibrido",
        "gnc"
      ]
    },
    "transmission": {
      "type": "string",
      "enum": [
        "manual",
        "automatica"
      ]
    },
    "body": {
      "type": "string",
      "enum": [
        "sedan",
        "hatchback",
        "suv",
        "pickup",
        "rural",
        "furgon",
        "monovolumen",
        "coupe",
        "cabriolet"
      ],
      "description": "Carrocería: sedan, hatchback, suv, pickup, rural (familiar), furgon, monovolumen, coupe, cabriolet."
    },
    "maxLitersPer100Km": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 30,
      "description": "Consumo máximo (litros cada 100 km)."
    },
    "department": {
      "type": "string",
      "enum": [
        "Artigas",
        "Canelones",
        "Cerro Largo",
        "Colonia",
        "Durazno",
        "Flores",
        "Florida",
        "Lavalleja",
        "Maldonado",
        "Montevideo",
        "Paysandú",
        "Río Negro",
        "Rivera",
        "Rocha",
        "Salto",
        "San José",
        "Soriano",
        "Tacuarembó",
        "Treinta y Tres"
      ]
    },
    "seller": {
      "type": "string",
      "enum": [
        "dealer",
        "private"
      ],
      "description": "dealer = automotora, private = particular."
    },
    "sort": {
      "type": "string",
      "enum": [
        "gap",
        "price_asc",
        "year_desc",
        "km_asc",
        "consumption_asc"
      ]
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_car(key)

Ficha de un aviso de auto usado: versión, motor, km, consumo, la cohorte de autos iguales (mediana y rango) y dónde queda este precio, la referencia de la guía de ML, los riesgos que declara el vendedor con su frase y autos parecidos. Acepta la key o la URL https://cambio-uruguay.com/autos-usados-uruguay/<key>.

입력 스키마

{
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "minLength": 3,
      "maxLength": 300
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢car_model_prices(brand, model, year)

Cuánto se pide por un modelo: mediana y rango por año y por versión (motor y caja), la guía de precios de Mercado Libre, las oportunidades del modelo y los más baratos (de un año si se indica). Para '¿cuánto vale un Onix 2019?' o '¿a cuánto vendo mi auto?'.

입력 스키마

{
  "type": "object",
  "properties": {
    "brand": {
      "type": "string",
      "minLength": 2,
      "maxLength": 40
    },
    "model": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60
    },
    "year": {
      "type": "integer",
      "minimum": 1950,
      "maximum": 2100
    }
  },
  "required": [
    "brand",
    "model"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢car_declared_risks(category, brand, onlyMeasured, priceMaxUsd, yearMin, ...)

Avisos cuyo vendedor DECLARA un riesgo (deuda, papeles, siniestro/choque, recupero, mecánica, chapa extranjera, uso intensivo como ex taxi) con su frase textual, la severidad y cuánto menos pide frente a los mismos autos que no declaran nada; más el resumen por categoría. Útil para entender el descuento de un auto con deuda o para descartar riesgos.

입력 스키마

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "enum": [
        "deuda",
        "papeles",
        "siniestro",
        "recupero",
        "mecanica",
        "chapa_extranjera",
        "uso_intensivo"
      ]
    },
    "brand": {
      "type": "string",
      "maxLength": 40
    },
    "onlyMeasured": {
      "type": "boolean",
      "description": "Sólo los que tienen cohorte limpia para medir el descuento."
    },
    "priceMaxUsd": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 1000000,
      "description": "Precio máximo en dólares."
    },
    "yearMin": {
      "type": "integer",
      "minimum": 1950,
      "maximum": 2100
    },
    "kmMax": {
      "type": "integer",
      "exclusiveMinimum": 0
    },
    "fuel": {
      "type": "string",
      "enum": [
        "nafta",
        "diesel",
        "electrico",
        "hibrido",
        "gnc"
      ]
    },
    "transmission": {
      "type": "string",
      "enum": [
        "manual",
        "automatica"
      ]
    },
    "body": {
      "type": "string",
      "enum": [
        "sedan",
        "hatchback",
        "suv",
        "pickup",
        "rural",
        "furgon",
        "monovolumen",
        "coupe",
        "cabriolet"
      ],
      "description": "Carrocería: sedan, hatchback, suv, pickup, rural (familiar), furgon, monovolumen, coupe, cabriolet."
    },
    "maxLitersPer100Km": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 30,
      "description": "Consumo máximo (litros cada 100 km)."
    },
    "department": {
      "type": "string",
      "enum": [
        "Artigas",
        "Canelones",
        "Cerro Largo",
        "Colonia",
        "Durazno",
        "Flores",
        "Florida",
        "Lavalleja",
        "Maldonado",
        "Montevideo",
        "Paysandú",
        "Río Negro",
        "Rivera",
        "Rocha",
        "Salto",
        "San José",
        "Soriano",
        "Tacuarembó",
        "Treinta y Tres"
      ]
    },
    "seller": {
      "type": "string",
      "enum": [
        "dealer",
        "private"
      ],
      "description": "dealer = automotora, private = particular."
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢car_market_report(section, budgetUsd, model)

Informe del mercado uruguayo de usados (oferta publicada, no ventas). Secciones: overview (tamaño, precio/año/km medianos, modelos con más oferta), budgets (qué modelos se consiguen con cada presupuesto: pasá budgetUsd), depreciation (cuánto pierde por año cada modelo: pasá model), negotiation (cuántos bajan el precio y cuánto), seller_gaps (automotora vs particular), valuation (cuánto restan los km y suma la caja automática), rotation.

입력 스키마

{
  "type": "object",
  "properties": {
    "section": {
      "type": "string",
      "enum": [
        "overview",
        "budgets",
        "depreciation",
        "negotiation",
        "seller_gaps",
        "valuation",
        "rotation"
      ]
    },
    "budgetUsd": {
      "type": "number",
      "exclusiveMinimum": 0
    },
    "model": {
      "type": "string",
      "maxLength": 60,
      "description": "Modelo para depreciation, p. ej. \"Onix\" o \"Chevrolet Prisma\"."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_directories

Qué directorios mantiene el sitio (alquileres, ventas, autos, celulares, sillas, tiendas, súper, casas de cambio, couriers, tarjetas, equipar la casa, movilidad eléctrica), cuántos ítems tiene cada uno, su fecha y su link.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_products(vertical, text, brand, maxPriceUyu, condition, ...)

Búsqueda unificada en los directorios de productos, relevados a diario en tiendas uruguayas, Mercado Libre y Facebook Marketplace: celulares (modelo + almacenamiento, precio nuevo más bajo), sillas de escritorio y gamer (con calificación), hogar (38 categorías para equipar una casa: heladera, lavarropas, colchón, cocina, aire acondicionado, TV…, con banda de precio nuevo y usado) y movilidad eléctrica (monopatines, bicicletas eléctricas). Devuelve el precio más bajo con vendedor y link, la banda típica (p25–mediana–p75), cuánto ahorra comprar usado y la ficha del sitio. Ordena del más barato al más caro.

입력 스키마

{
  "type": "object",
  "properties": {
    "vertical": {
      "type": "string",
      "enum": [
        "celulares",
        "sillas",
        "hogar",
        "monopatines",
        "bicicletas-electricas",
        "todas"
      ],
      "description": "Directorio (default: todas)."
    },
    "text": {
      "type": "string",
      "maxLength": 80,
      "description": "Palabras a buscar: \"heladera no frost\", \"iphone 13\", \"silla ergonómica\"."
    },
    "brand": {
      "type": "string",
      "maxLength": 40
    },
    "maxPriceUyu": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Precio máximo en pesos."
    },
    "condition": {
      "type": "string",
      "enum": [
        "new",
        "used",
        "any"
      ],
      "description": "used = sólo con banda de usados, al precio usado."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 30
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢plan_home_setup(level, have, condition)

Presupuesto para equipar una vivienda vacía (ideal después de alquilar sin amueblar): canasta mínima, decente o completa, línea por línea con precio y si conviene usado o nuevo, restando lo que la persona ya tiene. Si faltan precios de algún ítem el total es parcial y lo dice.

입력 스키마

{
  "type": "object",
  "properties": {
    "level": {
      "type": "string",
      "enum": [
        "minima",
        "decente",
        "completa"
      ],
      "description": "minima (lo imprescindible, default), decente, completa."
    },
    "have": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 40
      },
      "maxItems": 40,
      "description": "Lo que ya tiene: \"heladera\", \"colchón\", \"microondas\"…"
    },
    "condition": {
      "type": "string",
      "enum": [
        "cheapest",
        "new"
      ],
      "description": "cheapest (default: usado cuando conviene) o new (todo nuevo)."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢check_online_store(name)

Señales fechadas de una tienda online que vende en Uruguay (o de compra en el exterior): antigüedad del dominio, calificación en Google, Trustpilot, menciones en Reddit uruguayo, HTTPS, contacto y RUT visibles, política de devoluciones y medios de pago. Nunca da un veredicto de confianza: presentá las señales y dejá que la persona decida.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 2,
      "maxLength": 120,
      "description": "Nombre, dominio o URL de la tienda."
    }
  },
  "required": [
    "name"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢supermarket_prices(text, department, limit)

Precios oficiales del SIPC (MEF) por artículo (barato/mediana/caro y cuántos locales) y los supermercados más baratos de un departamento por canasta emparejada de 33 artículos (nunca por total bruto). Útil para estimar el costo de vida al mudarse.

입력 스키마

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "maxLength": 80,
      "description": "Artículo: \"aceite girasol\", \"leche\", \"arroz\"."
    },
    "department": {
      "type": "string",
      "maxLength": 40
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_site(query, limit)

Busca en TODO el sitio: guías (impuestos, aduana y compras en el exterior, tarjetas, bancos, préstamos, sueldo y BPS, alquilar, consumo), herramientas y calculadoras, glosario, directorios y páginas de datos. Devuelve las páginas a las que conviene ir (título, sección, URL) y los pasajes de texto que responden, con la fecha en que se leyó cada página. Usala para cualquier pregunta que no sea buscar avisos, y para saber a qué página mandar a la persona.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 200,
      "description": "Pregunta o palabras clave en español: \"franquicia courier\", \"cuánto cobra el BROU por transferir\", \"aguinaldo\"."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "description": "Páginas con texto a devolver (default 6)."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢read_page(page, offset)

El texto de una página de cambio-uruguay.com con sus secciones, en tramos de 8.000 caracteres (usá offset para seguir). Para citar con precisión lo que search_site encontró. Las cifras son del día en que se leyó la página.

입력 스키마

{
  "type": "object",
  "properties": {
    "page": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "URL o ruta: \"https://cambio-uruguay.com/alquilar-en-uruguay\" o \"/alquilar-en-uruguay\"."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "description": "Desde qué carácter seguir (lo indica la respuesta anterior)."
    }
  },
  "required": [
    "page"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢site_sections

El menú de cambio-uruguay.com: secciones y páginas principales con su URL. Para orientar a la persona sobre qué hay en el sitio y dónde.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 29개
검증됨버전이 기록되지 않음도구 29개
검증됨버전이 기록되지 않음도구 7개