Next free-source huntWe check for new free data every weekday.
WeatherMCP serverFirst audited Nov 13, 2026

Portugal (public data)

Portugal public data: weather, INE, Parliament, contracts, SNS, fuel, transit, power cuts.The vendor's description, from its MCP Registry listing.

Passed, with 1 warningAudited Nov 13, 2026
  • Warning: 56 of 56 tools do not say whether they can change things.

Nothing failed, but there is something to know or fix. Public audit: we connect as an AI client would, list the tools and check what they say. We do not run them. How we audit

Does it work?
YesConnected in 380 ms.
Sign-up?
None neededIt answered without any account or key.
Can it change things?
Doesn't sayIts tools do not say whether they only read, so treat them as able to change things.
Endpointhttps://mcp.thiagolannes.com/portugal

Source code Website Streamable HTTP · protocol 2025-11-25 · server version 0.6.2

What we checked, the evidence, and the tools it offers.

What we checked

Security

  • Passed: Connections are encrypted (HTTPS).

  • Passed: No hidden instructions found in tool text.

Safety labels

  • Warning: 56 of 56 tools do not say whether they can change things.

    MCP lets a server label each tool as read-only or destructive, so clients can ask the user before risky calls. Unlabelled tools are treated as able to change things.

    • weather_forecast
    • weather_warnings
    • fire_risk
    • sea_forecast
    • earthquakes
    • postal_code
    • where_is
    • municipality
    • and 48 more

Tools

  • Note: Some tool text is long, so it uses more of the AI's working memory.

    • server instructions (7,072 characters)
  • Passed: 56 tools listed.

  • Passed: Every tool describes its inputs with a valid schema.

Protocol

  • Passed: The MCP handshake works (Streamable HTTP).

  • Passed: Protocol version 2025-11-25 (latest).

  • Passed: Unknown requests are refused.

Connection

  • Passed: The server responds.

Tools (56)

As the server describes them. The labels are the server's own: it says whether each tool only reads or can change things.

  • weather_forecast5-day weather forecast for a place in Portugal (IPMA, official). Args: place: district capital or island town, e.g. "Lisboa", "Porto", "Faro", "Funchal", "Ponta Delgada". lat, lon: use inste…Doesn't say
  • weather_warningsActive IPMA weather warnings (rain, wind, heat, cold, snow, fog, sea, thunderstorms). Args: area: optional district or island group, e.g. "Lisboa", "Madeira", "Açores". Omit for the whole countr…Doesn't say
  • fire_riskWildfire danger (RCM, risco de incêndio rural) for a municipality, today or tomorrow. Args: municipality: concelho name, e.g. "Sintra", "Monchique". day: 0 = today, 1 = tomorrow. Scale: 1 re…Doesn't say
  • sea_forecastCoastal sea forecast: wave height and period, wave direction, sea temperature (IPMA). Args: place: coastal spot, e.g. "Nazaré", "Peniche", "Faro", "Funchal". Or pass lat/lon for the nearest one.…Doesn't say
  • earthquakesRecent earthquakes recorded by IPMA. Args: region: "mainland" (mainland Portugal and Madeira) or "azores". days: look back this many days (max 30). min_magnitude: only quakes at or above…Doesn't say
  • postal_codeLook up a Portuguese postal code (código postal, 'XXXX-XXX' or 'XXXX'). Returns district, municipality, locality and the streets the code covers, plus a central point. Doesn't say
  • where_isWhich parish, municipality and district a coordinate is in, plus altitude, land use and hazard maps.Doesn't say
  • municipalityA municipality (concelho): district, INE code, area, parishes, 2021 census, town-hall contacts.Doesn't say
  • public_holidaysPortugal's national public holidays for a year (default: this year), with weekday. Carnival is listed as optional: it is usually a day off by government decision, not by law. Municipal holidays (one…Doesn't say
  • ine_searchFind INE indicators by keyword (e.g. "inflação", "desemprego", "população", "rendas", "turismo"). Searches INE's catalogue of key indicators. Returns varcd codes to pass to ine_indicator. Any other…Doesn't say
  • ine_indicatorValues of an INE indicator, latest periods first. Args: varcd: 7-digit indicator code from ine_search, e.g. "0008074". place: geography name to keep, e.g. "Portugal", "Lisboa", "Norte", "Por…Doesn't say
  • bpstat_searchFind Banco de Portugal statistical series by keyword. Examples: "euribor 12 meses", "taxa de juro novos empréstimos habitação", "dólar", "dívida pública", "depósitos particulares", "preços habitação…Doesn't say
  • bpstat_seriesObservations of Banco de Portugal series (ids from bpstat_search). Args: series_ids: one or more series ids (max 10), e.g. [12559924]. last_n: latest observations per series (1-500). Ignored…Doesn't say
  • parliament_searchSearch initiatives in the Portuguese Parliament: bills, resolutions, inquiries. Args: query: words in the title, e.g. "habitação", "IRS", "imigração". type: e.g. "Projeto de Lei", "Proposta…Doesn't say
  • parliament_initiativeFull record of one initiative: every phase with dates, every vote with each group's position, text link. Args: initiative_id: the `id` from parliament_search (e.g. "356403"), or a reference like…Doesn't say
  • parliament_votesRecent plenary votes, with how each parliamentary group voted. Args: party: show this group's position on each vote (e.g. "PS", "CH"); only votes where it is recorded. query: words in the in…Doesn't say
  • parliament_deputiesMembers of Parliament (deputados): party, constituency (círculo), status. Seats per party included. Args: name: part of the parliamentary or full name. party: group acronym, e.g. "PSD", "PS"…Doesn't say
  • public_contractsSearch Portuguese public contracts (Portal BASE) for one year. Args: query: words in the contract object, e.g. "software", "limpeza", "ambulâncias". buyer: public body name or 9-digit NIF, e…Doesn't say
  • public_contracts_summaryTotals for one buyer or supplier in a year: number of contracts, total value, by procedure, top partners. Args: entity: name or 9-digit NIF of a public body or a company. role: "buyer", "sup…Doesn't say
  • open_data_searchSearch the datasets of Portugal's national open-data portal (dados.gov.pt). Args: query: e.g. "acidentes rodoviários", "escolas", "qualidade do ar", "alojamento local". organization: optiona…Doesn't say
  • open_data_datasetDetails and downloadable files of one dados.gov.pt dataset (id or slug from open_data_search).Doesn't say
  • open_data_previewFirst rows of a CSV or JSON file hosted on dados.gov.pt (reads at most 512 KB). Args: url: a resource url from open_data_dataset (must be on dados.gov.pt). rows: how many rows to return (1-1…Doesn't say
  • sns_find_institutionsFind SNS hospitals / local health units (ULS) by name, or the nearest ones to a coordinate. Use this first when the user names a hospital or a place ("hospitals near Lisbon", "is there an emergency…Doesn't say
  • sns_emergency_statsEmergency-department (urgência) visits per month: by type and by Manchester triage colour. Use for "how busy is the ER at X?", "how many emergency visits in the Algarve last month?", "what share of…Doesn't say
  • sns_surgery_wait_statsSurgery access indicators per month: surgical waiting list, % within the guaranteed maximum time, mean days from admission to surgery, and surgeries performed. Use for "how long is the wait for surg…Doesn't say
  • sns_consultation_wait_statsHospital 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). Use for "how long i…Doesn't say
  • sns_search_datasetsSearch the ~150 datasets of the SNS Transparency portal (titles and descriptions are in Portuguese). Use when the curated tools don't cover the question — e.g. hospital bed occupancy ("ocupação"), b…Doesn't say
  • sns_query_datasetRun an ODSQL query on any SNS Transparency portal dataset (Opendatasoft Explore API v2.1). Use after sns_search_datasets for anything the curated tools don't cover. Clauses are ODSQL: - where:…Doesn't say
  • medicine_availabilityIs a medicine in shortage in Portugal? Checks Infarmed's published availability information. Use when someone can't find a medicine, or asks whether X is in shortage ("rutura", "esgotado", "falta").…Doesn't say
  • pharmaciesPharmacies in a Portuguese municipality, with which ones are on duty today and open now. Use for "farmácia de serviço em X", "pharmacy open now near me", or to list pharmacies to call. Each pharmacy…Doesn't say
  • find_medicine_nearOne-shot answer to "I need medicine X in city Y — what do I do?" in Portugal. Runs medicine_availability(medicine) and pharmacies(city or lat/lon), and returns: the shortage status (compact), the ph…Doesn't say
  • medicine_helpVerified help lines in Portugal for medicine problems: 112, SNS 24, Linha 1400, Infarmed. Use when someone can't find a medicine, needs urgent advice, or asks who to call. Each line has its number,…Doesn't say
  • fuel_pricesCheapest fuel stations in Portugal for one fuel type, cheapest first (official DGEG prices). Use for "where is diesel/petrol/LPG cheapest in Lisboa / near me / in Braga?". Give an area as a district…Doesn't say
  • fuel_station_detailFull 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. Use after fuel_prices, with a station `id…Doesn't say
  • fuel_typesList DGEG fuel types (id, name, unit) and the districts accepted by fuel_prices. Only needed when unsure which fuel name to pass; fuel_prices also understands "diesel", "petrol", "95", "98", "lpg". Doesn't say
  • ev_chargersPublic 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. Use for "where can I charge near X?",…Doesn't say
  • ev_charger_detailEverything 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.…Doesn't say
  • bus_find_stopsFind Carris Metropolitana bus stops by name and/or near a coordinate. Use this first whenever the user names a place, street, station or gives a location, to get the stop_id needed by bus_next_arriv…Doesn't say
  • bus_next_arrivalsUpcoming buses at a Carris Metropolitana stop, real-time where available. Use for "when is the next bus at X?" (get stop_id from bus_find_stops first). Each arrival says whether it is "realtime" (li…Doesn't say
  • bus_line_infoDetails of a Carris Metropolitana line: name, route ends, directions, municipalities. Use for "where does line 4715 go?", "which bus goes from Cacilhas to Almada?", or to check whether a line passes…Doesn't say
  • bus_service_alertsService alerts (detours, works, strikes, stops not served) for Carris Metropolitana. Use before recommending a trip, or when the user asks "is line X disrupted?". Filter by line and/or stop; with no…Doesn't say
  • bus_vehicle_positionsLive GPS positions of the buses currently running on a Carris Metropolitana line. Use for "where is the 3508 right now?" or to see how many buses are out on a line. Each vehicle includes its positio…Doesn't say
  • transit_operatorsWhich transport operators have timetables here, and what each one covers.Doesn't say
  • transit_find_stopsFind train stations, metro stations or bus/tram stops by name, or the nearest to a point. Args: query: e.g. "Oriente", "Porto Campanhã", "Marquês de Pombal", "Prazeres". operator: an operato…Doesn't say
  • transit_departuresScheduled departures from a station or stop (official timetable, not live). Args: stop: station or stop name, e.g. "Lisboa Oriente", "Cais do Sodré", "Baixa-Chiado", "Prazeres". operator: an…Doesn't say
  • transit_trips_betweenDirect services between two stations (no changes), with departure, arrival and duration. Examples: CP "Lisboa Oriente" → "Porto Campanhã"; Fertagus "Roma-Areeiro" → "Setúbal"; Metro "Alameda" → "Aer…Doesn't say
  • transit_vehiclesWhere the buses (and Lisbon trams) are right now: live positions reported by the vehicles. Args: operator: "stcp" (Porto buses), "smtuc" (Coimbra buses) or "carris" (Lisbon buses and tra…Doesn't say
  • wildfiresBurnt areas from wildfires in Portugal, mapped by satellite (EFFIS / Copernicus). Not a live list of fires in progress: EFFIS maps burnt areas from satellite a day or more later, and small fires can…Doesn't say
  • active_incidentsWhat emergency services (civil protection, ANEPC) are responding to right now in Portugal, closest first. Live occurrences of every kind: fires, road collisions, fallen trees, floods, rescues, with…Doesn't say
  • power_cutsPlanned power cuts (E-REDES maintenance works) for a postal code, municipality or parish. Args: postal_code: "2795-082" for that street, or "2795" for the whole postal area. municipality: e.…Doesn't say
  • electricity_pricePortugal's day-ahead wholesale electricity price (OMIE), per 15-minute period, in €/MWh. Useful for indexed ("dynamic") tariffs: when is electricity cheapest to run the washing machine or charge the…Doesn't say
  • local_accommodationLook up the national register of local accommodation (Alojamento Local, RNAL). Answers "is this flat/guesthouse registered?" and "how many AL are on my street?". Args: registration: the RNAL num…Doesn't say
  • tourism_placesOfficial tourism places in Portugal, near a point or in a municipality/region. Args: kind: one of blue_flag_beaches, surf_spots, golf, spas, unesco, historic_villages, schist_villages, w…Doesn't say
  • lisbon_eventsWhat's on in Lisbon: the city's official cultural agenda (exhibitions, concerts, theatre, dance, cinema, guided visits, kids, festivals). Args: day: ISO date, e.g. "2026-11-14". Default today.…Doesn't say
  • lisbon_street_worksStreet works and public-space occupations in Lisbon: what is (or will be) blocking a street. Two official sources: licensed temporary occupations of public space (filming, events, scaffolding, conta…Doesn't say
  • lisbon_recyclingThe nearest recycling points in Lisbon of a given kind. Args: lat, lon: where you are. kind: "ecoponto" (paper, plastic, glass), "vidrao" (glass), "papel", "oleo" (used cooking oil),…Doesn't say

Audit history

  1. Nov 13Warnings

What we sent

Every request in this audit, with the answer and how long it took. We never send credentials and never call a tool.

RequestAnswerTime
initializeHTTP 200380 ms
initializedHTTP 202439 ms
tools/listHTTP 200516 ms
resources/listHTTP 200264 ms
prompts/listHTTP 200266 ms
unknown-methodHTTP 200269 ms

Run this server, or disagree with the result?

Fix the issue and it shows in the next weekly audit, or email us to ask for a re-audit or to dispute a finding. Read how we audit for what each check means.