Server data from the Official MCP Registry
Query Swedish public data: companies, SCB statistics, weather, transport, and more.
Query Swedish public data: companies, SCB statistics, weather, transport, and more.
The Apiverket MCP server is a well-structured tool for querying Swedish public data APIs. It has proper authentication via environment variables, reasonable input validation, and permissions that match its purpose (HTTP network access, environment variable reading). The main findings are low-severity code quality issues: broad error handling, lack of request logging, and missing content-type validation. No critical security vulnerabilities or malicious patterns detected. Supply chain analysis found 2 known vulnerabilities in dependencies (0 critical, 2 high severity). Package verification found 1 issue.
4 files analyzed · 8 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: GOVDATA_API_URL
Environment variable: GOVDATA_API_KEY
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-vinvuk-apiverket-mcp": {
"env": {
"GOVDATA_API_KEY": "your-govdata-api-key-here",
"GOVDATA_API_URL": "your-govdata-api-url-here"
},
"args": [
"-y",
"apiverket-mcp-server"
],
"command": "npx"
}
}
}From the project's GitHub README.
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.
| 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 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.
govdata_discover with the user's topic, not a guessed path.govdata_account for quota, tier, and production-readiness questions.govdata_query only with a supported endpoint returned by discovery.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.
{
"mcpServers": {
"apiverket": {
"command": "npx",
"args": ["-y", "apiverket-mcp-server"],
"env": {
"GOVDATA_API_URL": "https://apiverket.se",
"GOVDATA_API_KEY": "sk_test_demo"
}
}
}
}
{
"servers": {
"apiverket": {
"command": "npx",
"args": ["-y", "apiverket-mcp-server"],
"env": {
"GOVDATA_API_URL": "https://apiverket.se",
"GOVDATA_API_KEY": "sk_test_demo"
}
}
}
}
{
"mcpServers": {
"apiverket": {
"command": "npx",
"args": ["-y", "apiverket-mcp-server"],
"env": {
"GOVDATA_API_URL": "https://apiverket.se",
"GOVDATA_API_KEY": "sk_test_demo"
}
}
}
}
| 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 search and company lookup have different jobs:
govdata_discover(query: "company") to find the supported company endpoints./v1/companies/search when the user only has a company name or uncertain organisation number.org_number./v1/companies/{orgNumber} for repeated enrichment and automation.reset_at; use lookup when org numbers are already known.Company search has a separate daily quota by tier. govdata_account shows the configured key tier, remaining company-search quota, reset time, and available upgrade tiers. Apiverket does not expose company board, officer, owner, or UBO subresource paths through the company API.
| 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. |
# 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()
git clone https://github.com/vinvuk/apiverket-mcp.git
cd apiverket-mcp
npm install
npm run build
govdata_discover searches the built-in endpoint catalog without an API call.govdata_query calls Apiverket with the configured API key.sk_test_demo for sandbox setupMIT
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.