Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,562Letters: 14Defects: 1,336counted 1 min ago
teppi

Server definition

Hash
sha256:2312e20608f1cc49ff9d2c63ad14ffacc9e9aa632645ce48d28e81483ff2659d
What it is
What a remote MCP server returned when asked what it offers: 29 tools

The blob, as servednamed by its sha256

{ "instructions": "Datos de cambio-uruguay.com: sólo lectura, públicos, actualizados a diario. Respondé en el idioma de la persona (por defecto español rioplatense).\nSiempre incluí los links: el aviso original y la ficha en cambio-uruguay.com. No inventes datos que las tools no devuelven (teléfonos, disponibilidad, estado del inmueble o del auto).\nSon precios PEDIDOS en avisos, no de cierre. Una 'oportunidad' es un precio por debajo de avisos parecidos, no una tasación ni una garantía.\nCambio: para comprar una moneda la mejor casa es la de menor venta; para venderla, la de mayor compra. BCU e interbancario no son precios minoristas.\nAlquileres — antes de buscar preguntá lo mínimo que falte: presupuesto mensual (¿incluye gastos comunes?), departamento/barrios, dormitorios, mascotas, garantía que tiene (ANDA, Contaduría, seguro, depósito) y dónde trabaja/estudia cada persona y cuántos días va.\nCon ingresos o destinos usá rank_rentals_for_household (personalizado). Para explorar, search_rentals. Para el precio de referencia, rental_market_stats o estimate_fair_rent. Para elegir zona, compare_neighborhoods. Para gangas, find_property_opportunities.\nPresupuesto real = alquiler + gastos comunes; ~70 % de los avisos no publica gastos comunes: avisalo y no los inventes. Los topes de precio van en PESOS.\nAntes de recomendar, abrí 2-3 finalistas con get_rental (precio en cada portal, mercado, barrio). Cerrá con una lista corta, por qué cada una, qué preguntar al visitar y el link para guardar la búsqueda o crear una alerta.\nAutos — preguntá presupuesto en US$, para qué lo usa (ciudad/ruta, familia), caja, combustible/consumo y si acepta particulares o sólo automotora.\nsearch_used_cars para explorar; car_model_prices para saber cuánto vale un modelo/año; find_car_opportunities para gangas; car_market_report(section=budgets) para '¿qué compro con X dólares?'; car_declared_risks y get_car para revisar riesgos.\nEl riesgo es lo que el vendedor DECLARA, con su frase; que no declare nada no prueba nada. Recomendá siempre deuda de patente en SUCIVE, informe del Registro de la Propiedad Mueble y revisión mecánica antes de señar.\nProductos — search_products busca en celulares, sillas, hogar (38 categorías) y movilidad eléctrica; plan_home_setup presupuesta equipar una casa; check_online_store da señales de una tienda (nunca un veredicto); supermarket_prices da precios oficiales del SIPC.\nMostrá el precio más bajo con vendedor y link y la banda típica; si conviene usado, decilo con el ahorro.\nSitio — para cualquier pregunta sobre lo que cubre cambio-uruguay.com (impuestos, aduana y compras en el exterior, tarjetas y bancos, préstamos y deudas, sueldo y BPS, alquilar, consumo) o para saber a qué página ir: search_site primero y, si el pasaje no alcanza, read_page de la mejor página.\nRespondé con lo que dicen esos textos y citá la URL de cada dato. Si el sitio no lo cubre, decilo; si agregás conocimiento general, aclaralo. Si la búsqueda no trae nada, reintentá con las palabras que usaría una guía («franquicia», «aguinaldo», «garantía»).\nLas cifras de los textos son del día en que se leyó cada página (viene la fecha): para cotizaciones de hoy usá las tools de cambio y para avisos las de alquileres, autos o productos. site_sections da el menú del sitio.", "tools": [ { "description": "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).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "currency": { "description": "ISO currency code, e.g. USD", "type": "string" }, "side": { "description": "'buy' = you buy the currency; 'sell' = you sell it", "enum": [ "buy", "sell" ], "type": "string" } }, "required": [ "currency", "side" ], "type": "object" }, "name": "best_house", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "body": { "description": "Carrocería: sedan, hatchback, suv, pickup, rural (familiar), furgon, monovolumen, coupe, cabriolet.", "enum": [ "sedan", "hatchback", "suv", "pickup", "rural", "furgon", "monovolumen", "coupe", "cabriolet" ], "type": "string" }, "brand": { "maxLength": 40, "type": "string" }, "category": { "enum": [ "deuda", "papeles", "siniestro", "recupero", "mecanica", "chapa_extranjera", "uso_intensivo" ], "type": "string" }, "department": { "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" ], "type": "string" }, "fuel": { "enum": [ "nafta", "diesel", "electrico", "hibrido", "gnc" ], "type": "string" }, "kmMax": { "exclusiveMinimum": 0, "type": "integer" }, "limit": { "maximum": 20, "minimum": 1, "type": "integer" }, "maxLitersPer100Km": { "description": "Consumo máximo (litros cada 100 km).", "exclusiveMinimum": 0, "maximum": 30, "type": "number" }, "onlyMeasured": { "description": "Sólo los que tienen cohorte limpia para medir el descuento.", "type": "boolean" }, "page": { "maximum": 200, "minimum": 1, "type": "integer" }, "priceMaxUsd": { "description": "Precio máximo en dólares.", "exclusiveMinimum": 0, "maximum": 1000000, "type": "number" }, "seller": { "description": "dealer = automotora, private = particular.", "enum": [ "dealer", "private" ], "type": "string" }, "transmission": { "enum": [ "manual", "automatica" ], "type": "string" }, "yearMin": { "maximum": 2100, "minimum": 1950, "type": "integer" } }, "type": "object" }, "name": "car_declared_risks", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "budgetUsd": { "exclusiveMinimum": 0, "type": "number" }, "model": { "description": "Modelo para depreciation, p. ej. \"Onix\" o \"Chevrolet Prisma\".", "maxLength": 60, "type": "string" }, "section": { "enum": [ "overview", "budgets", "depreciation", "negotiation", "seller_gaps", "valuation", "rotation" ], "type": "string" } }, "type": "object" }, "name": "car_market_report", "outputSchema": null }, { "description": "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?'.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "brand": { "maxLength": 40, "minLength": 2, "type": "string" }, "model": { "maxLength": 60, "minLength": 1, "type": "string" }, "year": { "maximum": 2100, "minimum": 1950, "type": "integer" } }, "required": [ "brand", "model" ], "type": "object" }, "name": "car_model_prices", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "name": { "description": "Nombre, dominio o URL de la tienda.", "maxLength": 120, "minLength": 2, "type": "string" } }, "required": [ "name" ], "type": "object" }, "name": "check_online_store", "outputSchema": null }, { "description": "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).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "bedrooms": { "enum": [ "any", "0", "1", "2", "3", "4plus" ], "type": "string" }, "department": { "description": "Departamento de Uruguay con tildes, p. ej. \"Montevideo\", \"Canelones\", \"Maldonado\", \"Colonia\".", "maxLength": 40, "type": "string" }, "limit": { "maximum": 20, "minimum": 1, "type": "integer" }, "neighborhoods": { "items": { "maxLength": 60, "type": "string" }, "maxItems": 10, "type": "array" }, "rankBy": { "enum": [ "rent", "monthly", "safety", "services" ], "type": "string" }, "type": { "description": "Precios de apartamentos (default) o casas.", "enum": [ "apartamento", "casa" ], "type": "string" } }, "type": "object" }, "name": "compare_neighborhoods", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "amount": { "description": "Amount to convert", "exclusiveMinimum": 0, "type": "number" }, "from": { "description": "Source ISO code, e.g. USD", "type": "string" }, "to": { "description": "Target ISO code, e.g. UYU", "type": "string" } }, "required": [ "amount", "from", "to" ], "type": "object" }, "name": "convert", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "currency": { "description": "Optional ISO code for a per-currency analysis, e.g. USD", "type": "string" }, "lang": { "description": "Language (default es)", "enum": [ "es", "en", "pt" ], "type": "string" } }, "type": "object" }, "name": "daily_summary", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "areaBasis": { "description": "built = construida (default), total = con balcones/terrazas.", "enum": [ "built", "total" ], "type": "string" }, "areaM2": { "description": "Superficie en m².", "maximum": 450, "minimum": 20, "type": "number" }, "askingPrice": { "description": "Precio pedido a evaluar, en la moneda indicada.", "exclusiveMinimum": 0, "type": "number" }, "bathrooms": { "maximum": 10, "minimum": 1, "type": "integer" }, "bedrooms": { "maximum": 10, "minimum": 0, "type": "integer" }, "currency": { "enum": [ "UYU", "USD" ], "type": "string" }, "department": { "description": "Departamento de Uruguay con tildes, p. ej. \"Montevideo\", \"Canelones\", \"Maldonado\", \"Colonia\".", "maxLength": 40, "type": "string" }, "neighborhood": { "maxLength": 60, "type": "string" }, "parkingSpaces": { "maximum": 10, "minimum": 0, "type": "integer" }, "type": { "enum": [ "apartamento", "casa" ], "type": "string" } }, "required": [ "department", "neighborhood", "type", "bedrooms", "bathrooms", "areaM2" ], "type": "object" }, "name": "estimate_fair_rent", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "body": { "description": "Carrocería: sedan, hatchback, suv, pickup, rural (familiar), furgon, monovolumen, coupe, cabriolet.", "enum": [ "sedan", "hatchback", "suv", "pickup", "rural", "furgon", "monovolumen", "coupe", "cabriolet" ], "type": "string" }, "brand": { "maxLength": 40, "type": "string" }, "department": { "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" ], "type": "string" }, "fuel": { "enum": [ "nafta", "diesel", "electrico", "hibrido", "gnc" ], "type": "string" }, "kmMax": { "exclusiveMinimum": 0, "type": "integer" }, "limit": { "maximum": 20, "minimum": 1, "type": "integer" }, "maxLitersPer100Km": { "description": "Consumo máximo (litros cada 100 km).", "exclusiveMinimum": 0, "maximum": 30, "type": "number" }, "page": { "maximum": 200, "minimum": 1, "type": "integer" }, "priceMaxUsd": { "description": "Precio máximo en dólares.", "exclusiveMinimum": 0, "maximum": 1000000, "type": "number" }, "seller": { "description": "dealer = automotora, private = particular.", "enum": [ "dealer", "private" ], "type": "string" }, "sort": { "enum": [ "gap", "price_asc", "year_desc", "km_asc", "consumption_asc" ], "type": "string" }, "tier": { "enum": [ "strict", "exploratory" ], "type": "string" }, "transmission": { "enum": [ "manual", "automatica" ], "type": "string" }, "yearMin": { "maximum": 2100, "minimum": 1950, "type": "integer" } }, "type": "object" }, "name": "find_car_opportunities", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "bedrooms": { "description": "Dormitorios exactos.", "maximum": 8, "minimum": 0, "type": "integer" }, "confidence": { "enum": [ "supported", "limited" ], "type": "string" }, "department": { "description": "Departamento de Uruguay con tildes, p. ej. \"Montevideo\", \"Canelones\", \"Maldonado\", \"Colonia\".", "maxLength": 40, "type": "string" }, "evidence": { "enum": [ "standard", "exploratory" ], "type": "string" }, "maxPrice": { "description": "Tope del precio comparado: pesos por mes en alquiler (alquiler + gastos comunes), dólares en venta.", "exclusiveMinimum": 0, "type": "number" }, "neighborhood": { "maxLength": 60, "type": "string" }, "operation": { "description": "rent = alquiler (default), sale = venta.", "enum": [ "rent", "sale" ], "type": "string" }, "page": { "maximum": 100, "minimum": 1, "type": "integer" }, "perPage": { "maximum": 24, "minimum": 1, "type": "integer" }, "signal": { "enum": [ "total_price", "price_per_m2" ], "type": "string" }, "sort": { "enum": [ "evidence", "discount", "price", "recent" ], "type": "string" }, "type": { "enum": [ "apartamento", "casa" ], "type": "string" } }, "type": "object" }, "name": "find_property_opportunities", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "address": { "description": "Calle y número (\"Av. Italia 2500\"), esquina (\"Rivera y Soca\"), barrio o nombre del lugar (\"Hospital de Clínicas\").", "maxLength": 180, "minLength": 4, "type": "string" }, "department": { "description": "Departamento de Uruguay con tildes, p. ej. \"Montevideo\", \"Canelones\", \"Maldonado\", \"Colonia\".", "maxLength": 40, "type": "string" } }, "required": [ "address" ], "type": "object" }, "name": "geocode_uy_address", "outputSchema": null }, { "description": "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>.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "key": { "maxLength": 300, "minLength": 3, "type": "string" } }, "required": [ "key" ], "type": "object" }, "name": "get_car", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "currency": { "description": "ISO currency code, e.g. USD", "type": "string" }, "origin": { "description": "Exchange house id, e.g. brou, itau, prex", "type": "string" }, "period": { "description": "Months of history (default 6)", "exclusiveMinimum": 0, "maximum": 60, "type": "integer" } }, "required": [ "origin", "currency" ], "type": "object" }, "name": "get_evolution", "outputSchema": null }, { "description": "Latest Uruguayan dollar/economy headlines (Google News), de-duplicated and newest first.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "limit": { "description": "Max headlines (default 12)", "exclusiveMinimum": 0, "maximum": 30, "type": "integer" } }, "type": "object" }, "name": "get_news", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "currency": { "description": "ISO currency code, e.g. USD, EUR, ARS, BRL", "type": "string" } }, "required": [ "currency" ], "type": "object" }, "name": "get_rates", "outputSchema": null }, { "description": "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>.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "key": { "description": "key de la vivienda o URL de su ficha.", "maxLength": 600, "minLength": 3, "type": "string" } }, "required": [ "key" ], "type": "object" }, "name": "get_rental", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "list_directories", "outputSchema": null }, { "description": "All Uruguayan exchange houses (casas de cambio) tracked, with display name, website, and departments served.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "list_houses", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "condition": { "description": "cheapest (default: usado cuando conviene) o new (todo nuevo).", "enum": [ "cheapest", "new" ], "type": "string" }, "have": { "description": "Lo que ya tiene: \"heladera\", \"colchón\", \"microondas\"…", "items": { "maxLength": 40, "type": "string" }, "maxItems": 40, "type": "array" }, "level": { "description": "minima (lo imprescindible, default), decente, completa.", "enum": [ "minima", "decente", "completa" ], "type": "string" } }, "type": "object" }, "name": "plan_home_setup", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "department": { "description": "Departamento (default Montevideo).", "maxLength": 40, "type": "string" }, "excludedNeighborhoods": { "description": "Barrios a descartar.", "items": { "maxLength": 60, "type": "string" }, "maxItems": 20, "type": "array" }, "furnished": { "type": "boolean" }, "housingBudgetUyu": { "description": "Presupuesto mensual para vivienda en pesos (alquiler + gastos comunes).", "exclusiveMinimum": 0, "type": "number" }, "includeOverBudget": { "description": "Incluir los que se pasan del presupuesto (marcados).", "type": "boolean" }, "includeReported": { "description": "Incluir avisos reportados como no disponibles (default no).", "type": "boolean" }, "limit": { "description": "Resultados a devolver (default 10).", "maximum": 24, "minimum": 1, "type": "integer" }, "minArea": { "description": "m² mínimos.", "minimum": 0, "type": "number" }, "minBedrooms": { "maximum": 20, "minimum": 0, "type": "integer" }, "onlyPreferred": { "description": "true = sólo los barrios preferidos; false = los prefiere pero no descarta otros.", "type": "boolean" }, "otherExpensesUyu": { "description": "Otros gastos fijos mensuales del hogar en pesos.", "minimum": 0, "type": "number" }, "parking": { "type": "boolean" }, "people": { "items": { "additionalProperties": false, "properties": { "destinations": { "items": { "additionalProperties": false, "properties": { "address": { "description": "Dirección, esquina o nombre del lugar (\"Facultad de Ingeniería\", \"el Centro\"); se geocodifica sola. Alternativa: lat/lng.", "maxLength": 180, "type": "string" }, "daysPerWeek": { "description": "Días por semana que va (default 5).", "maximum": 7, "minimum": 0, "type": "integer" }, "kind": { "enum": [ "work", "study", "other" ], "type": "string" }, "label": { "description": "Nombre corto: \"Trabajo\", \"Facultad\", \"Colegio de los chicos\".", "maxLength": 40, "type": "string" }, "lat": { "maximum": -30, "minimum": -35.5, "type": "number" }, "lng": { "maximum": -53, "minimum": -58.6, "type": "number" }, "maxKm": { "description": "Distancia máxima aceptable en línea recta. Default según modo: caminando 2, bici 6, ómnibus 8, auto 15 km.", "exclusiveMinimum": 0, "maximum": 300, "type": "number" }, "mode": { "description": "Cómo va (default transit = ómnibus).", "enum": [ "walking", "bicycling", "transit", "driving" ], "type": "string" } }, "required": [ "label" ], "type": "object" }, "maxItems": 4, "type": "array" }, "incomeUyu": { "description": "Ingreso mensual líquido en pesos (0 si no tiene).", "minimum": 0, "type": "number" }, "label": { "description": "\"Ana\", \"Pareja\", \"Hijo\"…", "maxLength": 40, "type": "string" }, "remoteDays": { "description": "Días de home office por semana.", "maximum": 7, "minimum": 0, "type": "integer" } }, "required": [ "label" ], "type": "object" }, "maxItems": 8, "minItems": 1, "type": "array" }, "pets": { "description": "Necesitan que acepte mascotas.", "type": "boolean" }, "preferredNeighborhoods": { "description": "Barrios preferidos (\"Pocitos\" o \"Pocitos, Montevideo\").", "items": { "maxLength": 60, "type": "string" }, "maxItems": 20, "type": "array" }, "priority": { "description": "Qué pesa más: equilibrado (default), precio o cercanía.", "enum": [ "balanced", "budget", "commute" ], "type": "string" }, "savingsUyu": { "description": "Ahorro mensual que quieren mantener.", "minimum": 0, "type": "number" }, "transportUyu": { "description": "Gasto mensual en transporte.", "minimum": 0, "type": "number" }, "types": { "items": { "enum": [ "apartamento", "casa" ], "type": "string" }, "maxItems": 2, "type": "array" } }, "required": [ "people", "housingBudgetUyu" ], "type": "object" }, "name": "rank_rentals_for_household", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "offset": { "description": "Desde qué carácter seguir (lo indica la respuesta anterior).", "minimum": 0, "type": "integer" }, "page": { "description": "URL o ruta: \"https://cambio-uruguay.com/alquilar-en-uruguay\" o \"/alquilar-en-uruguay\".", "maxLength": 300, "minLength": 1, "type": "string" } }, "required": [ "page" ], "type": "object" }, "name": "read_page", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "bedrooms": { "maximum": 10, "minimum": 0, "type": "integer" }, "currency": { "description": "Moneda de los avisos a analizar (default UYU: los avisos en pesos).", "enum": [ "UYU", "USD" ], "type": "string" }, "department": { "description": "Departamento de Uruguay con tildes, p. ej. \"Montevideo\", \"Canelones\", \"Maldonado\", \"Colonia\".", "maxLength": 40, "type": "string" }, "neighborhood": { "description": "Barrio (requiere department).", "maxLength": 60, "type": "string" }, "type": { "enum": [ "apartamento", "casa" ], "type": "string" } }, "type": "object" }, "name": "rental_market_stats", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "brand": { "maxLength": 40, "type": "string" }, "condition": { "description": "used = sólo con banda de usados, al precio usado.", "enum": [ "new", "used", "any" ], "type": "string" }, "limit": { "maximum": 30, "minimum": 1, "type": "integer" }, "maxPriceUyu": { "description": "Precio máximo en pesos.", "exclusiveMinimum": 0, "type": "number" }, "text": { "description": "Palabras a buscar: \"heladera no frost\", \"iphone 13\", \"silla ergonómica\".", "maxLength": 80, "type": "string" }, "vertical": { "description": "Directorio (default: todas).", "enum": [ "celulares", "sillas", "hogar", "monopatines", "bicicletas-electricas", "todas" ], "type": "string" } }, "type": "object" }, "name": "search_products", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "agency": { "description": "Clave de una inmobiliaria.", "maxLength": 80, "type": "string" }, "amenities": { "description": "Comodidades que debe tener (todas).", "items": { "enum": [ "gimnasio", "piscina", "parrillero", "ascensor", "aire", "balcon", "lavadero", "calefaccion", "jardin", "sauna", "salon" ], "type": "string" }, "maxItems": 11, "type": "array" }, "areaMax": { "description": "m² máximos.", "exclusiveMinimum": 0, "type": "number" }, "areaMin": { "description": "m² mínimos.", "exclusiveMinimum": 0, "type": "number" }, "bathrooms": { "description": "Baños mínimos.", "maximum": 20, "minimum": 1, "type": "integer" }, "bedrooms": { "description": "Dormitorios mínimos (0 = monoambiente). Con bedroomsExact=true, exactos.", "maximum": 10, "minimum": 0, "type": "integer" }, "bedroomsExact": { "type": "boolean" }, "department": { "description": "Departamento de Uruguay con tildes, p. ej. \"Montevideo\", \"Canelones\", \"Maldonado\", \"Colonia\".", "maxLength": 40, "type": "string" }, "expensesMaxUyu": { "description": "Gastos comunes máximos en pesos. Excluye avisos que no los publican.", "minimum": 0, "type": "number" }, "furnished": { "description": "Amueblado.", "type": "boolean" }, "guarantees": { "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.", "items": { "enum": [ "anda", "contaduria", "aseguradora", "propietaria", "deposito", "bhu", "aConvenir" ], "type": "string" }, "maxItems": 7, "type": "array" }, "hideReported": { "description": "Avisos que la comunidad reportó como no disponibles. Default \"multiple\" (oculta con 2+ reportes).", "enum": [ "none", "any", "multiple" ], "type": "string" }, "listedCurrency": { "description": "Sólo avisos publicados en esa moneda. NO cambia la moneda de los topes: priceMinUyu/priceMaxUyu son siempre pesos.", "enum": [ "UYU", "USD" ], "type": "string" }, "monthlyMaxUyu": { "description": "Tope del TOTAL mensual en pesos (alquiler + gastos comunes). Excluye avisos que no publican gastos comunes.", "exclusiveMinimum": 0, "type": "number" }, "near": { "additionalProperties": false, "description": "Buscar cerca de un punto: ordena por distancia y, con radiusKm, filtra. Sólo cuentan avisos con ubicación propia.", "properties": { "address": { "description": "Dirección, esquina, barrio o nombre de lugar en Uruguay: \"Bulevar Artigas 1234\", \"18 de Julio y Ejido\", \"Montevideo Shopping\".", "maxLength": 180, "type": "string" }, "label": { "description": "Nombre del punto, p. ej. \"Trabajo\".", "maxLength": 60, "type": "string" }, "lat": { "maximum": -30, "minimum": -35.5, "type": "number" }, "lng": { "maximum": -53, "minimum": -58.6, "type": "number" }, "radiusKm": { "description": "Quedarse sólo con viviendas a esta distancia en línea recta (km). Sin radio, sólo ordena por cercanía.", "exclusiveMinimum": 0, "maximum": 30, "type": "number" } }, "type": "object" }, "neighborhoodQuality": { "description": "Barrios que están entre los mejores en: denuncias (menos delitos), agua (menos cortes), luz, saneamiento, limpieza, alumbrado.", "items": { "enum": [ "denuncias", "agua", "luz", "saneamiento", "limpieza", "alumbrado" ], "type": "string" }, "maxItems": 6, "type": "array" }, "neighborhoods": { "description": "Barrios como aparecen en los avisos: \"Pocitos\", \"Cordón\", \"Punta Carretas\", \"Malvín\"…", "items": { "maxLength": 60, "type": "string" }, "maxItems": 20, "type": "array" }, "ownerDirect": { "description": "Sólo dueño directo (sin inmobiliaria).", "type": "boolean" }, "page": { "maximum": 200, "minimum": 1, "type": "integer" }, "parking": { "description": "Con garaje.", "type": "boolean" }, "perPage": { "description": "Resultados a devolver (default 10).", "maximum": 24, "minimum": 1, "type": "integer" }, "pets": { "description": "Sólo avisos que aceptan mascotas explícitamente.", "type": "boolean" }, "priceMaxUyu": { "description": "Alquiler máximo en PESOS (sin gastos comunes). Los avisos en dólares se comparan convertidos.", "exclusiveMinimum": 0, "type": "number" }, "priceMinUyu": { "description": "Alquiler mínimo en PESOS (sin gastos comunes). Si la persona habla en dólares, convertí (1 USD ≈ 41 UYU, o usá convert).", "exclusiveMinimum": 0, "type": "number" }, "sort": { "description": "recientes (default), precio, precio-desc, total (menor total mensual), precio-m2, metros. Con near se ordena por distancia.", "enum": [ "recientes", "precio", "precio-desc", "total", "precio-m2", "metros", "distancia" ], "type": "string" }, "source": { "description": "Un solo portal.", "enum": [ "mercadolibre", "infocasas", "facebook", "elpais", "casasweb" ], "type": "string" }, "text": { "description": "Texto libre en título y descripción, p. ej. \"terraza\", \"patio\".", "maxLength": 80, "type": "string" }, "types": { "description": "\"vivienda\" = apartamento+casa+habitación. Default: todos los tipos (incluye locales y oficinas), así que para vivir pasá [\"vivienda\"] o [\"apartamento\"].", "items": { "enum": [ "vivienda", "apartamento", "casa", "habitacion", "local", "oficina", "garaje", "terreno", "otro" ], "type": "string" }, "maxItems": 5, "type": "array" } }, "type": "object" }, "name": "search_rentals", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "limit": { "description": "Páginas con texto a devolver (default 6).", "maximum": 10, "minimum": 1, "type": "integer" }, "query": { "description": "Pregunta o palabras clave en español: \"franquicia courier\", \"cuánto cobra el BROU por transferir\", \"aguinaldo\".", "maxLength": 200, "minLength": 2, "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_site", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "body": { "description": "Carrocería: sedan, hatchback, suv, pickup, rural (familiar), furgon, monovolumen, coupe, cabriolet.", "enum": [ "sedan", "hatchback", "suv", "pickup", "rural", "furgon", "monovolumen", "coupe", "cabriolet" ], "type": "string" }, "brand": { "description": "Marca: \"Volkswagen\", \"Chevrolet\", \"Toyota\"…", "maxLength": 40, "type": "string" }, "color": { "description": "blanco, gris, plata, rojo, azul, negro, verde, celeste, beige, marron, dorado, bordo, naranja, amarillo, violeta.", "maxLength": 20, "type": "string" }, "department": { "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" ], "type": "string" }, "doors": { "maximum": 5, "minimum": 2, "type": "integer" }, "fuel": { "enum": [ "nafta", "diesel", "electrico", "hibrido", "gnc" ], "type": "string" }, "kmMax": { "exclusiveMinimum": 0, "type": "integer" }, "limit": { "description": "Resultados a devolver (default 10).", "maximum": 24, "minimum": 1, "type": "integer" }, "maxLitersPer100Km": { "description": "Consumo máximo (litros cada 100 km).", "exclusiveMinimum": 0, "maximum": 30, "type": "number" }, "model": { "description": "Modelo: \"Gol\", \"Onix\", \"Hilux\" (requiere brand).", "maxLength": 60, "type": "string" }, "noDeclaredRisk": { "description": "Excluir los que declaran deuda, choque, papeles, recupero, etc.", "type": "boolean" }, "onlyOpportunities": { "description": "Sólo pedidos por debajo de autos iguales.", "type": "boolean" }, "page": { "maximum": 500, "minimum": 1, "type": "integer" }, "priceDrop": { "description": "Sólo los que bajaron de precio.", "type": "boolean" }, "priceMaxUsd": { "description": "Precio máximo en dólares.", "exclusiveMinimum": 0, "maximum": 1000000, "type": "number" }, "priceMinUsd": { "exclusiveMinimum": 0, "type": "number" }, "seller": { "description": "dealer = automotora, private = particular.", "enum": [ "dealer", "private" ], "type": "string" }, "sinceDays": { "description": "Publicados en los últimos N días.", "maximum": 365, "minimum": 1, "type": "integer" }, "sort": { "enum": [ "recent", "price_asc", "price_desc", "km_asc", "year_desc", "consumption_asc" ], "type": "string" }, "source": { "description": "mercadolibre, facebook, duenodirecto, clasiautos, julio, shoppingdeautos, carper, fidocar, motorlider, carone.", "maxLength": 30, "type": "string" }, "text": { "description": "Texto libre: \"4x4\", \"full\", \"cuero\".", "maxLength": 80, "type": "string" }, "transmission": { "enum": [ "manual", "automatica" ], "type": "string" }, "yearMax": { "maximum": 2100, "minimum": 1950, "type": "integer" }, "yearMin": { "maximum": 2100, "minimum": 1950, "type": "integer" } }, "type": "object" }, "name": "search_used_cars", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "site_sections", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "department": { "maxLength": 40, "type": "string" }, "limit": { "maximum": 25, "minimum": 1, "type": "integer" }, "text": { "description": "Artículo: \"aceite girasol\", \"leche\", \"arroz\".", "maxLength": 80, "type": "string" } }, "type": "object" }, "name": "supermarket_prices", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:2312e20608f1cc49ff9d2c63ad14ffacc9e9aa632645ce48d28e81483ff2659d | sha256sum