NestDaddy

Portugal (public data)

io.github.ThiagoJacobLannes/portugal-mcp · v0.6.2

Portugal public data: weather, INE, Parliament, contracts, SNS, fuel, transit, power cuts.

Connect Remote server

Terminal
claude mcp add --transport http portugal-mcp https://mcp.thiagolannes.com/portugal
~/.cursor/mcp.json
{
  "mcpServers": {
    "portugal-mcp": {
      "url": "https://mcp.thiagolannes.com/portugal"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "portugal-mcp": {
      "type": "http",
      "url": "https://mcp.thiagolannes.com/portugal"
    }
  }
}
Claude Desktop
Settings > Connectors > Add custom connector
URL: https://mcp.thiagolannes.com/portugal

Tools 56 found in our last check

  • weather_forecast

    5-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 instead of place for anywhere else; the nearest IPMA forecast location is used. Returns daily…

  • weather_warnings

    Active 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 country. include_green: also list green (no-warning) entries. Default false.

  • fire_risk

    Wildfire 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 reduzido, 2 moderado, 3 elevado, 4 muito elevado, 5 máximo.

  • sea_forecast

    Coastal 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. day: 0 = today, 1 = tomorrow, 2 = the day after.

  • earthquakes

    Recent 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 this magnitude. limit: max rows (newest first).

  • postal_code

    Look 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.

  • where_is

    Which parish, municipality and district a coordinate is in, plus altitude, land use and hazard maps.

  • municipality

    A municipality (concelho): district, INE code, area, parishes, 2021 census, town-hall contacts.

  • public_holidays

    Portugal'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 per concelho, e.g. Lisbon 13 June, Porto 24 June) are not included.

  • ine_search

    Find 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 INE indicator can be read with ine_indicator if you know its code (from www.ine.p…

  • ine_indicator

    Values 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", "Porto". Default: "Portugal" when present, otherwise all geographies. periods: how many of th…

  • bpstat_search

    Find 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". The search picks the most likely statistical domains (or the one you pass as d…

  • bpstat_series

    Observations 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 when `since` is given. since: "YYYY-MM-DD" — return every observation from this date. la…

  • parliament_search

    Search 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 de Lei" (Government bills), "Projeto de Resolução". author: party acronym ("PS", "PSD", "…

  • parliament_initiative

    Full 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 "Proposta de Lei 3".

  • parliament_votes

    Recent 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 initiative title. since: "YYYY-MM-DD". result: "aprovado" or "rejeitado". limit: max votes,…

  • parliament_deputies

    Members 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", "CH". constituency: e.g. "Lisboa", "Porto", "Açores", "Europa". include_inactive: also…

  • public_contracts

    Search 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.g. "Município de Lisboa", "SPMS". supplier: company name or NIF. procedure: e.g. "Ajuste…

  • public_contracts_summary

    Totals 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", "supplier" or "any". year: default this year. top: how many top counterparties to list.

  • open_data_search

    Search 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: optional publisher to filter by, e.g. "INE", "Lisboa" or "Câmara Municipal de Cascais" (a town n…

  • open_data_dataset

    Details and downloadable files of one dados.gov.pt dataset (id or slug from open_data_search).

  • open_data_preview

    First 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-100).

  • sns_find_institutions

    Find 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 department near 38.72,-9.14?"), then pass `stats_entity` to sns_emergency_stats /…

  • sns_emergency_stats

    Emergency-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 ER visits are green/blue (non-urgent)?". OFFICIAL MONTHLY STATISTICS ONLY — not t…

  • sns_surgery_wait_stats

    Surgery 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 surgery at X?", "how many people are on the surgery list in the Norte region?", "how…

  • sns_consultation_wait_stats

    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). Use for "how long is the wait for a first hospital appointment at X?", "is hospital Y on time with f…

  • sns_search_datasets

    Search 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"), births/caesareans ("partos"), INEM pre-hospital calls, SNS 24 calls, family doctor…

  • sns_query_dataset

    Run 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: `instituicao like "santa maria" and tempo >= date'2026-01-01'` (`like` is a case- and…

  • medicine_availability

    Is 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"). Searches by brand or active substance (Portuguese names work best, e.g. "quetiap…

  • pharmacies

    Pharmacies 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 has name, address, phone, coordinates, today's hours, open_now, on_duty (officia…

  • find_medicine_near

    One-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 pharmacies on duty today and the ones open now (nearest first when lat/lon are give…

  • medicine_help

    Verified 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, what it is for, hours where published, and the page it was checked on.

  • fuel_prices

    Cheapest 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, a municipality, or a point (lat + lon, with radius_km); with no area it searche…

  • fuel_station_detail

    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. Use after fuel_prices, with a station `id` from its results.

  • fuel_types

    List 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".

  • ev_chargers

    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. Use for "where can I charge near X?", "fast chargers near me", "is there a free CCS charger nearby?". Needs coordinate…

  • ev_charger_detail

    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...). Use after ev_chargers. Accepts a site_id (e.g. "EZC-AMD-00051"), a point_id…

  • bus_find_stops

    Find 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_arrivals. Results include the lines serving each stop. Args: query: Text to match in t…

  • bus_next_arrivals

    Upcoming 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" (live GPS estimate) or "scheduled" (timetable only: the bus may not have started its…

  • bus_line_info

    Details 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 a stop (include_stops=True). If `line` is not an exact line number it is treated…

  • bus_service_alerts

    Service 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 filter, returns all current alerts (there are often ~100). Alerts are mostly pub…

  • bus_vehicle_positions

    Live 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 position, heading, speed, the stop it is at / heading to, and how many seconds old the f…

  • transit_operators

    Which transport operators have timetables here, and what each one covers.

  • transit_find_stops

    Find 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 operator id (see transit_operators) or a city/region: "porto", "coimbra", "braga", "aveiro", "ca…

  • transit_departures

    Scheduled 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 operator id (see transit_operators) or a city/region: "porto", "coimbra", "braga", "avei…

  • transit_trips_between

    Direct services between two stations (no changes), with departure, arrival and duration. Examples: CP "Lisboa Oriente" → "Porto Campanhã"; Fertagus "Roma-Areeiro" → "Setúbal"; Metro "Alameda" → "Aeroporto" (same line only). Scheduled times, not live. Args: operator: an operator…

  • transit_vehicles

    Where 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 trams). City names work too: "porto", "coimbra", "lisboa". line: keep one line, e.g. "500", "205…

  • wildfires

    Burnt 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 be missing. Args: period: "today", "week", "month" or "season" (this year so far…

  • active_incidents

    What 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 their status (e.g. "Em Curso"), time started and resources on scene. Updated ever…

  • power_cuts

    Planned 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.g. "Sintra", "Vila Nova de Gaia". parish: e.g. "Algés" (matches part of the parish name).…

  • electricity_price

    Portugal'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 car. Not the retail price on a normal bill. Args: day: ISO date, e.g. "2026-11-1…

  • local_accommodation

    Look 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 number, e.g. "12345/AL" or "12345". name: part of the registered name, e.g. "InSuites".…

  • tourism_places

    Official 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, wine_villages, mountain_villages, marinas, walking_routes, santiago_ways, hotels. place: munic…

  • lisbon_events

    What'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. until: ISO date to look at a range from `day` (max 31 days). query: words in the title…

  • lisbon_street_works

    Street 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, containers...) and the city's road and pavement works in progress or planned. Args: pa…

  • lisbon_recycling

    The 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), "reee" (small electronics), "alimentar" (food waste), "ecoilha", "ecocentro" (large items). radi…

Details

Endpointhttps://mcp.thiagolannes.com/portugal (Streamable HTTP)
Package[email protected] (PYPI, stdio)
First published11 Nov 2026
Last updated11 Nov 2026
Registry nameio.github.ThiagoJacobLannes/portugal-mcp

More data and analytics servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.