Skip to main content
Glama

SSB Norway Population Statistics

ssbnorway.stats.population
Read-onlyIdempotent

Get Norwegian population statistics from the official SSB population register (table 07459). Returns total resident population by year as a JSON-stat2 dataset. Covers Norway as a whole (region_code="0") or any county/municipality by region code. Data goes back to 1986 and is updated annually (reference date January 1st each year). Region codes: "0" = whole country, "03" = Oslo, "11" = Rogaland, "15" = Møre og Romsdal, "18" = Nordland, "46" = Vestland, "50" = Trøndelag. Use ssbnorway.data.metadata on table 07459 to get all 994 municipality-level region codes. This is a simplified shortcut — for sex/age breakdowns use ssbnorway.data.query with table 07459 and the Kjonn/Alder dimension codes from ssbnorway.data.metadata.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
yearsNoNumber of most recent years to include (1–20, default 5). Table 07459 covers 1986 to the current reference year.
region_codeNoNorwegian region code from SSB classification. "0" = The whole country (default). County codes (2024 structure): "31" Østfold, "32" Akershus, "03" Oslo, "33" Buskerud, "34" Innlandet, "38" Telemark, "39" Vestfold, "40" Aust-Agder, "42" Vest-Agder, "11" Rogaland, "46" Vestland, "15" Møre og Romsdal, "50" Trøndelag, "18" Nordland, "55" Troms, "56" Finnmark. Use ssbnorway.metadata on table 07459 for all valid municipality codes.0

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNoPresent only when the call failed. Includes error code, message, request_id, and any provider-specific extras.
resultNoTool response payload. Shape varies per tool — consult the tool description and inputSchema. May be an object, array, string, or number depending on the upstream provider response.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds useful behavioral context: data range back to 1986, annual updates with January 1st reference, and the JSON-stat2 return format. It does not contradict annotations and adds meaningful transparency beyond them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately sized but every sentence earns its place: core purpose, scope, data history, region code hints, and alternative routing. It is front-loaded with the main action and structured logically, though slightly longer than strictly necessary. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with an output schema present, the description covers everything needed: what data is returned, how far back it goes, how it is updated, region code guidance, and when to use alternatives. Nothing critical is missing for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. The description goes further by providing concrete region code examples, clarifying the default region_code ('0' = whole country), and pointing to metadata for all 994 municipality codes. It also relates the years parameter to the available data range (1986 onward), adding meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get'), a precise resource ('Norwegian population statistics from the official SSB population register (table 07459)'), and the output format ('JSON-stat2 dataset'). It explicitly positions itself as a simplified shortcut compared to sibling ssbnorway.data.query, so an agent can immediately distinguish it from alternatives without inspecting schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: use this tool for simple total population by region, and explicitly routes to ssbnorway.data.query for sex/age breakdowns and to ssbnorway.data.metadata for full region codes. This is clear when-to-use and when-not-to-use information, distinguishing it from siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.