io.github.trondbjoroy/norway-location-transport-mcp
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Norwegian transport (Entur) and geodata (Kartverket): trips, departures, addresses, elevation.
| Author | io.github.trondbjoroy |
|---|---|
| Access | mixed |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 298 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"norway-location-transport-mcp": {
"url": "https://norway-location-transport-mcp.met-mcp-worker.workers.dev/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (21)
search_addressSearch official Norwegian addresses (Kartverket) and get coordinates. Use `query` for free text, or the specific fields for a structured search. Wildcards with `*` are supported (e.g. street 'Storg*'). Returns coordinates, postal code, municipality, and cadastral numbers for each match.
Parameters:
query— string — Free-text address, e.g. 'Karl Johans gate 1, Oslo'. Supports the * wildcard.number— integer — House number (nummer)street— string — Street name (adressenavn). Supports the * wildcard.max_results— integer — Maximum number of matches to returnpostal_code— string — Postal code (postnummer), e.g. '0155'municipality_number— string — 4-digit municipality code (kommunenummer), e.g. '0301' for Oslo
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
find_addresses_nearFind all official addresses within a radius of a coordinate (Kartverket). Each result includes its distance from the point. Good for 'what is at this location?'.
Parameters:
latitude(required) — number — Latitude in decimal degrees (WGS84). Norway spans about 57–72°N.longitude(required) — number — Longitude in decimal degrees (WGS84). Norway spans about 4–31°E.radius_m— integer — Search radius in metresmax_results— integer — Maximum number of addresses to return
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
validate_addressCheck whether a free-text address exists in the official register and return its normalized form with coordinates. Uses fuzzy matching, so it also corrects small spelling errors. Returns `valid`, the best normalized match, and alternatives.
Parameters:
address(required) — string — Address to validate, e.g. 'karl johans gt 1 oslo'
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
search_place_namesSearch official Norwegian place names (Kartverket Sentralt stedsnavnregister). Returns each name's feature type (e.g. Fjell, Innsjø, By), municipality, county, and coordinates. Supports the * wildcard and corrects small spelling errors.
Parameters:
query(required) — string — Place name to search for, e.g. 'Galdhøpiggen'. Supports the * wildcard.max_results— integer — Maximum number of matches to return
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
find_place_names_nearFind the nearest official named features to a coordinate (Kartverket). Each result includes its feature type and distance from the point.
Parameters:
latitude(required) — number — Latitude in decimal degrees (WGS84). Norway spans about 57–72°N.longitude(required) — number — Longitude in decimal degrees (WGS84). Norway spans about 4–31°E.radius_m— integer — Search radius in metresmax_results— integer — Maximum number of features to return
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_elevationGet the terrain elevation (metres above sea level) at a coordinate from the Norwegian national elevation model (Kartverket DTM). Covers mainland Norway.
Parameters:
latitude(required) — number — Latitude in decimal degrees (WGS84). Norway spans about 57–72°N.longitude(required) — number — Longitude in decimal degrees (WGS84). Norway spans about 4–31°E.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_elevation_profileSample the terrain elevation evenly along a path of coordinates (Kartverket DTM) and return the profile plus total distance, ascent, and descent. Useful for hikes and routes. Give the path vertices in order; `samples` controls resolution.
Parameters:
path(required) — array — Ordered path vertices (at least 2). The path is sampled evenly between them.samples— integer — Number of evenly spaced points to sample along the whole path
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
transform_coordinatesConvert a coordinate between reference systems using Kartverket's transformer. Give EPSG codes for source and target. Axis order: x is easting (longitude for geographic systems), y is northing (latitude). Common EPSG codes: 4326 WGS84, 4258 EUREF89 (both lon/lat), 25832 UTM32/EUREF89, 25833 UTM33, 25835 UTM35 (east/north in metres).
Parameters:
x(required) — number — Easting, or longitude for a geographic system (e.g. 4326/4258)y(required) — number — Northing, or latitude for a geographic systemfrom_epsg(required) — integer — Source EPSG code, e.g. 4326to_epsg(required) — integer — Target EPSG code, e.g. 25833
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
lookup_admin_unitFind which municipality (kommune) and county (fylke) a location falls in, with official codes (Kartverket). Give either a coordinate or a free-text address.
Parameters:
address— string — Free-text address, used if no coordinate is givenlatitude— number — Latitude in decimal degrees (WGS84). Norway spans about 57–72°N.longitude— number — Longitude in decimal degrees (WGS84). Norway spans about 4–31°E.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
lookup_propertyLook up cadastral (matrikkel) identifiers for a property via the open address register (Kartverket): municipality number, gårdsnummer (gnr), bruksnummer (bnr), and festenummer. Give a free-text address or a coordinate. Full ownership data requires Kartverket's authenticated Matrikkel API; this returns the open address-linked identifiers.
Parameters:
address— string — Free-text addresslatitude— number — Latitude in decimal degrees (WGS84). Norway spans about 57–72°N.longitude— number — Longitude in decimal degrees (WGS84). Norway spans about 4–31°E.max_results— integer — Maximum number of properties to return
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
resolve_stop_placeTurn a place or address into Entur Stop Place IDs (public transport stops/stations). Use the returned ID with the departure, trip, accessibility, quay, and fare-zone tools.
Parameters:
query(required) — string — Place or stop name, e.g. 'Oslo S' or 'Bergen busstasjon'max_results— integer — Maximum number of stops to return
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
find_stops_nearReverse-geocode a coordinate to the nearest public transport stop places (Entur), each with its distance. Use the returned IDs with the departure and trip tools.
Parameters:
latitude(required) — number — Latitude in decimal degrees (WGS84)longitude(required) — number — Longitude in decimal degrees (WGS84)radius_m— integer — Search radius in metresmax_results— integer — Maximum number of stops to return
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
plan_tripPlan a point-to-point public transport journey in Norway (Entur JourneyPlanner). Give each endpoint either as a Stop Place ID or as coordinates. Optionally set a departure or arrival time, filter transport modes, and set walk speed. Returns trip patterns with legs, modes, durations, and realtime times.
Parameters:
to_place— string — Destination Stop Place IDarrive_by— boolean — If true, date_time is the desired arrival time instead of departure timedate_time— string — ISO 8601 time, e.g. '2026-08-24T09:00:00+02:00'. Defaults to now.from_place— string — Origin Stop Place ID (from resolve_stop_place)walk_speed— number — Walking speed in metres per second (default ~1.3)to_latitude— number — Latitude in decimal degrees (WGS84)to_longitude— number — Longitude in decimal degrees (WGS84)from_latitude— number — Latitude in decimal degrees (WGS84)from_longitude— number — Longitude in decimal degrees (WGS84)transport_modes— array — Restrict to these transit modes, e.g. ['bus','tram']. Omit for all modes.num_trip_patterns— integer — How many alternative trips to return
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_departuresGet the next departures from a stop place (Entur), including realtime delays and cancellations. Each departure shows line, destination, scheduled and expected times, delay, platform, and whether it is cancelled.
Parameters:
stop_place_id(required) — string — Entur Stop Place ID, e.g. 'NSR:StopPlace:59872'. Get one from resolve_stop_place.count— integer — How many upcoming departures to return
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_realtime_statusGet a realtime health summary. For a stop, pass stop_place_id: it summarizes how many upcoming departures are on time, delayed, or cancelled. For a line, pass line_id: it reports how many vehicles are currently active and their delays.
Parameters:
line_id— string — Line ID (e.g. 'ATB:Line:2_3', from get_departures) for a line-level summarystop_place_id— string — Stop Place ID for a stop-level summary
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_stop_accessibilityGet accessibility information for a stop place (Entur): per-quay (platform) wheelchair access, and a summary. Note: Entur's free API exposes wheelchair access per quay; deeper equipment detail (elevators, tactile guidance) is only in Entur's authenticated Stop Register API and is not available here.
Parameters:
stop_place_id(required) — string — Entur Stop Place ID, e.g. 'NSR:StopPlace:59872'. Get one from resolve_stop_place.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_quaysList all quays (platforms/stopping points) at a stop place (Entur), with their public codes, coordinates, and wheelchair access.
Parameters:
stop_place_id(required) — string — Entur Stop Place ID, e.g. 'NSR:StopPlace:59872'. Get one from resolve_stop_place.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_fare_zonesGet the fare (tariff) zone(s) a stop place belongs to (Entur). Fare zones set the ticket price for a journey.
Parameters:
stop_place_id(required) — string — Entur Stop Place ID, e.g. 'NSR:StopPlace:59872'. Get one from resolve_stop_place.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
find_shared_vehiclesFind free-floating shared vehicles (city bikes, e-scooters, car share, mopeds) near a coordinate across all Norwegian operators (Entur Mobility). Each result shows the operator, type, battery, and location.
Parameters:
latitude(required) — number — Latitude in decimal degrees (WGS84)longitude(required) — number — Longitude in decimal degrees (WGS84)count— integer — Maximum number of vehicles to returnrange_m— integer — Search radius in metresform_factors— array — Filter by type. Common values: BICYCLE, SCOOTER, CAR, MOPED, CARGO_BICYCLE, OTHER.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
find_docking_stationsFind shared-mobility docking stations (e.g. city bike stations) near a coordinate (Entur Mobility), with available vehicle and free-dock counts per station.
Parameters:
latitude(required) — number — Latitude in decimal degrees (WGS84)longitude(required) — number — Longitude in decimal degrees (WGS84)count— integer — Maximum number of stations to returnrange_m— integer — Search radius in metres
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_vehicle_positionsGet live positions of public transport vehicles (Entur realtime), filtered by operator codespace and/or line. Each vehicle shows its position, bearing, speed, and delay. Codespace examples: ATB (Trondheim), KOL (Stavanger), SKY (Bergen area). Get a line_id from get_departures.
Parameters:
line_id— string — Line ID, e.g. 'ATB:Line:2_3'. Optional if codespace_id is given.max_results— integer — Maximum number of vehicles to returncodespace_id— string — Operator codespace, e.g. 'ATB'. Optional if line_id is given.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.