Pristavla – Norwegian prices / norske priser
Server Details
Norwegian prices and what they consist of, from open data. Norske priser fra åpne kilder.
- Status
- Healthy
- Uptime
- 100.0% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
The four tools have clearly distinct roles: get_page retrieves one page's rendered numbers, get_series retrieves open tabular data, list_pages enumerates pages, and search queries the site. An agent can easily choose between them based on whether it needs a single page, a dataset, a listing, or discovery.
Three tools follow a clean verb_noun pattern (get_page, get_series, list_pages), while search is a bare verb. This is a minor deviation and still very readable, but not perfectly uniform.
Four tools are well-scoped for a read-only price site: page access, dataset access, listing, and search. Each tool earns its place, and there is no redundant tool.
The surface covers discovery, listing, page retrieval, and open-data series retrieval, which is most of what an agent would need. A dedicated dataset-listing or schema tool is missing, but get_series enumerates datasets in its description, so agents can work around it.
Available Tools
4 toolsget_pageTallene på en side / Get a page's numbersARead-onlyIdempotentInspect
Hent tallene på én side slik siden viser dem: hovedtallet (hero), sammendrag, datoer, hovedtabellen med kilde-URL og sjekkdato per rad, lisens og hvordan du siterer. Rader fra kilder som ikke tillater gjenbruk er utelatt og nevnt i notes. Get one page's numbers exactly as the page shows them: the headline number, summary, dates, the main table with source URL and check date per row, licence and how to cite it. Rows whose source does not allow reuse are left out and named in notes. Slug examples: «diesel», «strom/ostlandet», «kommunale-avgifter/bergen», «valuta/eur», «gebyrer». A full pristavla.no URL works too.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Sidens sti uten skråstrek, eller hele URL-en. «» er forsiden. The page path, or its full URL. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| cite | Yes | |
| hero | Yes | Sidens hovedtall slik det står øverst på siden. The page's headline number as printed. |
| kind | No | |
| name | No | |
| rows | Yes | |
| slug | Yes | |
| gated | Yes | |
| notes | Yes | |
| title | Yes | |
| format | No | |
| checked | No | |
| license | Yes | «facts»: priser lest fra tilbyderens egen side, ingen lisens gis. Prices read from the provider's own page; facts, no licence given. |
| summary | No | |
| updated | No | |
| datasets | No | |
| attribution | Yes | |
| license_scope | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds a genuine behavioral disclosure beyond them: rows whose source does not allow reuse are omitted and named in notes, which tells the agent the result set may be incomplete and why.
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 content is dense and front-loaded, leading with what is returned. However, the entire description is duplicated in Norwegian and English, doubling the length so that every sentence is paid for twice rather than earning its place once.
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?
For a one-parameter read tool with an output schema and full annotation coverage, the description is nearly complete: input format is exemplified and the reuse-omission rule is explained. Return-value details are somewhat redundant given the output schema, but nothing needed to call it correctly is missing.
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%, so the baseline is 3, and the description goes beyond it with multiple worked slug examples (including nested paths like 'strom/ostlandet') and the meaning of the empty string as the front page.
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?
Specific verb+resource ('Get one page's numbers exactly as the page shows them') with an enumeration of what is returned: headline number, summary, dates, main table with source URL and check date, licence and citation. It implicitly separates itself from list_pages and search by scoping to a single page, though it never names a sibling explicitly.
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?
Usage is implied rather than stated: five concrete slug examples and the note that a full pristavla.no URL also works tell the agent how to call it, but there is no guidance on when to choose this over get_series, list_pages or search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_seriesTidsserie fra /data/ / Get a datasetARead-onlyIdempotentInspect
Hent rader fra en av tabellene under pristavla.no/data/ (åpne data med lisens og kilde), valgfritt avgrenset på periode og filtrert på kolonneverdier. Lange svar kortes til de nyeste radene. Get rows from one of the open tables under pristavla.no/data/ (licensed, sourced), optionally limited to a period and filtered on column values. Long answers keep the newest rows. Datasets: drivstoff-ssb (Pumpepris for diesel og bensin, landssnitt per måned, 1986-08–2026-09); drivstoff-oppdeling (Hva literen består av, per måned, 2020-01–2026-09); drivstoff-europa (Pumpepris i Sverige, Danmark, Tyskland, Finland og EU, per uke, 2005-01-03–2026-10-26); strompris-husholdninger-ssb (Strømpris for husholdninger per kvartal, delt opp, 2012K1–2026K2); renter-norges-bank (Styringsrenta og statsrentene per måned, 2013-12–2026-11); styringsrente-endringer (Endringer i styringsrenta, 2014-12-12–2026-09-25); boliglansrente-ssb (Renta på nye boliglån per måned, 2013-12–2026-09); matpriser-kpi-ssb (Konsumprisindeksen for mat, varegruppe for varegruppe, 2000-01–2026-09); valuta-dag (Kronekursen per virkedag, alle valutaene, 2025-09-23–2026-11-02); valuta-maned (Kronekursen per måned, alle valutaene, 1986-01–2026-10); kommunale-avgifter-ssb (Kommunale gebyrer for vann, avløp, renovasjon og feiing, 2020–2026); boligpriser-ssb (Kvadratmeterpris og antall salg av brukte boliger per kommune, 2025–2026K3); ravarer-verdensbanken (Råvarepriser per måned i dollar og kroner (Verdensbanken), 1960-01–2026-09); olje-gass-eia-dag (Brent og Henry Hub per dag (EIA), 2023-11-01–2026-10-27); olje-gass-eia-maned (Brent og Henry Hub per måned (EIA), 1987-05–2026-09); laks-eksportpris-ssb (Eksportpris og mengde for laks per uke, 2000U01–2026U43); aluminium-eksport-ssb (Norges eksport av aluminium per måned, 1988-01–2026-09); tobakksavgift (Tobakksavgiften per år, 2016–2026)
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Siste periode. Last period (inclusive, prefix match). | |
| from | No | Første periode, samme form som tabellens periodekolonne: «2024», «2024-06», «2024-06-30», «2025K1». First period (inclusive, prefix match). | |
| limit | No | Max rows (newest kept). | |
| filter | No | Kolonne = verdi, f.eks. {"land": "SE"} eller {"kommune": "Bergen"}. Exact match per column (strings case-insensitive). | |
| dataset | Yes | Tabellens navn. Dataset slug. |
Output Schema
| Name | Required | Description |
|---|---|---|
| csv | No | |
| json | No | |
| kind | No | |
| page | No | |
| rows | Yes | |
| notes | No | |
| title | Yes | |
| columns | Yes | |
| dataset | Yes | |
| license | Yes | |
| sources | No | |
| updated | No | |
| coverage | No | |
| truncated | No | |
| total_rows | No | |
| attribution | Yes | |
| description | No | |
| license_scope | No | |
| period_column | No | |
| returned_rows | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds real behavioral context beyond that: answers are silently truncated to the newest rows when long, and the data is licensed and sourced. It does not quantify the truncation threshold, but the key surprise (row loss on large queries) is disclosed.
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 structure is sensible — general behavior first, then a dataset catalog — and each catalog entry carries useful information. But the entire preamble is duplicated verbatim in Norwegian and English, roughly doubling length for no informational gain; the duplication is the main waste.
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?
With an output schema present and annotations carrying the safety profile, the description only needs to explain selection and scoping, which it does thoroughly via the dataset catalog and the truncation note. The remaining gap is operational: it never states the row ordering, the threshold that triggers truncation, or how limit interacts with it.
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%, so baseline is 3, but the description adds meaning the schema lacks: each enum value is expanded with what the table contains and its exact period coverage (e.g. 'valuta-dag ... 2025-09-23–2026-11-02'), which is essential for choosing a dataset and valid from/to values. It still says nothing extra about the filter column names per dataset, which would require schema knowledge.
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?
The description opens with a specific verb and resource: 'Get rows from one of the open tables under pristavla.no/data/', and immediately narrows scope (optionally bounded by period, filtered on column values). It then enumerates the exact datasets with contents and temporal coverage, so an agent knows precisely what this tool returns versus the page-oriented siblings.
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?
Usage is only implied through scope: this is the tabular-data accessor, so an agent can infer it is not the tool for pages or free-text search. However, get_page, list_pages and search are never named, and there is no explicit 'use X instead when Y' guidance or statement of when filtering vs. date-bounding is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pagesAlle sider / List pagesBRead-onlyIdempotentInspect
List sidene på pristavla.no med tittel, URL, type, dato og hovedtall, valgfritt filtrert på mappe (f.eks. «kommunale-avgifter», «valuta», «bolig») eller type. List the pages of pristavla.no with title, URL, kind, date and headline number, optionally filtered by folder prefix or kind. Kinds: Bil og reise, Boligpris per kommune, Handle, Hjem, Kommunale avgifter, Krypto, Mobil i utlandet, Om tallene, Penger, Pristavla, Råvarer, Strøm per prisområde, Ukesrapporter, Valuta.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Sidetype. Page kind. | |
| limit | No | ||
| offset | No | ||
| prefix | No | Mappe, f.eks. «kommunale-avgifter» eller «mobil/utlandet». Folder prefix of the slug. |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | No | |
| pages | Yes | |
| total | Yes | |
| offset | Yes | |
| next_offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds that it is a listing with folder/kind filtering, which is useful context, but says nothing about pagination behavior despite limit/offset parameters. With annotations doing the heavy lifting, a 3 is appropriate.
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 purpose is front-loaded, which is good, but the entire description is duplicated in Norwegian and English, effectively doubling its length for the same content. The long kind list is also repeated verbatim from the schema enum. Functional but not 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?
For a filtered-list tool with an existing output schema, the description covers purpose, returned fields, and filter options, and annotations cover safety. The notable gap is pagination: limit/offset are neither explained in the description nor in the schema, which an agent listing potentially hundreds of pages would need. Otherwise complete enough.
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 50%: kind and prefix are documented in the schema, while limit and offset are not. The description compensates partly by giving concrete folder-prefix examples ('kommunale-avgifter', 'valuta', 'bolig') and enumerating the kind values, but it never explains the limit/offset pagination semantics. Marginal added value over the schema.
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?
The description states a specific verb and resource ('List the pages of pristavla.no') and enumerates the returned fields (title, URL, kind, date, headline number), so the agent knows exactly what the tool produces. It does not explicitly name or contrast itself with siblings like get_page or search, but the list-vs-get distinction is largely self-evident. Clear purpose, no explicit sibling differentiation.
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?
Usage is implied by 'optionally filtered by folder prefix or kind,' which tells the agent filtering is available. However there is no explicit when-to-use or when-not-to-use guidance and no reference to alternatives such as search or get_page for single pages. Adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSøk på Pristavla / Search PristavlaARead-onlyIdempotentInspect
Søk etter sider på pristavla.no med nettstedets eget søk (tåler æøå skrevet som ae/o/a, synonymer som «bensinpris», «euro», «oslo», «gull»). Gir tittel, URL og sidens hovedtall. Search the pages of pristavla.no, a Norwegian price-comparison site, with the site's own search (Norwegian words and synonyms; ø/æ may be typed as o/ae). Returns title, canonical URL and the page's headline number. Use get_page on a result for the full numbers, with sources and dates.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (1–25). | |
| query | Yes | Søkeord, helst på norsk, f.eks. «diesel», «strøm i morgen», «Bergen», «Netflix». Search words, preferably Norwegian. |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| total | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safe-read profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), so the description is not burdened with safety disclosure. It still adds real behavioral context: the search backend accepts synonyms ('bensinpris', 'euro', 'gull', 'oslo') and tolerates ø/æ typed as o/ae, and it states the result shape (title, canonical URL, headline number).
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 search-routing sentence is front-loaded and useful, but the entire content is duplicated in Norwegian and English, roughly doubling length without adding information for a tool-selecting agent. The first sentence also mixes capability detail into a slot where the primary purpose should sit.
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?
An output schema exists, so return values need not be re-specified, yet the description still names the returned fields and points to get_page for the full numbers with sources and dates. For a two-parameter search tool with full annotation coverage and a high-coverage schema, nothing an agent needs to invoke it correctly is missing.
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%, so both parameters are already documented with examples and the 1–25 bound. The description goes beyond the schema by disclosing that the query is matched against synonyms and that diacritics are normalized (ø/æ as o/ae), which materially changes how an agent should phrase the query string.
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?
States a specific verb and resource ('Search the pages of pristavla.no ... with the site's own search') and identifies the domain as a Norwegian price-comparison site. It is clearly distinguishable from siblings like get_page and list_pages, which address a single page or enumerate pages rather than run a query.
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 routes the agent onward: 'Use get_page on a result for the full numbers, with sources and dates,' which tells the agent this tool returns shallow results and where the deep data lives. It does not address when to prefer list_pages or get_series instead, so it stops short of a full when/when-not/alternative treatment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Related MCP Connectors
Product search, store prices and price history from Norwegian web shops. Read-only, no login.
Norwegian public data for AI agents: companies, tenders, addresses, laws, exchange rates.
Prices people actually paid, from official open data: homes, rents, fuel, energy, food, medicines.
Dutch energy market, open data computed nightly: cheapest contracts, market levels, offer lifecycle
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceReal prices people actually paid (homes, rents, fuel, energy, groceries, medicines) from official open data, with source, period, sample size and licence on every answer. Read-only, no API key.MIT
- AlicenseAqualityAmaintenanceAny Norwegian company's revenue, profit, debt and who sits on its board, which companies are going bankrupt, who owns what through group structures, plus house prices, mortgage rates, wages and inflation straight from Statistics Norway. Official registers, no API keys, every answer cites its source.141MIT
- AlicenseNot gradedqualityBmaintenanceEnables querying current and historical retail petrol, diesel, and LPG prices across European countries, comparing prices by week, and checking data coverage.404 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables analysis of Danish household electricity consumption to suggest optimal times for shifting usage to save money, using hourly import and grid charges from Eloverblik and spot prices from Energi Data Service.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.