Apiverket

io.github.vinvukPublished by GitHub account vinvukv1.0.0Updated Nov 3, 2026

Query Swedish public data: companies, SCB statistics, weather, transport, and more.

Overview

AI-generated overview

Local MCP server that lets an assistant discover and query Swedish public data through the Apiverket API: companies, SCB statistics, weather, transport and…

What you can do
  • Search and browse the built-in catalog of supported Apiverket endpoints by topic or category, with workflow guidance on codes, coordinates, dates and pagination
  • Call a discovered endpoint and get structured JSON back, with recovery guidance on errors and truncation notes on large responses
  • Inspect the configured key's mode, tier, daily usage and remaining company-search and company-lookup quota
  • Work through families such as transport, weather, geography and municipalities, jobs, government, culture, education and environment
When to use it
Useful when an assistant needs Swedish public-sector or company data — train departures, weather, municipality statistics, parliament documents, job listings or organisation-number lookups — and you want it fetched through one API rather than ad-hoc scraping.
Requirements
Runs locally over stdio via npx (Node.js 18 or newer). Needs an Apiverket API key in GOVDATA_API_KEY; the default sk_test_demo key returns sandbox data only, and a live key is needed for production data. GOVDATA_API_URL sets the API base URL. Network access to the Apiverket API is required.
Before you install
The API key is passed as an environment variable and sent to Apiverket; use a sandbox key while testing and keep live keys out of shared configs. Queries and their parameters go to a third-party API. Daily API and company-search quotas apply by tier, and upgrading is suggested when limits block a workflow.

Installation

In SourceWeft

  1. Open Apiverket in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Apiverket MCP Server

An MCP (Model Context Protocol) server that gives AI assistants access to Swedish public data through the Apiverket API. It works with Claude Code, Claude Desktop, Cursor, VS Code, Gemini CLI-style MCP clients, and other MCP-compatible tools.

What it does

ToolPurpose
govdata_discoverSearch and browse supported Apiverket endpoints before choosing a path
govdata_queryCall a discovered endpoint and return structured JSON or recovery guidance
govdata_accountInspect sanitized key mode, tier, daily usage, company-search/company-lookup quota, and upgrade-relevant limits

Agents should call govdata_discover before govdata_query instead of guessing /v1 paths. After a 429 or when a user asks about limits, agents should call govdata_account.

How Agents Should Use Apiverket

  1. Discover: call govdata_discover with the user's topic, not a guessed path.
  2. Check context: call govdata_account for quota, tier, and production-readiness questions.
  3. Query: call govdata_query only with a supported endpoint returned by discovery.
  4. Recover: if a request fails, use the structured recovery guidance before retrying.

Discovery includes family workflows for transport, weather, geography, municipalities, jobs, government, culture, education, tourism, environment, and company data. These workflows explain search/list/detail patterns, required codes, coordinates, date formats, pagination, and common recovery steps.

Quick Start

Claude Code / Claude Desktop

json
{  "mcpServers": {    "apiverket": {      "command": "npx",      "args": ["-y", "apiverket-mcp-server"],      "env": {        "GOVDATA_API_URL": "https://apiverket.se",        "GOVDATA_API_KEY": "sk_test_demo"      }    }  }}

Cursor / VS Code

json
{  "servers": {    "apiverket": {      "command": "npx",      "args": ["-y", "apiverket-mcp-server"],      "env": {        "GOVDATA_API_URL": "https://apiverket.se",        "GOVDATA_API_KEY": "sk_test_demo"      }    }  }}

Gemini CLI-Style MCP Config

json
{  "mcpServers": {    "apiverket": {      "command": "npx",      "args": ["-y", "apiverket-mcp-server"],      "env": {        "GOVDATA_API_URL": "https://apiverket.se",        "GOVDATA_API_KEY": "sk_test_demo"      }    }  }}

Keys And Limits

VariableDefaultDescription
GOVDATA_API_URLhttps://apiverket.seApiverket API base URL
GOVDATA_API_KEYsk_test_demoSandbox key by default. Use a sk_live_* key from Apiverket for real production data.

sk_test_demo is for setup and safe sandbox responses. It is useful for checking that your MCP client is wired correctly, but production workflows should use a live key. Free live keys are good for exploration; upgrade when daily API or company-search limits block a real workflow.

Company Data With Agents

Company search and company lookup have different jobs:

  1. Use govdata_discover(query: "company") to find the supported company endpoints.
  2. Use /v1/companies/search when the user only has a company name or uncertain organisation number.
  3. Cache the returned org_number.
  4. Use /v1/companies/{orgNumber} for repeated enrichment and automation.
  5. If company search returns 429, stop retrying until reset_at; use lookup when org numbers are already known.

Company search and live company lookup have separate daily quota context by tier. govdata_account shows the configured key tier, remaining company-search quota, remaining company-lookup quota, reset time, and available upgrade tiers. Apiverket does not expose company board, officer, owner, or UBO subresource paths through the company API.

Common Family Workflows

FamilyGood first queryAgent workflow
Transportgovdata_discover(query: "train departures")Use station codes for /v1/transport/trains/{station}; use stop IDs for /v1/transit/departures; list datasets before transport statistics.
Weathergovdata_discover(query: "weather forecast")Use city endpoints for simple weather, warnings for national alerts, and station/lat/lon flows for air quality or observations.
Geography & municipalitiesgovdata_discover(query: "municipality population")Find official municipality/county/place codes first; search KPIs before municipality KPI detail calls; request geometry only when needed.
Jobsgovdata_discover(query: "jobs taxonomy")Use /v1/jobs/search for ordinary search; use taxonomy types/concepts/autocomplete for controlled filters.
Government & safetygovdata_discover(query: "parliament documents")Choose calendar, documents, members, committees, SFS, SOU, police events, or police stations based on the question.
Culture, education & environmentgovdata_discover(query: "school search")Search first, then reuse returned IDs/codes for detail endpoints; ensure q, municipality, type, or coordinates are present.

Tool Examples

text
# Discover endpointsgovdata_discover(query: "electricity prices")govdata_discover(category: "Weather & Climate")govdata_discover(query: "train departures")govdata_discover(query: "municipality KPI")govdata_discover(query: "jobs taxonomy")
# Query data after discoverygovdata_query(endpoint: "/v1/weather/{city}", path_params: {city: "stockholm"})govdata_query(endpoint: "/v1/transport/trains/{station}", path_params: {station: "Cst"})govdata_query(endpoint: "/v1/jobs/search", query_params: {q: "developer", limit: 5})govdata_query(endpoint: "/v1/taxonomy/types")govdata_query(endpoint: "/v1/companies/search", query_params: {q: "volvo", limit: 10})govdata_query(endpoint: "/v1/companies/{orgNumber}", path_params: {orgNumber: "5560125790"})
# Inspect tier and quota stategovdata_account()

Build From Source

bash
git clone https://github.com/vinvuk/apiverket-mcp.gitcd apiverket-mcpnpm installnpm run build

How It Works

  1. The MCP server runs locally over stdio.
  2. govdata_discover searches the built-in endpoint catalog without an API call.
  3. govdata_query calls Apiverket with the configured API key.
  4. Structured API errors are turned into recovery guidance for agents.
  5. Large responses are truncated with pagination guidance.

Requirements

  • Node.js >= 18
  • An Apiverket API key, or sk_test_demo for sandbox setup

License

MIT

Source: README.md at commit 945a010

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts