Comprehensive Model Context Protocol server for managing Home Assistant through AI assistants.
Portugal (public data) is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Portugal public data: IPMA weather, INE, Banco de Portugal, Parliament, contracts, SNS, fuel.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user portugal-public-data-mcp '--' uvx portugal-mcp
# 2 — ask your agent for something these tools do
# sns_find_institutions, sns_emergency_stats, sns_surgery_wait_stats and 44 more
Portugal (public data) costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. This one runs on your machine: your client starts Portugal (public data) as a process under your own user, with your files and your network, so the tool surface below is what it can do to your computer rather than to a server somewhere else. Its scan result is on the Security tab — read the surface before you approve it.
This is a public server: you run it yourself and this marketplace is not in the path. You need uv (docs.astral.sh/uv): uvx comes with it. Claude Code registers it in one command; --scope user makes it available in every project. The '--' is in quotes so that PowerShell passes it on.
claude mcp add --scope user portugal-public-data-mcp '--' uvx portugal-mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
Nothing is required, but it can take PORTUGAL_MCP_FEATURES (Optional comma list of features to load (e.g. clima,geo,ine) or to drop (-contratos). Default: all.) if you want to set it.
One config entry your client uses to start the process locally. A local server runs with your file system and your network, which is why it is priced without metering.
47 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Read from its source code. A server that builds its tool list when it starts can list more tools than this.
Find SNS hospitals / local health units (ULS) by name, or the nearest ones to a coordinate.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Part of the name, accent-insensitive, e.g. "Santa Maria", "Faro", "ULS Algarve". |
| lat | number | no | — |
| lon | number | no | — |
| emergency_only | boolean | no | Only places that report emergency-department data. |
| limit | integer | no | Max results (default 10, max 50). |
Emergency-department (urgência) visits per month: by type and by Manchester triage colour.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| institution | string | no | Hospital or ULS name, accent-insensitive ("Santa Maria", "São João", "Hospital de Faro"). A hospital is mapped to its ULS; check scope. |
| region | string | no | Norte | Centro | LVT (Lisboa) | Alentejo | Algarve. Ignored if institution is given. |
| period | string | no | Latest month to include, "YYYY-MM" (default: newest available). |
| months | integer | no | How many months back to return (default 6, max 24). |
Surgery access indicators per month: surgical waiting list, % within the guaranteed maximum time, mean days from admission to surgery, and surgeries performed.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| institution | string | no | Hospital or ULS name ("Santa Maria", "Coimbra", "IPO Porto"); mapped to its ULS. |
| region | string | no | Norte | Centro | LVT (Lisboa) | Alentejo | Algarve. Ignored if institution is given. |
| period | string | no | Latest month to include, "YYYY-MM" (default: newest available). |
| months | integer | no | How many months back (default 6, max 24). |
Hospital outpatient consultations per month and the % of FIRST specialist consultations (referred by a family doctor via CTH/SIGA) held within the guaranteed maximum time (TMRG).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| institution | string | no | Hospital or ULS name; mapped to its ULS. |
| region | string | no | Norte | Centro | LVT (Lisboa) | Alentejo | Algarve. Ignored if institution is given. |
| period | string | no | Latest month to include, "YYYY-MM" (default: newest available). |
| months | integer | no | How many months back (default 6, max 24). |
Search the ~150 datasets of the SNS Transparency portal (titles and descriptions are in Portuguese).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Keywords, e.g. "ocupação internamento", "partos", "urgência". Empty = list all (id + title). |
| limit | integer | no | Max results (default 10, max 50; ignored when listing all). |
Run an ODSQL query on any SNS Transparency portal dataset (Opendatasoft Explore API v2.1).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| dataset_id | string | yes | e.g. "ocupacao-do-internamento" (from sns_search_datasets). |
| where | string | no | — |
| select | string | no | — |
| group_by | string | no | — |
| order_by | string | no | — |
| limit | integer | no | Rows to return (default 20, max 100). |
| offset | integer | no | Skip rows, for paging. |
Cheapest fuel stations in Portugal for one fuel type, cheapest first (official DGEG prices).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| fuel_type | string | yes | A DGEG fuel name or id, e.g. "Gasóleo simples" (regular diesel, 2101), "Gasolina simples 95" (regular 95 petrol, 3201), "Gasolina 98", "GPL Auto" (LPG), or plain words: "diesel", "petrol", "95", "98", |
| district | string | no | Portuguese district, e.g. "Lisboa", "Porto", "Faro". |
| municipality | string | no | Municipality (concelho), e.g. "Sintra", "Vila Nova de Gaia". Overrides district. |
| lat | number | no | — |
| lon | number | no | — |
| radius_km | number | no | Search radius around lat/lon (default 10). |
| brand | string | no | Only this brand (substring match), e.g. "Galp", "Prio", "Intermarché". |
| limit | integer | no | How many stations to return (default 10, max 50). |
Full details of one fuel station: every fuel it sells with price and last update, opening hours, services (car wash, shop, tyre air...) and payment methods.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| station_id | integer | yes | — |
List DGEG fuel types (id, name, unit) and the districts accepted by fuel_prices.
Takes no parameters.
Public EV charging sites near a point in Portugal (MOBI.E network), nearest first, with live status and the price the network publishes for each charging point.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| lat | number | yes | — |
| lon | number | yes | — |
| radius_km | number | no | Search radius (default 5, max 100). |
| min_power_kw | number | no | Only points that can deliver at least this power, e.g. 50 for fast DC. |
| connector | string | no | "CCS" (CCS2), "Type 2", "CHAdeMO", "CEE", or "DC" / "AC". |
| available_only | boolean | no | Only points whose live status is "available" right now. |
| limit | integer | no | Max sites to return (default 10, max 50). |
Everything about one MOBI.E charging site: all its points with live status, power, connectors and price, plus operator contact, opening hours and accepted authentication (app, RFID card, credit card...).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site_or_point_id | string | yes | — |
Is a medicine in shortage in Portugal? Checks Infarmed's published availability information.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| medicine | string | yes | Brand name or active substance, optionally with strength/form. |
| limit | integer | no | Max rows returned per list (default 15). |
Pharmacies in a Portuguese municipality, with which ones are on duty today and open now.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| city | string | no | Municipality or town/parish, e.g. "Lisboa", "Porto", "Cascais", "Alvalade, Lisboa" (add ", <municipality>" to disambiguate a town). |
| lat | number | no | — |
| lon | number | no | — |
| radius_km | number | no | Keep only pharmacies within this distance of lat/lon. |
| on_duty_only | boolean | no | Only pharmacies on the duty roster today. |
| open_now_only | boolean | no | Only pharmacies open right now. |
| limit | integer | no | Max pharmacies returned (default 20, max 100). |
One-shot answer to "I need medicine X in city Y — what do I do?" in Portugal.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| medicine | string | yes | Brand name or active substance, e.g. "quetiapina", "Brufen 400". |
| city | string | no | Municipality or town, e.g. "Lisboa". Or give lat/lon instead. |
| lat | number | no | — |
| lon | number | no | — |
| limit | integer | no | Max pharmacies returned (default 8). |
Verified help lines in Portugal for medicine problems: 112, SNS 24, Linha 1400, Infarmed.
Takes no parameters.
Find Carris Metropolitana bus stops by name and/or near a coordinate.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Text to match in the stop name (accent/case-insensitive, all words must match), e.g. "Gare do Oriente", "Cacilhas terminal". A 6-digit stop id also works. |
| lat | number | no | — |
| lon | number | no | — |
| radius_m | number | no | Only stops within this many metres of lat/lon. Default 500 when no query is given; unlimited when a query is given. |
| limit | integer | no | Max stops to return (default 10, max 50). |
Upcoming buses at a Carris Metropolitana stop, real-time where available.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| stop_id | string | yes | 6-digit stop id, e.g. "060361". |
| line_id | string | no | Optional 4-digit line number to keep only that line, e.g. "2794". |
| limit | integer | no | Max arrivals to return (default 10, max 50). |
Details of a Carris Metropolitana line: name, route ends, directions, municipalities.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| line | string | yes | 4-digit line number ("4715") or free text matched against line names. |
| include_stops | boolean | no | Also list every stop (id + name) in order for each direction. |
Service alerts (detours, works, strikes, stops not served) for Carris Metropolitana.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| line_id | string | no | 4-digit line number, e.g. "4407". |
| stop_id | string | no | 6-digit stop id, e.g. "160584". |
| include_upcoming | boolean | no | Also return alerts that start in the future (default True). |
| language | string | no | Preferred language ("pt" or "en"); falls back to what exists. |
| limit | integer | no | Max alerts to return (default 20, max 100). |
Live GPS positions of the buses currently running on a Carris Metropolitana line.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| line_id | string | yes | 4-digit line number, e.g. "3508". |
Which transport operators have timetables here, and what each one covers.
Takes no parameters.
Find train stations, metro stations or bus/tram stops by name, or the nearest to a point.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | e.g. "Oriente", "Porto Campanhã", "Marquês de Pombal", "Prazeres". |
| operator | string | no | "cp", "metro_lisboa", "carris" or "fertagus". Default: all of them. |
| lat | number | no | — |
| lon | number | no | — |
| limit | integer | no | — |
Scheduled departures from a station or stop (official timetable, not live).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| stop | string | yes | station or stop name, e.g. "Lisboa Oriente", "Cais do Sodré", "Baixa-Chiado", "Prazeres". |
| operator | string | no | "cp", "metro_lisboa", "carris" or "fertagus"; default: every operator that has the stop. |
| when | string | no | ISO date-time in Lisbon time, e.g. "2026-11-03T08:00". Default: now. |
| window_minutes | integer | no | how far ahead to look (max 720). |
| line | string | no | keep only a line or destination, e.g. "28E", "Sintra", "Azul". |
| limit | integer | no | — |
Direct services between two stations (no changes), with departure, arrival and duration.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| origin | string | yes | — |
| destination | string | yes | — |
| operator | string | no | "cp", "metro_lisboa", "carris" or "fertagus"; default: try all. |
| when | string | no | ISO date-time in Lisbon time; default now. |
| window_minutes | integer | no | departures within this window (max 1440). |
| limit | integer | no | — |
Find Banco de Portugal statistical series by keyword.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | — |
| domain_id | integer | no | — |
| lang | string | no | "PT" or "EN" (labels are richer in PT). |
| limit | integer | no | — |
Observations of Banco de Portugal series (ids from bpstat_search).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| series_ids | array | yes | one or more series ids (max 10), e.g. [12559924]. |
| last_n | integer | no | latest observations per series (1-500). Ignored when since is given. |
| since | string | no | "YYYY-MM-DD" — return every observation from this date. |
| lang | string | no | "PT" or "EN". |
5-day weather forecast for a place in Portugal (IPMA, official).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| place | string | no | district capital or island town, e.g. "Lisboa", "Porto", "Faro", "Funchal", "Ponta Delgada". |
| lat | number | no | — |
| lon | number | no | — |
Active IPMA weather warnings (rain, wind, heat, cold, snow, fog, sea, thunderstorms).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| area | string | no | optional district or island group, e.g. "Lisboa", "Madeira", "Açores". Omit for the whole country. |
| include_green | boolean | no | also list green (no-warning) entries. Default false. |
Wildfire danger (RCM, risco de incêndio rural) for a municipality, today or tomorrow.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| municipality | string | yes | concelho name, e.g. "Sintra", "Monchique". |
| day | integer | no | 0 = today, 1 = tomorrow. |
Coastal sea forecast: wave height and period, wave direction, sea temperature (IPMA).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| place | string | no | coastal spot, e.g. "Nazaré", "Peniche", "Faro", "Funchal". Or pass lat/lon for the nearest one. |
| lat | number | no | — |
| lon | number | no | — |
| day | integer | no | 0 = today, 1 = tomorrow, 2 = the day after. |
Recent earthquakes recorded by IPMA.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| region | string | no | "mainland" (mainland Portugal and Madeira) or "azores". |
| days | integer | no | look back this many days (max 30). |
| min_magnitude | number | no | only quakes at or above this magnitude. |
| limit | integer | no | max rows (newest first). |
Search Portuguese public contracts (Portal BASE) for one year.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | words in the contract object, e.g. "software", "limpeza", "ambulâncias". |
| buyer | string | no | public body name or 9-digit NIF, e.g. "Município de Lisboa", "SPMS". |
| supplier | string | no | company name or NIF. |
| procedure | string | no | e.g. "Ajuste Direto", "Concurso público", "Consulta Prévia". |
| min_value | number | no | — |
| max_value | number | no | — |
| year | integer | no | contract-file year (default: this year; 2012 onwards). |
| sort | string | no | "value" (largest first) or "date" (newest first). |
| limit | integer | no | max rows. |
Totals for one buyer or supplier in a year: number of contracts, total value, by procedure, top partners.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| entity | string | yes | name or 9-digit NIF of a public body or a company. |
| role | string | no | "buyer", "supplier" or "any". |
| year | integer | no | default this year. |
| top | integer | no | how many top counterparties to list. |
Search the datasets of Portugal's national open-data portal (dados.gov.pt).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | e.g. "acidentes rodoviários", "escolas", "qualidade do ar", "alojamento local". |
| organization | string | no | optional publisher name to filter by, e.g. "INE", "Câmara Municipal de Lisboa". |
| limit | integer | no | max results (1-50). |
Details and downloadable files of one dados.gov.pt dataset (id or slug from open_data_search).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| dataset | string | yes | — |
First rows of a CSV or JSON file hosted on dados.gov.pt (reads at most 512 KB).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | string | yes | a resource url from open_data_dataset (must be on dados.gov.pt). |
| rows | integer | no | how many rows to return (1-100). |
Look up a Portuguese postal code (código postal, 'XXXX-XXX' or 'XXXX').
| Parameter | Type | Required | Notes |
|---|---|---|---|
| code | string | yes | — |
Which parish, municipality and district a coordinate is in, plus altitude, land use and hazard maps.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| lat | number | yes | — |
| lon | number | yes | — |
A municipality (concelho): district, INE code, area, parishes, 2021 census, town-hall contacts.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
Portugal's national public holidays for a year (default: this year), with weekday.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| year | integer | no | — |
| upcoming_only | boolean | no | — |
Burnt areas from wildfires in Portugal, mapped by satellite (EFFIS / Copernicus).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| period | string | no | "today", "week", "month" or "season" (this year so far). Ignored when year is given. |
| year | integer | no | a past year from 2016, for the whole year. |
| place | string | no | keep fires whose region or parish contains this, e.g. "Algarve", "Monchique", "Viseu". |
| min_hectares | number | no | only fires at least this large. |
| sort | string | no | "area" (largest first) or "date" (newest first). |
| limit | integer | no | max fires listed (totals always cover every match). |
Find INE indicators by keyword (e.g. "inflação", "desemprego", "população", "rendas", "turismo").
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | — |
| lang | string | no | "PT" (more complete wording) or "EN". |
| limit | integer | no | — |
Values of an INE indicator, latest periods first.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| varcd | string | yes | 7-digit indicator code from ine_search, e.g. "0008074". |
| place | string | no | geography name to keep, e.g. "Portugal", "Lisboa", "Norte", "Porto". Default: "Portugal" when present, otherwise all geographies. |
| periods | integer | no | how many of the latest reference periods to return (1-24). |
| category | string | no | keep only rows whose category labels contain this text (e.g. "Total", "Mulheres"). |
| lang | string | no | "PT" or "EN". |
| limit | integer | no | max rows. |
Search initiatives in the Portuguese Parliament: bills, resolutions, inquiries.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | words in the title, e.g. "habitação", "IRS", "imigração". |
| type | string | no | e.g. "Projeto de Lei", "Proposta de Lei" (Government bills), "Projeto de Resolução". |
| author | string | no | party acronym ("PS", "PSD", "CH", "IL", "L", "PCP", "BE", "CDS-PP", "PAN", "JPP") or "Governo". |
| result | string | no | "aprovado" or "rejeitado" — keeps initiatives whose latest vote had this result. |
| since | string | no | "YYYY-MM-DD" — submitted on or after this date. |
| legislature | string | no | Roman numeral, default the current one (XVII). |
| limit | integer | no | max results, newest first. |
Full record of one initiative: every phase with dates, every vote with each group's position, text link.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| initiative_id | string | yes | the id from parliament_search (e.g. "356403"), or a reference like "Proposta de Lei 3". |
| legislature | string | no | — |
Recent plenary votes, with how each parliamentary group voted.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| party | string | no | show this group's position on each vote (e.g. "PS", "CH"); only votes where it is recorded. |
| query | string | no | words in the initiative title. |
| since | string | no | "YYYY-MM-DD". |
| result | string | no | "aprovado" or "rejeitado". |
| legislature | string | no | — |
| limit | integer | no | max votes, newest first. |
Members of Parliament (deputados): party, constituency (círculo), status. Seats per party included.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | no | part of the parliamentary or full name. |
| party | string | no | group acronym, e.g. "PSD", "PS", "CH". |
| constituency | string | no | e.g. "Lisboa", "Porto", "Açores", "Europa". |
| include_inactive | boolean | no | also list deputies who left or were replaced. Default false. |
| legislature | string | no | — |
| limit | integer | no | — |
- Every tool, no call limit
- No card, and mcprush charges nothing for it
- Source published under MIT
- Runs on your machine — nothing of it reaches our gateway
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Portugal (public data) or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | minimal | capability blast radius (minimal) — client exposure if the model is manipulated | −0 |
| verification-discount | source | publisher verification (provenance) — cryptographic build provenance ties the artifact to its source | −0 |
| coverage-honesty | source | inspection depth (source) — how much of the target the scan could see | −0 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
Tools were statically extracted from the published source (47 recovered), not enumerated from a running server. Tool-poisoning, Unicode-smuggling, capability and toxic-flow analysis ran on this inferred surface, but a mis-parsed registration could be missed or mis-attributed, so tool-derived findings are capped below “confirmed”. To grade the real runtime surface, scan the running server: --command "npx -y <package>".
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. minimal is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| bpstat_search | no tags | |
| bpstat_series | no tags | |
| weather_forecast | no tags | |
| weather_warnings | no tags | |
| fire_risk | no tags | |
| sea_forecast | no tags | |
| earthquakes | no tags | |
| public_contracts | no tags | |
| public_contracts_summary | no tags | |
| open_data_search | no tags | |
| open_data_dataset | no tags | |
| open_data_preview | no tags | |
| fuel_prices | no tags | |
| fuel_station_detail | no tags | |
| fuel_types | no tags | |
| ev_chargers | no tags | |
| ev_charger_detail | no tags | |
| postal_code | no tags | |
| where_is | no tags | |
| municipality | no tags | |
| public_holidays | no tags | |
| wildfires | no tags | |
| ine_search | no tags | |
| ine_indicator | no tags | |
| medicine_availability | no tags | |
| pharmacies | no tags | |
| find_medicine_near | no tags | |
| medicine_help | no tags | |
| parliament_search | no tags | |
| parliament_initiative | no tags | |
| parliament_votes | no tags | |
| parliament_deputies | no tags | |
| sns_find_institutions | no tags | |
| sns_emergency_stats | no tags | |
| sns_surgery_wait_stats | no tags | |
| sns_consultation_wait_stats | no tags | |
| sns_search_datasets | no tags | |
| sns_query_dataset | no tags | |
| transit_operators | no tags | |
| transit_find_stops | no tags | |
| transit_departures | no tags | |
| transit_trips_between | no tags | |
| bus_find_stops | no tags | |
| bus_next_arrivals | no tags | |
| bus_line_info | no tags | |
| bus_service_alerts | no tags | |
| bus_vehicle_positions | no tags |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
Always latest — the install command names no version, so it installs the newest release when it runs; the current release on file is 0.2.0. Pin a release below and the command asks for exactly that one.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Portugal (public data) can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.