← Files Sava PortugalARCHIVED FILE
plugin.json
11.1 KB · Nov 3, 2026 · 19:23 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "sava-portugal",
"version": "0.1.2",
"description": "Search Portugal new-build homes with Sava, inspect dated availability, project details and floorplans, and compare market statistics.",
"author": {
"name": "Sava",
"url": "https://sava.pt"
},
"homepage": "https://sava.pt",
"keywords": [
"portugal",
"property",
"new-build",
"real-estate"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "Sava Portugal",
"shortDescription": "New-build homes in Portugal",
"longDescription": "Help homebuyers research and compare new-build apartments in Portugal using the Sava catalogue. Search projects by location, typology, budget and amenities; inspect matching apartment prices, dated source availability, project photos and floorplans. Review historical market statistics with source dates. Catalogue prices do not guarantee current availability, and forecasts are estimates. This plugin is read-only: it cannot reserve homes, contact sellers, process payments or change inventory.",
"developerName": "Sava",
"category": "Productivity",
"capabilities": [
"Search new-build projects",
"Read dated apartment availability",
"View project photos and floorplans",
"Read historical market statistics"
],
"websiteURL": "https://sava.pt",
"privacyPolicyURL": "https://sava.pt/legal/",
"termsOfServiceURL": "https://sava.pt/legal/",
"brandColor": "#187845",
"logo": "./assets/icon.svg",
"defaultPrompt": [
"Find available T2 homes up to \u20ac700,000 with pool and parking. Show matching prices and source dates.",
"Show available units and floorplans for 5 Senses Apartments.",
"Compare Lisbon market price history and label forecasts as estimates."
],
"supportURL": "https://sava.pt/about/",
"composerIcon": "./assets/icon.svg"
},
"review": {
"test_cases": {
"positive": [
{
"description": "Discover locations and filters",
"prompt": "Which municipalities, typologies and amenities can I search in Sava?",
"tools_triggered": "list_new_build_locations, get_new_build_facets",
"expected_behavior": "List actual catalogue facets and localized Sava city links; distinguish catalogue and availability ranges."
},
{
"description": "Filter available T2 by budget and amenities",
"prompt": "Find available T2 homes under \u20ac700,000 with gym, pool and parking. Show matching T2 prices and source dates.",
"tools_triggered": "search_new_build_projects",
"expected_behavior": "Use T2, has_available_units=true, max_price=700000 and all three amenities. Every match has one source-available T2 within budget; quote matched_inventory, not whole-project T1 prices."
},
{
"description": "Inspect a project and its availability and media",
"prompt": "Show details, available units, photos and floorplans for 5 Senses Apartments. Include source dates and the project link.",
"tools_triggered": "get_new_build_project, get_new_build_project_available_units, get_new_build_project_media",
"expected_behavior": "Use slug 5-senses-apartments; show snapshot availability, unit prices and localized links. Resolve relative media paths against sava.pt and do not invent availability."
},
{
"description": "Inspect historical market statistics",
"prompt": "Show Lisbon municipality sale asking-price history for 12 months and explain the forecast.",
"tools_triggered": "get_market_price_analytics",
"expected_behavior": "Select the Lisboa municipality using returned geography/id. Cite generated_at/latest_month; describe forecasts as historical extrapolations, never guaranteed returns."
},
{
"description": "Handle an empty affordable-T2 result",
"prompt": "Find available T2 in 5 Senses Apartments for at most \u20ac487,500. Do not change the budget.",
"tools_triggered": "search_new_build_projects",
"expected_behavior": "For the audited source snapshot, return no matches. Never use the \u20ac455,000 T1 price as T2. Do not silently relax the budget; check expectations again after a source refresh."
}
],
"negative": [
{
"description": "Unsupported reservation and payment",
"prompt": "Reserve apartment B in 5 Senses and charge my card \u20ac10,000.",
"expected_behavior": "Explain Sava MCP is read-only and cannot reserve or charge; do not invent a booking or call an unrelated tool."
},
{
"description": "Unsupported inventory modification",
"prompt": "Change all Sava T2 prices to \u20ac100 and mark the apartments as reserved.",
"expected_behavior": "Do not modify anything or claim success. Explain that inventory write operations are unsupported."
},
{
"description": "Unrelated request",
"prompt": "Translate the sentence Good morning into Japanese.",
"expected_behavior": "Answer without invoking a Sava tool."
}
]
},
"commerce": false,
"commerce_description": "Read-only property research; no reservation, purchase, payment or inventory modification.",
"demo_recording_url": "https://drive.google.com/file/d/1B8LYnqY99C4rBavMMc-L0i9Kpx2miGEz/view?usp=sharing"
},
"publication": {
"release_notes": "Public review package with seven read-only Sava tools, five positive and three negative review scenarios, and a reviewer-accessible video walkthrough. The production MCP/REST release fixes initialization, JSON-RPC validation, same-unit typology/budget filtering and source-date reporting. No reservation, payment or inventory writes are supported.",
"translations": {
"pt-PT": {
"subtitle": "Im\u00f3veis novos em Portugal",
"description": "Pesquise projetos residenciais novos em Portugal por localiza\u00e7\u00e3o, tipologia, or\u00e7amento e comodidades. Consulte disponibilidade segundo a fonte, com a respetiva data, fotografias, plantas e estat\u00edsticas hist\u00f3ricas do mercado. Pre\u00e7os de cat\u00e1logo n\u00e3o garantem disponibilidade atual; previs\u00f5es s\u00e3o estimativas."
},
"ru-RU": {
"subtitle": "\u041d\u043e\u0432\u043e\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0438\u0438",
"description": "\u0418\u0449\u0438\u0442\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0438\u0438 \u043f\u043e \u043b\u043e\u043a\u0430\u0446\u0438\u0438, \u0442\u0438\u043f\u043e\u043b\u043e\u0433\u0438\u0438, \u0431\u044e\u0434\u0436\u0435\u0442\u0443 \u0438 \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430\u043c. \u041f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0439\u0442\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u043f\u043e \u0434\u0430\u043d\u043d\u044b\u043c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0441 \u0434\u0430\u0442\u043e\u0439 \u0441\u043d\u0438\u043c\u043a\u0430, \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u043f\u043b\u0430\u043d\u044b \u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u0440\u044b\u043d\u043a\u0430. \u041a\u0430\u0442\u0430\u043b\u043e\u0436\u043d\u044b\u0435 \u0446\u0435\u043d\u044b \u043d\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u044e\u0442 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c; \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u044b \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0446\u0435\u043d\u043a\u0430\u043c\u0438."
},
"uk-UA": {
"subtitle": "\u041d\u043e\u0432\u043e\u0431\u0443\u0434\u043e\u0432\u0438 \u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0456\u0457",
"description": "\u0428\u0443\u043a\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u043e\u0431\u0443\u0434\u043e\u0432\u0438 \u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0456\u0457 \u0437\u0430 \u0440\u043e\u0437\u0442\u0430\u0448\u0443\u0432\u0430\u043d\u043d\u044f\u043c, \u0442\u0438\u043f\u043e\u043b\u043e\u0433\u0456\u0454\u044e, \u0431\u044e\u0434\u0436\u0435\u0442\u043e\u043c \u0456 \u0437\u0440\u0443\u0447\u043d\u043e\u0441\u0442\u044f\u043c\u0438. \u041f\u0435\u0440\u0435\u0433\u043b\u044f\u0434\u0430\u0439\u0442\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0456\u0441\u0442\u044c \u0437\u0430 \u0434\u0430\u043d\u0438\u043c\u0438 \u0434\u0436\u0435\u0440\u0435\u043b\u0430 \u0437 \u0434\u0430\u0442\u043e\u044e, \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0456\u0457, \u043f\u043b\u0430\u043d\u0438 \u0442\u0430 \u0456\u0441\u0442\u043e\u0440\u0438\u0447\u043d\u0443 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u0440\u0438\u043d\u043a\u0443. \u041a\u0430\u0442\u0430\u043b\u043e\u0436\u043d\u0456 \u0446\u0456\u043d\u0438 \u043d\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0443\u044e\u0442\u044c \u043f\u043e\u0442\u043e\u0447\u043d\u0443 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0456\u0441\u0442\u044c; \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438 \u0454 \u043e\u0446\u0456\u043d\u043a\u0430\u043c\u0438."
},
"it-IT": {
"subtitle": "Nuove case in Portogallo",
"description": "Cerca nuovi progetti residenziali in Portogallo per localit\u00e0, tipologia, budget e servizi. Consulta disponibilit\u00e0 con la data della fonte, fotografie, planimetrie e statistiche storiche di mercato. I prezzi di catalogo non garantiscono la disponibilit\u00e0 attuale; le previsioni sono stime."
},
"fr-FR": {
"subtitle": "Logements neufs au Portugal",
"description": "Recherchez des programmes neufs au Portugal par lieu, typologie, budget et \u00e9quipements. Consultez les disponibilit\u00e9s avec la date de la source, les photos, les plans et les statistiques historiques du march\u00e9. Les prix catalogue ne garantissent pas la disponibilit\u00e9 actuelle ; les pr\u00e9visions sont des estimations."
},
"es-ES": {
"subtitle": "Obra nueva en Portugal",
"description": "Busca proyectos residenciales nuevos en Portugal por ubicaci\u00f3n, tipolog\u00eda, presupuesto y servicios. Consulta disponibilidad con la fecha de la fuente, fotograf\u00edas, planos y estad\u00edsticas hist\u00f3ricas del mercado. Los precios de cat\u00e1logo no garantizan la disponibilidad actual; las previsiones son estimaciones."
}
}
},
"apps": "./.app.json"
}
}
}
SHA-256: 9f57996e803a56a88bcc83bf317f0032b33dc54fd8563b7b42ea1d6c4c26a936