Serveur MCP

norway-location-transport-mcp

io.github.trondbjoroy/norway-location-transport-mcp
Cartes et localisation Voyage et hôtellerie Public et accessible MCP 2025-11-25

Ce que fait ce MCP

Provides Norwegian address and geodata lookup, elevation and property information, public transport trip planning, departures, realtime vehicle data, and shared-mobility availability.

find_addresses_near
Find addresses near a coordinate
Find 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?'.
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['latitude', 'longitude'], 'properties': {'latitude': {'type': 'number', 'maximum': 72, 'minimum': 57, 'description': 'Latitude in decimal degrees (WGS84). Norway spans about 57â\x80\x9372°N.'}, 'radius_m': {'type': 'integer', 'default': 100, 'maximum': 1000, 'minimum': 1, 'description': 'Search radius in metres'}, 'longitude': {'type': 'number', 'maximum': 35, 'minimum': -2, 'description': 'Longitude in decimal degrees (WGS84). Norway spans about 4â\x80\x9331°E.'}, 'max_results': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of addresses to return'}}}
find_docking_stations
Find docking stations nearby
Find shared-mobility docking stations (e.g. city bike stations) near a coordinate (Entur Mobility), with available vehicle and free-dock counts per station.
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['latitude', 'longitude'], 'properties': {'count': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of stations to return'}, 'range_m': {'type': 'integer', 'default': 500, 'maximum': 3000, 'minimum': 10, 'description': 'Search radius in metres'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude in decimal degrees (WGS84)'}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude in decimal degrees (WGS84)'}}}
find_place_names_near
Find place names near a coordinate
Find the nearest official named features to a coordinate (Kartverket). Each result includes its feature type and distance from the point.
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['latitude', 'longitude'], 'properties': {'latitude': {'type': 'number', 'maximum': 72, 'minimum': 57, 'description': 'Latitude in decimal degrees (WGS84). Norway spans about 57â\x80\x9372°N.'}, 'radius_m': {'type': 'integer', 'default': 1000, 'maximum': 20000, 'minimum': 1, 'description': 'Search radius in metres'}, 'longitude': {'type': 'number', 'maximum': 35, 'minimum': -2, 'description': 'Longitude in decimal degrees (WGS84). Norway spans about 4â\x80\x9331°E.'}, 'max_results': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of features to return'}}}
find_shared_vehicles
Find shared vehicles nearby
Find 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.
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['latitude', 'longitude'], 'properties': {'count': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of vehicles to return'}, 'range_m': {'type': 'integer', 'default': 300, 'maximum': 2000, 'minimum': 10, 'description': 'Search radius in metres'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude in decimal degrees (WGS84)'}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude in decimal degrees (WGS84)'}, 'form_factors': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Filter by type. Common values: BICYCLE, SCOOTER, CAR, MOPED, CARGO_BICYCLE, OTHER.'}}}
find_stops_near
Find stop places near a coordinate
Reverse-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.
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['latitude', 'longitude'], 'properties': {'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude in decimal degrees (WGS84)'}, 'radius_m': {'type': 'integer', 'default': 1000, 'maximum': 5000, 'minimum': 1, 'description': 'Search radius in metres'}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude in decimal degrees (WGS84)'}, 'max_results': {'type': 'integer', 'default': 5, 'maximum': 10, 'minimum': 1, 'description': 'Maximum number of stops to return'}}}
get_departures
Get next departures from a stop
Get 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.
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['stop_place_id'], 'properties': {'count': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'How many upcoming departures to return'}, 'stop_place_id': {'type': 'string', 'pattern': '^NSR:StopPlace:\\d+$', 'description': "Entur Stop Place ID, e.g. 'NSR:StopPlace:59872'. Get one from resolve_stop_place."}}}
get_elevation
Get elevation at a coordinate
Get the terrain elevation (metres above sea level) at a coordinate from the Norwegian national elevation model (Kartverket DTM). Covers mainland Norway.
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['latitude', 'longitude'], 'properties': {'latitude': {'type': 'number', 'maximum': 72, 'minimum': 57, 'description': 'Latitude in decimal degrees (WGS84). Norway spans about 57â\x80\x9372°N.'}, 'longitude': {'type': 'number', 'maximum': 35, 'minimum': -2, 'description': 'Longitude in decimal degrees (WGS84). Norway spans about 4â\x80\x9331°E.'}}}
get_elevation_profile
Get an elevation profile along a path
Sample 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.
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['path'], 'properties': {'path': {'type': 'array', 'items': {'type': 'object', 'required': ['latitude', 'longitude'], 'properties': {'latitude': {'type': 'number', 'maximum': 72, 'minimum': 57, 'description': 'Latitude in decimal degrees (WGS84). Norway spans about 57â\x80\x9372°N.'}, 'longitude': {'type': 'number', 'maximum': 35, 'minimum': -2, 'description': 'Longitude in decimal degrees (WGS84). Norway spans about 4â\x80\x9331°E.'}}}, 'maxItems': 50, 'minItems': 2, 'description': 'Ordered path vertices (at least 2). The path is sampled evenly between them.'}, 'samples': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 2, 'description': 'Number of evenly spaced points to sample along the whole path'}}}
get_fare_zones
Get fare zones for a stop
Get the fare (tariff) zone(s) a stop place belongs to (Entur). Fare zones set the ticket price for a journey.
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['stop_place_id'], 'properties': {'stop_place_id': {'type': 'string', 'pattern': '^NSR:StopPlace:\\d+$', 'description': "Entur Stop Place ID, e.g. 'NSR:StopPlace:59872'. Get one from resolve_stop_place."}}}
get_realtime_status
Get realtime status for a stop or line
Get 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.
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'line_id': {'type': 'string', 'description': "Line ID (e.g. 'ATB:Line:2_3', from get_departures) for a line-level summary"}, 'stop_place_id': {'type': 'string', 'pattern': '^NSR:StopPlace:\\d+$', 'description': 'Stop Place ID for a stop-level summary'}}}
get_stop_accessibility
Get stop accessibility
Get 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.
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['stop_place_id'], 'properties': {'stop_place_id': {'type': 'string', 'pattern': '^NSR:StopPlace:\\d+$', 'description': "Entur Stop Place ID, e.g. 'NSR:StopPlace:59872'. Get one from resolve_stop_place."}}}
get_vehicle_positions
Get live vehicle positions
Get 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.
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'line_id': {'type': 'string', 'description': "Line ID, e.g. 'ATB:Line:2_3'. Optional if codespace_id is given."}, 'max_results': {'type': 'integer', 'default': 50, 'maximum': 200, 'minimum': 1, 'description': 'Maximum number of vehicles to return'}, 'codespace_id': {'type': 'string', 'description': "Operator codespace, e.g. 'ATB'. Optional if line_id is given."}}}
list_quays
List quays (platforms) for a stop
List all quays (platforms/stopping points) at a stop place (Entur), with their public codes, coordinates, and wheelchair access.
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['stop_place_id'], 'properties': {'stop_place_id': {'type': 'string', 'pattern': '^NSR:StopPlace:\\d+$', 'description': "Entur Stop Place ID, e.g. 'NSR:StopPlace:59872'. Get one from resolve_stop_place."}}}
lookup_admin_unit
Look up municipality and county
Find which municipality (kommune) and county (fylke) a location falls in, with official codes (Kartverket). Give either a coordinate or a free-text address.
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'address': {'type': 'string', 'minLength': 1, 'description': 'Free-text address, used if no coordinate is given'}, 'latitude': {'type': 'number', 'maximum': 72, 'minimum': 57, 'description': 'Latitude in decimal degrees (WGS84). Norway spans about 57â\x80\x9372°N.'}, 'longitude': {'type': 'number', 'maximum': 35, 'minimum': -2, 'description': 'Longitude in decimal degrees (WGS84). Norway spans about 4â\x80\x9331°E.'}}}
lookup_property
Look up property (matrikkel) info
Look 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.
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'address': {'type': 'string', 'minLength': 1, 'description': 'Free-text address'}, 'latitude': {'type': 'number', 'maximum': 72, 'minimum': 57, 'description': 'Latitude in decimal degrees (WGS84). Norway spans about 57â\x80\x9372°N.'}, 'longitude': {'type': 'number', 'maximum': 35, 'minimum': -2, 'description': 'Longitude in decimal degrees (WGS84). Norway spans about 4â\x80\x9331°E.'}, 'max_results': {'type': 'integer', 'default': 5, 'maximum': 20, 'minimum': 1, 'description': 'Maximum number of properties to return'}}}
plan_trip
Plan a public transport trip
Plan 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.
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'to_place': {'type': 'string', 'description': 'Destination Stop Place ID'}, 'arrive_by': {'type': 'boolean', 'default': False, 'description': 'If true, date_time is the desired arrival time instead of departure time'}, 'date_time': {'type': 'string', 'description': "ISO 8601 time, e.g. '2026-08-24T09:00:00+02:00'. Defaults to now."}, 'from_place': {'type': 'string', 'description': 'Origin Stop Place ID (from resolve_stop_place)'}, 'walk_speed': {'type': 'number', 'maximum': 3, 'minimum': 0.5, 'description': 'Walking speed in metres per second (default ~1.3)'}, 'to_latitude': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude in decimal degrees (WGS84)'}, 'to_longitude': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude in decimal degrees (WGS84)'}, 'from_latitude': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude in decimal degrees (WGS84)'}, 'from_longitude': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude in decimal degrees (WGS84)'}, 'transport_modes': {'type': 'array', 'items': {'enum': ['air', 'bus', 'cableway', 'water', 'funicular', 'lift', 'rail', 'metro', 'taxi', 'tram', 'trolleybus', 'monorail', 'coach'], 'type': 'string'}, 'description': "Restrict to these transit modes, e.g. ['bus','tram']. Omit for all modes."}, 'num_trip_patterns': {'type': 'integer', 'default': 3, 'maximum': 10, 'minimum': 1, 'description': 'How many alternative trips to return'}}}
resolve_stop_place
Resolve a place to a Stop Place ID
Turn 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.
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query'], 'properties': {'query': {'type': 'string', 'minLength': 1, 'description': "Place or stop name, e.g. 'Oslo S' or 'Bergen busstasjon'"}, 'max_results': {'type': 'integer', 'default': 5, 'maximum': 10, 'minimum': 1, 'description': 'Maximum number of stops to return'}}}
search_address
Search Norwegian addresses
Search 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.
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'query': {'type': 'string', 'minLength': 1, 'description': "Free-text address, e.g. 'Karl Johans gate 1, Oslo'. Supports the * wildcard."}, 'number': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'House number (nummer)'}, 'street': {'type': 'string', 'description': 'Street name (adressenavn). Supports the * wildcard.'}, 'max_results': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of matches to return'}, 'postal_code': {'type': 'string', 'description': "Postal code (postnummer), e.g. '0155'"}, 'municipality_number': {'type': 'string', 'description': "4-digit municipality code (kommunenummer), e.g. '0301' for Oslo"}}}
search_place_names
Search Norwegian place names
Search 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.
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query'], 'properties': {'query': {'type': 'string', 'minLength': 1, 'description': "Place name to search for, e.g. 'Galdhøpiggen'. Supports the * wildcard."}, 'max_results': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of matches to return'}}}
transform_coordinates
Transform coordinates between systems
Convert 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).
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['x', 'y', 'from_epsg', 'to_epsg'], 'properties': {'x': {'type': 'number', 'description': 'Easting, or longitude for a geographic system (e.g. 4326/4258)'}, 'y': {'type': 'number', 'description': 'Northing, or latitude for a geographic system'}, 'to_epsg': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Target EPSG code, e.g. 25833'}, 'from_epsg': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Source EPSG code, e.g. 4326'}}}
validate_address
Validate and normalize an address
Check 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.
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['address'], 'properties': {'address': {'type': 'string', 'minLength': 1, 'description': "Address to validate, e.g. 'karl johans gt 1 oslo'"}}}
Ajouté
get_vehicle_positions
17 September 2026 12:52
Ajouté
find_docking_stations
17 September 2026 12:52
Ajouté
find_shared_vehicles
17 September 2026 12:52
Ajouté
get_fare_zones
17 September 2026 12:52
Ajouté
list_quays
17 September 2026 12:52
Ajouté
get_stop_accessibility
17 September 2026 12:52
Ajouté
get_realtime_status
17 September 2026 12:52
Ajouté
get_departures
17 September 2026 12:52
Ajouté
plan_trip
17 September 2026 12:52
Ajouté
find_stops_near
17 September 2026 12:52
Ajouté
resolve_stop_place
17 September 2026 12:52
Ajouté
lookup_property
17 September 2026 12:52
Ajouté
lookup_admin_unit
17 September 2026 12:52
Ajouté
transform_coordinates
17 September 2026 12:52
Ajouté
get_elevation_profile
17 September 2026 12:52
Ajouté
get_elevation
17 September 2026 12:52
Ajouté
find_place_names_near
17 September 2026 12:52
Ajouté
search_place_names
17 September 2026 12:52
Ajouté
validate_address
17 September 2026 12:52
Ajouté
find_addresses_near
17 September 2026 12:52
Ajouté
search_address
17 September 2026 12:52