norway-location-transport-mcp
Norwegian transport (Entur) and geodata (Kartverket): trips, departures, addresses, elevation.
사용해야 할까요
품질 및 안전성
발견 사항 (1)
- LOWget_elevation_profile에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"norway-location-transport-mcp": {
"command": "npx",
"args": [
"norway-location-transport-mcp"
]
}
}
}실행 가능한 패키지
0.1.0stdio원격 엔드포인트
https://norway-location-transport-mcp.met-mcp-worker.workers.dev/mcpstreamable-http할 수 있는 일
도구 목록
도구 (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.
입력 스키마
{
"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?'.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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).
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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"
}커뮤니티
증거