norway-location-transport-mcp
Norwegian transport (Entur) and geodata (Kartverket): trips, departures, addresses, elevation.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (1)
- LOWen get_elevation_profile
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"norway-location-transport-mcp": {
"command": "npx",
"args": [
"norway-location-transport-mcp"
]
}
}
}Paquetes ejecutables
0.1.0stdioPuntos de conexión remotos
https://norway-location-transport-mcp.met-mcp-worker.workers.dev/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (21)
🟢search_address(query, street, number, postal_code, municipality_number, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"description": "Free-text address, e.g. 'Karl Johans gate 1, Oslo'. Supports the * wildcard.",
"type": "string",
"minLength": 1
},
"street": {
"description": "Street name (adressenavn). Supports the * wildcard.",
"type": "string"
},
"number": {
"description": "House number (nummer)",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"postal_code": {
"description": "Postal code (postnummer), e.g. '0155'",
"type": "string"
},
"municipality_number": {
"description": "4-digit municipality code (kommunenummer), e.g. '0301' for Oslo",
"type": "string"
},
"max_results": {
"default": 10,
"description": "Maximum number of matches to return",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢find_addresses_near(latitude, longitude, radius_m, max_results)
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?'.
Esquema de entrada
{
"type": "object",
"properties": {
"latitude": {
"type": "number",
"minimum": 57,
"maximum": 72,
"description": "Latitude in decimal degrees (WGS84). Norway spans about 57–72°N."
},
"longitude": {
"type": "number",
"minimum": -2,
"maximum": 35,
"description": "Longitude in decimal degrees (WGS84). Norway spans about 4–31°E."
},
"radius_m": {
"default": 100,
"description": "Search radius in metres",
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"max_results": {
"default": 20,
"description": "Maximum number of addresses to return",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"required": [
"latitude",
"longitude"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢validate_address(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.
Esquema de entrada
{
"type": "object",
"properties": {
"address": {
"type": "string",
"minLength": 1,
"description": "Address to validate, e.g. 'karl johans gt 1 oslo'"
}
},
"required": [
"address"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢search_place_names(query, max_results)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"description": "Place name to search for, e.g. 'Galdhøpiggen'. Supports the * wildcard."
},
"max_results": {
"default": 10,
"description": "Maximum number of matches to return",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"required": [
"query"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢find_place_names_near(latitude, longitude, radius_m, max_results)
Find the nearest official named features to a coordinate (Kartverket). Each result includes its feature type and distance from the point.
Esquema de entrada
{
"type": "object",
"properties": {
"latitude": {
"type": "number",
"minimum": 57,
"maximum": 72,
"description": "Latitude in decimal degrees (WGS84). Norway spans about 57–72°N."
},
"longitude": {
"type": "number",
"minimum": -2,
"maximum": 35,
"description": "Longitude in decimal degrees (WGS84). Norway spans about 4–31°E."
},
"radius_m": {
"default": 1000,
"description": "Search radius in metres",
"type": "integer",
"minimum": 1,
"maximum": 20000
},
"max_results": {
"default": 10,
"description": "Maximum number of features to return",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"required": [
"latitude",
"longitude"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_elevation(latitude, longitude)
Get the terrain elevation (metres above sea level) at a coordinate from the Norwegian national elevation model (Kartverket DTM). Covers mainland Norway.
Esquema de entrada
{
"type": "object",
"properties": {
"latitude": {
"type": "number",
"minimum": 57,
"maximum": 72,
"description": "Latitude in decimal degrees (WGS84). Norway spans about 57–72°N."
},
"longitude": {
"type": "number",
"minimum": -2,
"maximum": 35,
"description": "Longitude in decimal degrees (WGS84). Norway spans about 4–31°E."
}
},
"required": [
"latitude",
"longitude"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_elevation_profile(path, samples)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"path": {
"minItems": 2,
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"latitude": {
"type": "number",
"minimum": 57,
"maximum": 72,
"description": "Latitude in decimal degrees (WGS84). Norway spans about 57–72°N."
},
"longitude": {
"type": "number",
"minimum": -2,
"maximum": 35,
"description": "Longitude in decimal degrees (WGS84). Norway spans about 4–31°E."
}
},
"required": [
"latitude",
"longitude"
]
},
"description": "Ordered path vertices (at least 2). The path is sampled evenly between them."
},
"samples": {
"default": 20,
"description": "Number of evenly spaced points to sample along the whole path",
"type": "integer",
"minimum": 2,
"maximum": 50
}
},
"required": [
"path"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}⚪transform_coordinates(x, y, from_epsg, to_epsg)
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).
Esquema de entrada
{
"type": "object",
"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"
},
"from_epsg": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Source EPSG code, e.g. 4326"
},
"to_epsg": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Target EPSG code, e.g. 25833"
}
},
"required": [
"x",
"y",
"from_epsg",
"to_epsg"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢lookup_admin_unit(latitude, longitude, address)
Find which municipality (kommune) and county (fylke) a location falls in, with official codes (Kartverket). Give either a coordinate or a free-text address.
Esquema de entrada
{
"type": "object",
"properties": {
"latitude": {
"type": "number",
"minimum": 57,
"maximum": 72,
"description": "Latitude in decimal degrees (WGS84). Norway spans about 57–72°N."
},
"longitude": {
"type": "number",
"minimum": -2,
"maximum": 35,
"description": "Longitude in decimal degrees (WGS84). Norway spans about 4–31°E."
},
"address": {
"description": "Free-text address, used if no coordinate is given",
"type": "string",
"minLength": 1
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}⚪lookup_property(address, latitude, longitude, max_results)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"address": {
"description": "Free-text address",
"type": "string",
"minLength": 1
},
"latitude": {
"type": "number",
"minimum": 57,
"maximum": 72,
"description": "Latitude in decimal degrees (WGS84). Norway spans about 57–72°N."
},
"longitude": {
"type": "number",
"minimum": -2,
"maximum": 35,
"description": "Longitude in decimal degrees (WGS84). Norway spans about 4–31°E."
},
"max_results": {
"default": 5,
"description": "Maximum number of properties to return",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}⚪resolve_stop_place(query, max_results)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"description": "Place or stop name, e.g. 'Oslo S' or 'Bergen busstasjon'"
},
"max_results": {
"default": 5,
"description": "Maximum number of stops to return",
"type": "integer",
"minimum": 1,
"maximum": 10
}
},
"required": [
"query"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢find_stops_near(latitude, longitude, radius_m, max_results)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude in decimal degrees (WGS84)"
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude in decimal degrees (WGS84)"
},
"radius_m": {
"default": 1000,
"description": "Search radius in metres",
"type": "integer",
"minimum": 1,
"maximum": 5000
},
"max_results": {
"default": 5,
"description": "Maximum number of stops to return",
"type": "integer",
"minimum": 1,
"maximum": 10
}
},
"required": [
"latitude",
"longitude"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡plan_trip(from_place, from_latitude, from_longitude, to_place, to_latitude, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"from_place": {
"description": "Origin Stop Place ID (from resolve_stop_place)",
"type": "string"
},
"from_latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude in decimal degrees (WGS84)"
},
"from_longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude in decimal degrees (WGS84)"
},
"to_place": {
"description": "Destination Stop Place ID",
"type": "string"
},
"to_latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude in decimal degrees (WGS84)"
},
"to_longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude in decimal degrees (WGS84)"
},
"date_time": {
"description": "ISO 8601 time, e.g. '2026-08-24T09:00:00+02:00'. Defaults to now.",
"type": "string"
},
"arrive_by": {
"default": false,
"description": "If true, date_time is the desired arrival time instead of departure time",
"type": "boolean"
},
"transport_modes": {
"description": "Restrict to these transit modes, e.g. ['bus','tram']. Omit for all modes.",
"type": "array",
"items": {
"type": "string",
"enum": [
"air",
"bus",
"cableway",
"water",
"funicular",
"lift",
"rail",
"metro",
"taxi",
"tram",
"trolleybus",
"monorail",
"coach"
]
}
},
"walk_speed": {
"description": "Walking speed in metres per second (default ~1.3)",
"type": "number",
"minimum": 0.5,
"maximum": 3
},
"num_trip_patterns": {
"default": 3,
"description": "How many alternative trips to return",
"type": "integer",
"minimum": 1,
"maximum": 10
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_departures(stop_place_id, count)
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.
Esquema de entrada
{
"type": "object",
"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."
},
"count": {
"default": 10,
"description": "How many upcoming departures to return",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"required": [
"stop_place_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_realtime_status(stop_place_id, line_id)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"stop_place_id": {
"description": "Stop Place ID for a stop-level summary",
"type": "string",
"pattern": "^NSR:StopPlace:\\d+$"
},
"line_id": {
"description": "Line ID (e.g. 'ATB:Line:2_3', from get_departures) for a line-level summary",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_stop_accessibility(stop_place_id)
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.
Esquema de entrada
{
"type": "object",
"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."
}
},
"required": [
"stop_place_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢list_quays(stop_place_id)
List all quays (platforms/stopping points) at a stop place (Entur), with their public codes, coordinates, and wheelchair access.
Esquema de entrada
{
"type": "object",
"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."
}
},
"required": [
"stop_place_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡get_fare_zones(stop_place_id)
Get the fare (tariff) zone(s) a stop place belongs to (Entur). Fare zones set the ticket price for a journey.
Esquema de entrada
{
"type": "object",
"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."
}
},
"required": [
"stop_place_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢find_shared_vehicles(latitude, longitude, range_m, form_factors, count)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude in decimal degrees (WGS84)"
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude in decimal degrees (WGS84)"
},
"range_m": {
"default": 300,
"description": "Search radius in metres",
"type": "integer",
"minimum": 10,
"maximum": 2000
},
"form_factors": {
"description": "Filter by type. Common values: BICYCLE, SCOOTER, CAR, MOPED, CARGO_BICYCLE, OTHER.",
"type": "array",
"items": {
"type": "string"
}
},
"count": {
"default": 20,
"description": "Maximum number of vehicles to return",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"required": [
"latitude",
"longitude"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢find_docking_stations(latitude, longitude, range_m, count)
Find shared-mobility docking stations (e.g. city bike stations) near a coordinate (Entur Mobility), with available vehicle and free-dock counts per station.
Esquema de entrada
{
"type": "object",
"properties": {
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude in decimal degrees (WGS84)"
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude in decimal degrees (WGS84)"
},
"range_m": {
"default": 500,
"description": "Search radius in metres",
"type": "integer",
"minimum": 10,
"maximum": 3000
},
"count": {
"default": 10,
"description": "Maximum number of stations to return",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"required": [
"latitude",
"longitude"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_vehicle_positions(codespace_id, line_id, max_results)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"codespace_id": {
"description": "Operator codespace, e.g. 'ATB'. Optional if line_id is given.",
"type": "string"
},
"line_id": {
"description": "Line ID, e.g. 'ATB:Line:2_3'. Optional if codespace_id is given.",
"type": "string"
},
"max_results": {
"default": 50,
"description": "Maximum number of vehicles to return",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Comunidad
Evidencia