norway-location-transport-mcp

Norwegian transport (Entur) and geodata (Kartverket): trips, departures, addresses, elevation.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
96%
Vollständigkeit des Schemas
97%
Qualität der Benennung
95%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (1)

  • LOWTool 'get_elevation_profile' description lacks action verbin get_elevation_profile

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~4,223Tokens (Tool-Definitionen)
~1.5 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (3.30% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "norway-location-transport-mcp": {
      "command": "npx",
      "args": [
        "norway-location-transport-mcp"
      ]
    }
  }
}

Ausführbare Pakete

npmnorway-location-transport-mcp0.1.0stdio

Remote-Endpunkte

https://norway-location-transport-mcp.met-mcp-worker.workers.dev/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (21)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢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.

Eingabe-Schema

{
  "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?'.

Eingabe-Schema

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

Eingabe-Schema

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

Eingabe-Schema

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

Eingabe-Schema

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

Eingabe-Schema

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

Eingabe-Schema

{
  "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).

Eingabe-Schema

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

Eingabe-Schema

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

Eingabe-Schema

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

Eingabe-Schema

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

Eingabe-Schema

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

Eingabe-Schema

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

Eingabe-Schema

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

Eingabe-Schema

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

Eingabe-Schema

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

Eingabe-Schema

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

Eingabe-Schema

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

Eingabe-Schema

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

Eingabe-Schema

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

Eingabe-Schema

{
  "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"
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet21 Tools
verifiziertVersion nicht aufgezeichnet21 Tools
verifiziertVersion nicht aufgezeichnet21 Tools