Cambio Uruguay
Uruguay: exchange rates, rentals, used cars, product prices and search across cambio-uruguay.com
使うべきか
品質と安全性
検出事項(22)
- HIGH
- MEDIUMsearch_rentals 内
- MEDIUMget_rental 内
- MEDIUMsearch_used_cars 内
- MEDIUMsearch_site 内
- MEDIUMget_rental 内
- MEDIUMget_car 内
- LOWbest_house 内
- LOWget_rental 内
- LOWrental_market_stats 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `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#"
}コミュニティ
エビデンス