# Aleva open data

> Swedish public data as read-only tools: registries, statistics, domains, transport, energy.

- name: se.aleva/data
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 83/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/se.aleva%2Fdata
- tools: https://api.protogrid.dev/v1/servers/se.aleva%2Fdata/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "data": {
      "type": "http",
      "url": "https://api.aleva.se/mcp",
      "headers": {
        "Authorization": "Bearer ${DATA_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${DATA_TOKEN}`.

## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-3d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 83/100 (new)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 79 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 47 of 47 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: airport_passengers (destructiveHint); court_rulings (destructiveHint); debt_restructuring (destructiveHint); …
- warn `tools.token_cost`: about 12,451 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 3 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 47, about 12,451 tokens to load them all
- tool set hash: 3f2f115fe4fa43553c9a08d8057af648
- tools last changed: 2026-10-18T05:18:08.581Z
- badge: [![protogrid quality](https://protogrid.dev/badge/se.aleva/data.svg)](https://protogrid.dev/servers/se.aleva/data)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-18 `web_mcp_servers` added
  - Swedish MCP, agent and API endpoints. Returns a list of records; pass next_cursor to get the next page. Fields: domain (varchar); tld (varchar); kind (varchar): mcp | ucp | a2a | openapi | api-catalog | llms; url (varchar): The advertised endpoint; platform (varchar): Platform the manifest looks generated by, when known; detail (varchar): Protocol version / capabilities; month (date). Attribution required when the data is shown: Source: Aleva (aleva.se)
- 2026-10-18 `web_mcp_registry` added
  - Swedish MCP servers (Aleva registry). Returns a list of records; pass next_cursor to get the next page. Fields: domain (varchar); tld (varchar): se or nu; name (varchar): Server name; description (varchar): Short description; url (varchar): MCP endpoint URL; transport (varchar): http | sse | stdio; tool_count (integer): Advertised tools (0 if not introspected); source (varchar): crawl | submitted; month (date): Snapshot month. Attribution required when the data is shown: Source: Aleva (aleva.se)
- 2026-10-18 `web_llms` added
  - llms.txt in Sweden. Returns a list of records; pass next_cursor to get the next page. Fields: month (date); domain (varchar); tld (varchar): se or nu; title (varchar): First heading; sections (integer): Number of sections; links (integer): Number of links; url (varchar): llms.txt URL. Attribution required when the data is shown: Source: Aleva (aleva.se), CC BY 4.0
- 2026-10-18 `web_commerce_agents` added
  - Swedish agentic commerce (UCP). Returns a list of records; pass next_cursor to get the next page. Fields: month (date); domain (varchar); tld (varchar): se or nu; platform (varchar): Platform (e.g. shopify); protocol_version (varchar): UCP version; capability_count (integer): Number of capabilities; mcp_endpoint (varchar): MCP endpoint, if any; url (varchar): Manifest URL. Attribution required when the data is shown: Source: Aleva (aleva.se), CC BY 4.0
- 2026-10-18 `web_apis` added
  - Swedish public APIs (OpenAPI). Returns a list of records; pass next_cursor to get the next page. Fields: month (date): Sweep month; domain (varchar); tld (varchar): se or nu; title (varchar): API title; oas_version (varchar): OpenAPI/Swagger version; operations (integer): Number of operations; paths (integer): Number of paths; url (varchar): Spec URL. Attribution required when the data is shown: Source: Aleva (aleva.se), CC BY 4.0
- 2026-10-18 `web_ai_stance` added
  - AI and crawler stance of Swedish websites per month. Returns a list of records; pass next_cursor to get the next page. Fields: month (date): First of the sweep month; tld (varchar): se or nu; domains (bigint): Domains swept; reachable (bigint): Answered over HTTPS; has_robots (bigint): Had a real robots.txt; with_sitemap (bigint): robots.txt declares a sitemap; disallow_all (bigint): Disallow: / for all crawlers; ai_train_no (bigint): Opt out of AI training; ai_train_yes (bigint): Opt in to AI training; content_signal (bigint): Has a Content-Signal line; mentions_mcp (bigint): robots.txt mentions MCP; mentions_llms (bigint): robots.txt references llms.txt. Attribution required when the data is shown: Source: Aleva (aleva.se), CC BY 4.0
- 2026-10-18 `web_agents` added
  - Swedish A2A agents. Returns a list of records; pass next_cursor to get the next page. Fields: month (date); domain (varchar); tld (varchar): se or nu; name (varchar): Agent name; provider (varchar): Provider organisation; skill_count (integer): Number of skills; streaming (boolean): Supports streaming; url (varchar): Agent card URL. Attribution required when the data is shown: Source: Aleva (aleva.se), CC BY 4.0

Full history: https://api.protogrid.dev/v1/servers/se.aleva%2Fdata/changes

## Remotes

- https://api.aleva.se/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (47)

- `air_passengers_monthly`: Air passengers in Sweden per month. Returns a list of records; pass next_cursor to get the next page. Fields: month (date); passengers (bigint); domestic (bigint); international (bigint); movements (bigint).
- `airport_passengers`: Passengers per airport and year. Returns a list of records; pass next_cursor to get the next page. Fields: year (integer); airport (varchar); passengers (bigint); movements (bigint); international_share (double); months (bigint): Months reported (the current year is partial).
- `consumer_prices`: Consumer price index per month. Returns a list of records; pass next_cursor to get the next page. Fields: month (date): First day of the month; measure_code (varchar): 00000807 index, 00000804 12-month change, 00000806 monthly change; measure (varchar); value (double).
- `court_rulings`: Published court rulings. Returns a list of records; pass next_cursor to get the next page. Fields: id (varchar); decided_on (date); published_at (timestamptz); court_code (varchar); court (varchar); kind (varchar): REFERAT (case report), DOM_ELLER_BESLUT (judgment or decision), ...; type (varchar); case_numbers (varchar); reference (varchar): Case report number, e.g. NJA 2026:12; keywords (varchar); laws (varchar): Provisions cited; summary (varchar).
- `court_rulings_by_court`: Rulings per court. Returns a list of records; pass next_cursor to get the next page. Fields: court_code (varchar); court (varchar); rulings (bigint); latest (date).
- `debt_restructuring`: Debt restructuring applications per month. Returns a list of records; pass next_cursor to get the next page. Fields: month (date); applications (bigint); women (bigint); men (bigint); eservice_share (double): Share filed via the e-service.
- `debt_restructuring_by_age`: Debt restructuring per year and age. Returns a list of records; pass next_cursor to get the next page. Fields: year (integer); age_group (varchar); applications (bigint).
- `describe_endpoint`: The fields, parameters, licence, sources and freshness of one data tool.
- `domain_lookup`: One domain in the latest zone. Returns one record, or an error when there is no match. Fields: domain (varchar): Domain name, lower-case; tld (varchar): se or nu; nameservers (varchar[]): NS host names; glue_v4 (varchar[]): In-zone glue A records; glue_v6 (varchar[]): In-zone glue AAAA records; has_ds (boolean): DNSSEC signed delegation; ds_algorithms (integer[]): DNSSEC algorithm numbers; serial (bigint): Zone serial the row comes from; fetched_at (timestamptz): When the zone was transferred. Attribution required when the data is shown: Contains data from the Swedish Internet Foundation (Internetstiftelsen), licensed under CC BY 4.0
- `domains_dropped`: Dropped .se and .nu domains on a date. Returns a list of records; pass next_cursor to get the next page. Fields: date (date): Day the change was seen (Europe/Stockholm); domain (varchar); tld (varchar); prev_nameservers (varchar[]): Name servers before the change; prev_has_ds (boolean); serial (bigint): Serial the change was seen in; detected_at (timestamptz). Attribution required when the data is shown: Contains data from the Swedish Internet Foundation (Internetstiftelsen), licensed under CC BY 4.0
- `domains_expiring`: Domains about to be released. Returns a list of records; pass next_cursor to get the next page. Fields: domain (varchar); tld (varchar); release_at (date): Day it can be registered again (from 04:00 UTC), unless renewed first; days_left (integer): Days from the list's date to the release date; label_length (integer): Characters before the dot; in_zone (boolean): Still delegated in the latest zone snapshot. Attribution required when the data is shown: Contains data from the Swedish Internet Foundation (Internetstiftelsen), licensed under CC BY 4.0
- `domains_new`: New .se and .nu domains on a date. Returns a list of records; pass next_cursor to get the next page. Fields: date (date): Day the change was seen (Europe/Stockholm); domain (varchar); tld (varchar); nameservers (varchar[]): Name servers after the change (empty when removed); has_ds (boolean); serial (bigint): Serial the change was seen in; detected_at (timestamptz). Attribution required when the data is shown: Contains data from the Swedish Internet Foundation (Internetstiftelsen), licensed under CC BY 4.0
- `domains_valuable`: Domains about to be released, with a value score. Returns a list of records; pass next_cursor to get the next page. Fields: domain (varchar); tld (varchar); release_at (date): Day it can be registered again (from 04:00 UTC), unless renewed first; days_left (integer); length (integer): Characters before the dot; score (integer): 0-100; higher is shorter, cleaner and closer to real words; word_sv (boolean); word_en (boolean); compound (boolean); possible_trademark (boolean): Contains a well-known brand: probably not usable; reasons_sv (varchar): Why, in Swedish; reasons_en (varchar): Why, in English. Attribution required when the data is shown: Contains data from the Swedish Internet Foundation (Internetstiftelsen), licensed under CC BY 4.0 SALDO, Språkbanken Text (University of Gothenburg), CC BY 4.0 Word list from SCOWL, copyright Kevin Atkinson (wordlist.aspell.net)
- `electricity_balance`: Electricity production and use per year. Returns a list of records; pass next_cursor to get the next page. Fields: year (integer); series (varchar); twh (double).
- `electricity_forecast`: Electricity production per source with forecast. Returns a list of records; pass next_cursor to get the next page. Fields: year (integer); series (varchar): Power source; twh (double).
- `foods`: Foods and nutrients per 100 g. Returns a list of records; pass next_cursor to get the next page. Fields: food_id (integer); name (varchar); kind (varchar); energy_kcal (double); protein_g (double); fat_g (double); saturated_fat_g (double); carbohydrates_g (double); sugars_g (double); fibre_g (double); salt_g (double); iron_mg (double); calcium_mg (double); vitamin_c_mg (double); vitamin_d_ug (double). Attribution required when the data is shown: Source: Livsmedelsverket's food composition database, CC BY 4.0
- `guest_nights`: Guest nights per month. Returns a list of records; pass next_cursor to get the next page. Fields: month (date); origin (varchar): Sverige or Utland; nights (bigint).
- `guest_nights_by_country`: Foreign guest nights per country and year. Returns a list of records; pass next_cursor to get the next page. Fields: year (integer); country (varchar); nights (bigint).
- `guest_nights_by_county`: Guest nights per county and year. Returns a list of records; pass next_cursor to get the next page. Fields: year (integer); county_code (varchar); county (varchar); nights (bigint); foreign_share (double).
- `house_prices`: House price index. Returns a list of records; pass next_cursor to get the next page. Fields: region_code (varchar); region (varchar); year (integer); index (double): 1981 = 100.
- `job_ads`: Open job ads per day. Returns a list of records; pass next_cursor to get the next page. Fields: date (date); dimension (varchar): total, remote, occupation-field, region or municipality; concept_id (varchar): JobTech taxonomy id; code (varchar): County or municipality code; term (varchar); ads (bigint).
- `job_ads_national`: Open job ads in Sweden per day. Returns a list of records; pass next_cursor to get the next page. Fields: date (date); ads (bigint); remote (bigint); remote_share (double).
- `medicine_shortages`: Medicine shortages. Returns a list of records; pass next_cursor to get the next page. Fields: shortage_id (varchar); npl_pack_id (varchar); product (varchar); package (varchar); substances (varchar); atc_code (varchar); atc_group (varchar): ATC main group (A alimentary tract, N nervous system, ...); holder (varchar): Marketing authorisation holder; starts (date); ends_forecast (date); ended (date); ongoing (boolean); last_updated (date). Attribution required when the data is shown: Contains data from Läkemedelsverket, CC BY 4.0
- `medicine_shortages_by_group`: Ongoing shortages per ATC group. Returns a list of records; pass next_cursor to get the next page. Fields: atc_group (varchar); packages (bigint); products (bigint). Attribution required when the data is shown: Contains data from Läkemedelsverket, CC BY 4.0
- `medicine_shortages_monthly`: New medicine shortages per month. Returns a list of records; pass next_cursor to get the next page. Fields: month (date); shortages (bigint): Shortages that started; packages (bigint): Packages affected. Attribution required when the data is shown: Contains data from Läkemedelsverket, CC BY 4.0
- `municipal_figures`: Key figures per municipality and year (Kolada). Returns a list of records; pass next_cursor to get the next page. Fields: kpi (varchar): Kolada key figure id; kpi_title (varchar); municipality_id (varchar); municipality (varchar); municipality_type (varchar): K municipality, L region; year (integer); value (double). Attribution required when the data is shown: Source: Kolada (RKA), CC BY 4.0
- `municipal_figures_latest`: Key figures per municipality, latest year. Returns a list of records; pass next_cursor to get the next page. Fields: kpi (varchar); kpi_title (varchar); municipality_id (varchar); municipality (varchar); municipality_type (varchar); year (integer); value (double). Attribution required when the data is shown: Source: Kolada (RKA), CC BY 4.0
- `party_agreement`: How often the parties vote alike. Returns a list of records; pass next_cursor to get the next page. Fields: party (varchar); other_party (varchar); votes (bigint): Votes where both parties voted yes or no; same (bigint); share (double). Attribution required when the data is shown: Source: Sveriges riksdag
- `party_attendance`: Votes and absence per party. Returns a list of records; pass next_cursor to get the next page. Fields: party (varchar): - is members without a party; riksmote (varchar): Session, e.g. 2025/26; votes (bigint); absent_share (double); abstain_share (double). Attribution required when the data is shown: Source: Sveriges riksdag
- `population`: Population per region and year. Returns a list of records; pass next_cursor to get the next page. Fields: region_code (varchar): 00 Sweden, 2 digits county, 4 digits municipality; region (varchar); level (varchar); year (integer); population (bigint).
- `population_latest`: Population in the latest year and change. Returns a list of records; pass next_cursor to get the next page. Fields: region_code (varchar); region (varchar); level (varchar); year (integer): Latest year; population (bigint): Population in the latest year; first_year (integer); change_pct (double): Change since first_year, percent.
- `riksbank_rates`: Policy rate and exchange rates per day. Returns a list of records; pass next_cursor to get the next page. Fields: series (varchar): SECBREPOEFF policy rate, SEKEURPMI, SEKUSDPMI, SEKGBPPMI; description (varchar); date (date); value (double). Attribution required when the data is shown: Source: Sveriges riksbank, CC BY 4.0
- `search_catalogue`: Find datasets and the tools that query them by words in their names, descriptions and fields (Swedish or English).
- `stats_dnssec`: DNSSEC adoption per zone and day. Returns a list of records; pass next_cursor to get the next page. Fields: date (date): Day of the snapshot (Europe/Stockholm); tld (varchar); domains (bigint); signed (bigint): Domains with a DS record; share_signed (double); ecdsa_p256 (bigint): Signed with algorithm 13 (ECDSA P-256); rsa_sha256 (bigint): Signed with algorithm 8 (RSA/SHA-256). Attribution required when the data is shown: Contains data from the Swedish Internet Foundation (Internetstiftelsen), licensed under CC BY 4.0
- `stats_nameservers`: Name server operators and market share. Returns a list of records; pass next_cursor to get the next page. Fields: tld (varchar); operator (varchar): Registered domain of the name server hosts, e.g. loopia.se; domains (bigint): Domains with at least one name server at this operator; share (double): domains / all domains in the zone; serial (bigint); fetched_at (timestamptz). Attribution required when the data is shown: Contains data from the Swedish Internet Foundation (Internetstiftelsen), licensed under CC BY 4.0
- `swestr`: Swestr per day. Returns a list of records; pass next_cursor to get the next page. Fields: date (date); rate (double): Percent; pctl12_5 (double): 12.5th percentile of the transactions' rates; pctl87_5 (double): 87.5th percentile; volume_msek (double): Transaction volume, SEK million; transactions (integer). Attribution required when the data is shown: Source: Sveriges riksbank, CC BY 4.0
- `train_punctuality`: Train punctuality per station and day. Returns a list of records; pass next_cursor to get the next page. Fields: date (date); station (varchar): Location signature; station_name (varchar); arrivals (bigint); canceled (bigint); on_time (bigint): At most 5 minutes late; on_time_share (double): Share on time among cancelled and reported arrivals; avg_delay_min (double): Average delay, early counted as 0.
- `train_punctuality_daily`: Train punctuality in Sweden per day. Returns a list of records; pass next_cursor to get the next page. Fields: date (date); arrivals (bigint); canceled (bigint); on_time_share (double); avg_delay_min (double).
- `weather_history`: Weather per hour and station. Returns a list of records; pass next_cursor to get the next page. Fields: station_id (varchar): SMHI station id; station (varchar); parameter (varchar): 1 temperature, 4 wind speed, 6 humidity, 7 precipitation; unit (varchar); observed_at (timestamptz); date (date): Day (Europe/Stockholm); value (double); quality (varchar): G checked, Y suspect (latest-hour data is not quality-controlled). Attribution required when the data is shown: Contains data from SMHI (Swedish Meteorological and Hydrological Institute), CC BY 4.0
- `weather_now`: Current weather per SMHI station. Returns a list of records; pass next_cursor to get the next page. Fields: station_id (varchar): SMHI station id; station (varchar); latitude (double); longitude (double); parameter (varchar): 1 temperature, 4 wind speed, 6 humidity, 7 precipitation; parameter_name (varchar); unit (varchar); observed_at (timestamptz); value (double); quality (varchar): G checked, Y suspect (latest-hour data is not quality-controlled). Attribution required when the data is shown: Contains data from SMHI (Swedish Meteorological and Hydrological Institute), CC BY 4.0
- `web_agents`: Swedish A2A agents. Returns a list of records; pass next_cursor to get the next page. Fields: month (date); domain (varchar); tld (varchar): se or nu; name (varchar): Agent name; provider (varchar): Provider organisation; skill_count (integer): Number of skills; streaming (boolean): Supports streaming; url (varchar): Agent card URL. Attribution required when the data is shown: Source: Aleva (aleva.se), CC BY 4.0
- `web_ai_stance`: AI and crawler stance of Swedish websites per month. Returns a list of records; pass next_cursor to get the next page. Fields: month (date): First of the sweep month; tld (varchar): se or nu; domains (bigint): Domains swept; reachable (bigint): Answered over HTTPS; has_robots (bigint): Had a real robots.txt; with_sitemap (bigint): robots.txt declares a sitemap; disallow_all (bigint): Disallow: / for all crawlers; ai_train_no (bigint): Opt out of AI training; ai_train_yes (bigint): Opt in to AI training; content_signal (bigint): Has a Content-Signal line; mentions_mcp (bigint): robots.txt mentions MCP; mentions_llms (bigint): robots.txt references llms.txt. Attribution required when the data is shown: Source: Aleva (aleva.se), CC BY 4.0
- `web_apis`: Swedish public APIs (OpenAPI). Returns a list of records; pass next_cursor to get the next page. Fields: month (date): Sweep month; domain (varchar); tld (varchar): se or nu; title (varchar): API title; oas_version (varchar): OpenAPI/Swagger version; operations (integer): Number of operations; paths (integer): Number of paths; url (varchar): Spec URL. Attribution required when the data is shown: Source: Aleva (aleva.se), CC BY 4.0
- `web_commerce_agents`: Swedish agentic commerce (UCP). Returns a list of records; pass next_cursor to get the next page. Fields: month (date); domain (varchar); tld (varchar): se or nu; platform (varchar): Platform (e.g. shopify); protocol_version (varchar): UCP version; capability_count (integer): Number of capabilities; mcp_endpoint (varchar): MCP endpoint, if any; url (varchar): Manifest URL. Attribution required when the data is shown: Source: Aleva (aleva.se), CC BY 4.0
- `web_llms`: llms.txt in Sweden. Returns a list of records; pass next_cursor to get the next page. Fields: month (date); domain (varchar); tld (varchar): se or nu; title (varchar): First heading; sections (integer): Number of sections; links (integer): Number of links; url (varchar): llms.txt URL. Attribution required when the data is shown: Source: Aleva (aleva.se), CC BY 4.0
- `web_mcp_registry`: Swedish MCP servers (Aleva registry). Returns a list of records; pass next_cursor to get the next page. Fields: domain (varchar); tld (varchar): se or nu; name (varchar): Server name; description (varchar): Short description; url (varchar): MCP endpoint URL; transport (varchar): http | sse | stdio; tool_count (integer): Advertised tools (0 if not introspected); source (varchar): crawl | submitted; month (date): Snapshot month. Attribution required when the data is shown: Source: Aleva (aleva.se)
- `web_mcp_servers`: Swedish MCP, agent and API endpoints. Returns a list of records; pass next_cursor to get the next page. Fields: domain (varchar); tld (varchar); kind (varchar): mcp | ucp | a2a | openapi | api-catalog | llms; url (varchar): The advertised endpoint; platform (varchar): Platform the manifest looks generated by, when known; detail (varchar): Protocol version / capabilities; month (date). Attribution required when the data is shown: Source: Aleva (aleva.se)
