@nor-data/nabolag-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@nor-data/nabolag-mcpShow public transport, noise, and green areas near 59.914, 10.752"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@nor-data/nabolag-mcp
MCP-server som wrapper åpne norske nabolagsdata. Bygget for Nabodata-produktet, gjenbrukbar på tvers (delt personlig MCP-datapipeline).
Verktøy
hent_kollektivdekning(lat, lon, maksAvstandMeter?, maksTreff?)
Holdeplasser rundt et punkt fra Entur JourneyPlanner v3 (GraphQL): avstand, transportmidler (buss/trikk/t-bane/tog/båt) og linjer per holdeplass. Landsdekkende og komplett register — «ingen treff» er reell dekningsmangel.
Kilde:
api.entur.io/journey-planner/v3/graphqlLisens: åpne data (NLOD); krever kun
ET-Client-Name-header
hent_stoysone(lat, lon)
Veitrafikkstøy fra Statens vegvesens Norstøy via WMS GetFeatureInfo:
Støyvarselkart — T-1442 rød/gul prognosesone (ERF-veger)
Strategisk støykart — Lden (døgn) og Lnight (natt) i kumulative 5 dB-intervaller (høyeste trefte intervall = nivåbånd)
Ærlighets-design: «ingen treff» kan bety under terskel ELLER utenfor kartleggingsomfang (kun ERF-veger + storbyområder; kommunale veier utenfor storby, jernbane og fly inngår ikke) — output sier dette eksplisitt.
Kilde:
vegvesen.no/kart/ogc/norstoy_1_0/owsLisens: åpne data, punktoppslag uten avtale
Related MCP server: kartverket-mcp
Bygg og test
npm install
npm run build
node test-e2e.mjs # E2E mot live API-er (Oslo + Sørreisa + Sandvika-kontroll)Registrering (Claude Code)
"nabolag": {
"type": "stdio",
"command": "node",
"args": ["C:\\Users\\hei\\drist-nabolag-mcp\\dist\\index.js"],
"env": {}
}hent_grontareal(lat, lon) (v0.2.0)
Grøntareal fra to kilder: (1) FKB-AR5 arealtype på punktet (NIBIO WMS GetFeatureInfo, GML — MapServer støtter ikke JSON-infoformat) og (2) avstand til nærmeste offentlige park-/turområde (SSB WFS, ekspanderende søk 250 m → 2 km, punkt-i-polygon + nærmeste-hjørne-avstand).
Ærlighets-design: SSB-polygonene er navnløse og dekker primært tettsteder; i spredtbygde strøk pekes det til AR5-typen som bedre grøntsignal.
Kilder:
wms.nibio.no/cgi-bin/ar5+kart.ssb.no/api/mapserver/v1/wfs/parker_og_turomraaderLisens: åpne data, uten avtale
Veikart
Se Gap-kartleggingen (Notion, Nabodata-huben): #4 skoler/barnehager er
bygget separat som drist-udir-mcp; #5 solforhold (horisontprofil fra
hent_hoyde) gjenstår. Jernbane-/flystøy som supplement til hent_stoysone
via Geonorge WFS.
Available Tools
3 toolshent_grontarealA
Grøntareal rundt et koordinat (WGS84) fra to åpne kilder: (1) FKB-AR5 arealtype på selve punktet (bebygd/skog/dyrka/myr osv., NIBIO) og (2) avstand til nærmeste offentlige park-/turområde (SSB, ekspanderende søk 250 m → 2 km). NB: SSB-polygonene er navnløse og dekker primært tettsteder — 'ingen park' rurally betyr ofte at grøntarealet ER omgivelsene (se AR5-typen). Parkavstand måles til nærmeste polygon-hjørnepunkt (tilnærming). Kilder: NIBIO WMS + SSB WFS, åpne data uten avtale.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Breddegrad (WGS84) | |
| lon | Yes | Lengdegrad (WGS84) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavioral traits. It explains approximations (park distance to nearest polygon corner), data source limitations (SSB covers primarily built-up areas), and search range (250m to 2km). It does not mention authentication or rate limits, but for a read-only tool this is fairly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured paragraph that front-loads the main purpose, then details the two data sources and limitations. Every sentence adds value, and there is no redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description should clarify return values. It describes the two outputs (land type and park distance) and search range but does not specify the exact format (e.g., unit, type) or structure. Adequate but leaves some ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter having a brief description ('Breddegrad (WGS84)', 'Lengdegrad (WGS84)'). The tool description adds context on overall purpose but no additional parameter-level details. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves green area information around a coordinate from two specific open data sources (FKB-AR5 land type and SSB park distance). The verb 'hent' (get) and resource 'grøntareal' are specific, and the tool is well-differentiated from siblings (transport, noise).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the two data sources and their limitations (SSB polygons unnamed, rural areas no park) but does not explicitly guide when to use this tool versus alternatives like hent_kollektivdekning or hent_stoysone. Usage is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hent_kollektivdekningA
Finn kollektivholdeplasser (Entur/nasjonalt stoppestedsregister) rundt et koordinat (WGS84). Returnerer holdeplasser med avstand, transportmidler (buss/trikk/t-bane/tog/båt) og linjer. Dekningen er landsdekkende og komplett — 'ingen treff' betyr reelt ingen holdeplass innen radius. Kilde: Entur JourneyPlanner v3, åpne data (NLOD), ingen avtale.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Breddegrad (WGS84, f.eks. 59.93 for Oslo) | |
| lon | Yes | Lengdegrad (WGS84, f.eks. 10.76 for Oslo) | |
| maksAvstandMeter | No | Søkeradius i meter (default 500; bruk 1000-2000 for rurale strøk) | |
| maksTreff | No | Maks antall holdeplasser (default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses data source, coverage completeness, and that 'no results' is reliable. However, it does not mention authentication, rate limits, or side effects. Missing details on output format beyond a high-level list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences are efficient and front-loaded with the main action. The inclusion of source and licensing information is slightly extraneous but does not hinder clarity. Could be more concise by omitting the last sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description provides a basic overview of return fields (stops with distance, transport modes, lines) but lacks structure or field types. For a tool with 4 parameters and moderate complexity, the description is adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 4 parameters have thorough descriptions in the schema (100% coverage). The description adds minimal extra context beyond what the schema already provides (e.g., coordinating system WGS84). Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool finds public transport stops around a coordinate (WGS84) and lists returned information (distance, transport modes, lines). It is distinct from sibling tools hent_grontareal and hent_stoysone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies when to use (when stops near a coordinate are needed) but does not explicitly contrast with sibling tools or state when not to use it. No exclusion criteria or alternative suggestions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hent_stoysoneA
Sjekk om et koordinat (WGS84) ligger i Statens vegvesens støysoner: støyvarselkart (T-1442 rød/gul sone, prognoseår) og strategisk støykart (Lden døgn / Lnight natt, 5 dB-intervaller). NB: dekker kun veitrafikk på ERF-veger og storbyområder — 'ingen treff' kan bety under terskel ELLER utenfor kartleggingsomfang (kommunale veier utenfor storby, jernbane og fly inngår ikke; jernbane/lufthavn finnes som egne Geonorge-WFS-er). Kilde: SVV Norstøy WMS, åpne data.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Breddegrad (WGS84) | |
| lon | Yes | Lengdegrad (WGS84) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It fully discloses limitations (coverage only for certain roads and areas), data source, and the meaning of 'no hit'. There are no contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise with one main sentence and a parenthetical note for limitations. It is front-loaded with the primary function. Minor redundancy (e.g., 'Norsk' in source) but generally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Provides substantial context on data coverage and limitations, but lacks explicit description of the return value format (e.g., boolean, zone type). Given no output schema, this is a notable gap for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% with descriptions for lat and lon. The description adds no further parameter-level detail beyond the tool's purpose, which is already captured in purpose clarity. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool checks if a coordinate lies in road traffic noise zones, specifying the types of zones (støyvarselkart and strategisk støykart) and the data source (SVV Norstøy WMS). This is distinct from sibling tools for green areas and public transport.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states coverage is limited to road traffic on ERF roads and city areas, and explains that 'no hit' could mean below threshold or outside scope. Also notes that rail and airport noise are available via separate WFS services, providing clear guidance on when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v0.2.2- First observed
hent_grontareal - First observed
hent_kollektivdekning - First observed
hent_stoysone
TDQS
Scored across 3 tools
Each tool targets a distinct domain: green areas, public transport, and traffic noise. There is no functional overlap, and the descriptions clearly differentiate their purposes.
All three tools follow a consistent 'hent_<topic>' pattern (Norwegian for 'get'), making the tool names predictable and easy to understand as a set.
With 3 tools, the server is lean but well-scoped for its purpose of providing core neighborhood data. Each tool addresses an important aspect without unnecessary bloat.
The set covers three essential urban environment aspects (green space, transit, noise). While additional tools (e.g., schools, amenities) could improve completeness, the current surface is sensible and actionable for typical queries.
Maintenance
Related MCP Connectors
- earthOAuthcom.mireye
MCP server for Mireye Earth — federal-source-cited geospatial data for any MCP-aware agent.
Unofficial MCP server for the public PortlandMaps property/permit/zoning API. Not city-affiliated.
MCP server for Japan geodata: cadastral lot numbers (chiban) and reverse geocoding, for AI agents.
Nominatim MCP — wraps OpenStreetMap Nominatim geocoding API (free, no auth)
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server that wraps NVE's open GIS data to provide flood risk and landslide risk point lookups, with explicit uncertainty reporting (e.g., 'no data' vs 'safe') and source references.251 npmMIT
- AlicenseAqualityDmaintenanceMCP server that wraps Kartverket's open APIs for Norwegian geographic data including place names, addresses, elevation, municipalities, properties, statistical districts, and building points. Requires no authentication.738 npmMIT
- AlicenseAqualityDmaintenanceMCP server that wraps UDIR's open registries for Norwegian schools (NSR) and kindergartens (NBR), enabling search by municipality and retrieval of full details including coordinates and enrollment.432 npmMIT
- AlicenseAqualityDmaintenanceMCP server that provides tools to search Norwegian addresses, reverse geocode, find place names, and get elevation data from Kartverket's open geographic datasets.47 npm1MIT