Featured

Deploy OpenClaw in 60 seconds β€” 20% off logoDeploy OpenClaw in 60 seconds β€” 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger β†’
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger β†’
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free β†’
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now β†’
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data β€” no proxies, no parsers, no maintenance.

Start building free β†’
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it β€” secured from day one.

Get it set up for you β†’
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free β†’
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here β†’

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

vinvuk/apiverket-mcp MCP server](https://glama.ai/mcp/servers/vinvuk/apiverket-mcp/badges/score.svg)](https://glama.ai/mcp/servers/vinvuk/apiverket-mcp) πŸ“‡ ☁️ 🍎 πŸͺŸ 🐧 - Query Swedish public data through Apiverket, including company data, SCB statistics,...

README.md

Apiverket MCP Server

<!-- mcp-name: io.github.vinvuk/apiverket-mcp -->

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

| Tool | Purpose | |------|---------| | govdata_discover | Search and browse supported Apiverket endpoints before choosing a path | | govdata_query | Call a discovered endpoint and return structured JSON or recovery guidance | | govdata_account | Inspect 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

{
  "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

{
  "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

{
  "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

| Variable | Default | Description | |----------|---------|-------------| | GOVDATA_API_URL | https://apiverket.se | Apiverket API base URL | | GOVDATA_API_KEY | sk_test_demo | Sandbox 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

| Family | Good first query | Agent workflow | |--------|------------------|----------------| | Transport | govdata_discover(query: "train departures") | Use station codes for /v1/transport/trains/{station}; use stop IDs for /v1/transit/departures; list datasets before transport statistics. | | Weather | govdata_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 & municipalities | govdata_discover(query: "municipality population") | Find official municipality/county/place codes first; search KPIs before municipality KPI detail calls; request geometry only when needed. | | Jobs | govdata_discover(query: "jobs taxonomy") | Use /v1/jobs/search for ordinary search; use taxonomy types/concepts/autocomplete for controlled filters. | | Government & safety | govdata_discover(query: "parliament documents") | Choose calendar, documents, members, committees, SFS, SOU, police events, or police stations based on the question. | | Culture, education & environment | govdata_discover(query: "school search") | Search first, then reuse returned IDs/codes for detail endpoints; ensure q, municipality, type, or coordinates are present. |

Tool Examples

# Discover endpoints
govdata_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 discovery
govdata_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 state
govdata_account()

Build From Source

git clone https://github.com/vinvuk/apiverket-mcp.git
cd apiverket-mcp
npm install
npm 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

See related servers & alternatives β†’

Related MCP servers

Browse all β†’

Related guides

Hand-picked reading to help you choose and use Maps & Location servers.