lovspor
Current

Documentation

The lovverk tool surface: what each tool answers, what it will not answer, authentication, the corpus behind it and the caveats.

lovverk is an MCP server with 17 read-only tools. None of them changes the corpus. How to point your client at it: Connect.

The tools

Finding. search_laws searches slug and title, search_body the legal text itself, and semantic_search by meaning — for when your question uses different words than the law does. list_recent_changes shows what changed most recently, and corpus_status how fresh the corpus you are reading from is.

Reading. get_law returns the whole text, get_section a single provision with its cross-references already checked, and list_sections the table of contents — so the model need not pull an entire act through its context window to reach one paragraph.

Verifying. validate_citation answers whether a citation exists at all, and verify_quote whether a verbatim quote really appears in the provision you attribute it to. These two exist for the most common failure of all: a model quoting words that are not there.

History. get_law_history, list_law_versions, get_law_at and diff_law_versions read the corpus's own git history: what the corpus held at the end of a given date, and what differed between two dates. get_temporal_events returns what the source itself states about amendments and commencement.

EU and EEA. get_eu_basis gives the CELEX identifiers an act implements; search_eu_implementations goes the other way, from an EU document to Norwegian acts.

What it will not answer

The corpus behind it

5,873 documents at the last release: Norwegian acts and central regulations currently in force, taken from Lovdata's open data and rendered as Markdown. Browse them here — acts and regulations.

The distinction is the source's own: lover are passed by the Storting, sentrale forskrifter are issued under the authority of an act by a ministry or directorate. Local and municipal regulations are not included.

Source: Lovdata, licensed under NLOD 2.0, and every file carries the licence in its own front matter. The corpus is public in lovverk; the engine that builds it is lovspor, under AGPL-3.0.

Authentication

The hosted service always requires credentials: a call without them gets 401 with a Bearer challenge. There are two forms. Opaque tokens are handed out by hand, for developer clients. Hosted OAuth login, for chat-app connectors such as claude.ai and ChatGPT, is on when the OAuth 2.1 pair is configured on the server — the service then answers RFC 9728 discovery; when it is off, there is no .well-known at all.

With OAuth on, both forms are accepted at once: a token that already works keeps working. Which state the service was actually observed in at the last release is on status — not here.

Quotas

Every call is counted in two layers: per credential and per instance. Both bound calls in flight, calls per minute, calls per day and semantic searches per day. The limits are set per token and can be changed without a release, so they travel with the token you are given — not with this page. The counters live in memory: a restart forgives the day.

Honest caveats