Skip to content

Aleva open data

by aleva.se · remote · no sign-in to list tools · v1.0.0 · published by se.aleva

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

Changes · 44

47 tools: 44 change things and 3 only read.

Scanned Oct 21, 2026

2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http data https://api.aleva.se/mcp

Findings

Matches of fixed checks, with the text they matched.

2 warn
  • The server marks "job_ads" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "open": a word for a change.

    What this check looks for
  • The server marks "job_ads_national" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "open": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

47 tools

Changes things 44Claude Code: ask
  • air_passengers_monthlyAir passengers in Sweden per month.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • airport_passengersPassengers per airport and year.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • consumer_pricesConsumer price index per month.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • court_rulingsPublished court rulings.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • court_rulings_by_courtRulings per court.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • debt_restructuringDebt restructuring applications per month.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • debt_restructuring_by_ageDebt restructuring per year and age.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • domains_droppedDropped .se and .nu domains on a date.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • domains_expiringDomains about to be released.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • domains_newNew .se and .nu domains on a date.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • domains_valuableDomains about to be released, with a value score.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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)

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • electricity_balanceElectricity production and use per year.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • electricity_forecastElectricity production per source with forecast.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • foodsFoods and nutrients per 100 g.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • guest_nightsGuest nights per month.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • guest_nights_by_countryForeign guest nights per country and year.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • guest_nights_by_countyGuest nights per county and year.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • house_pricesHouse price index.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • job_adsOpen job ads per day.1 finding

    Why it is in this group

    • The description's first verb is "open": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "job_ads" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "open": a word for a change.

      What this check looks for
    Description, as the server wrote it
    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).

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • job_ads_nationalOpen job ads in Sweden per day.1 finding

    Why it is in this group

    • The description's first verb is "open": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "job_ads_national" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "open": a word for a change.

      What this check looks for
    Description, as the server wrote it
    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).

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • medicine_shortagesMedicine shortages.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • medicine_shortages_by_groupOngoing shortages per ATC group.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • medicine_shortages_monthlyNew medicine shortages per month.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • municipal_figuresKey figures per municipality and year (Kolada).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • municipal_figures_latestKey figures per municipality, latest year.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • party_agreementHow often the parties vote alike.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • party_attendanceVotes and absence per party.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • populationPopulation per region and year.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • population_latestPopulation in the latest year and change.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • riksbank_ratesPolicy rate and exchange rates per day.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • stats_dnssecDNSSEC adoption per zone and day.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • stats_nameserversName server operators and market share.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • swestrSwestr per day.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • train_punctualityTrain punctuality per station and day.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • train_punctuality_dailyTrain punctuality in Sweden per day.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • weather_historyWeather per hour and station.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • weather_nowCurrent weather per SMHI station.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • web_agentsSwedish A2A agents.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • web_ai_stanceAI and crawler stance of Swedish websites per month.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • web_apisSwedish public APIs (OpenAPI).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • web_commerce_agentsSwedish agentic commerce (UCP).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • web_llmsllms.txt in Sweden.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • web_mcp_registrySwedish MCP servers (Aleva registry).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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)

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • web_mcp_serversSwedish MCP, agent and API endpoints.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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)

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
Only reads 3Claude Code: allow
  • describe_endpointThe fields, parameters, licence, sources and freshness of one data tool.No findings

    Why it is in this group

    • The name "describe_endpoint" says "describe": a word for reading.
    Description, as the server wrote it
    The fields, parameters, licence, sources and freshness of one data tool.

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • domain_lookupOne domain in the latest zone.No findings

    Why it is in this group

    • The name "domain_lookup" says "lookup": a word for reading.
    Description, as the server wrote it
    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

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • search_catalogueFind datasets and the tools that query them by words in their names, descriptions and fields (Swedish or English).No findings

    Why it is in this group

    • The name "search_catalogue" says "search": a word for reading.
    Description, as the server wrote it
    Find datasets and the tools that query them by words in their names, descriptions and fields (Swedish or English).

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http data https://api.aleva.se/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__data__describe_endpoint",
      "mcp__data__domain_lookup",
      "mcp__data__search_catalogue"
    ],
    "ask": [
      "mcp__data__air_passengers_monthly",
      "mcp__data__airport_passengers",
      "mcp__data__consumer_prices",
      "mcp__data__court_rulings",
      "mcp__data__court_rulings_by_court",
      "mcp__data__debt_restructuring",
      "mcp__data__debt_restructuring_by_age",
      "mcp__data__domains_dropped",
      "mcp__data__domains_expiring",
      "mcp__data__domains_new",
      "mcp__data__domains_valuable",
      "mcp__data__electricity_balance",
      "mcp__data__electricity_forecast",
      "mcp__data__foods",
      "mcp__data__guest_nights",
      "mcp__data__guest_nights_by_country",
      "mcp__data__guest_nights_by_county",
      "mcp__data__house_prices",
      "mcp__data__job_ads",
      "mcp__data__job_ads_national",
      "mcp__data__medicine_shortages",
      "mcp__data__medicine_shortages_by_group",
      "mcp__data__medicine_shortages_monthly",
      "mcp__data__municipal_figures",
      "mcp__data__municipal_figures_latest",
      "mcp__data__party_agreement",
      "mcp__data__party_attendance",
      "mcp__data__population",
      "mcp__data__population_latest",
      "mcp__data__riksbank_rates",
      "mcp__data__stats_dnssec",
      "mcp__data__stats_nameservers",
      "mcp__data__swestr",
      "mcp__data__train_punctuality",
      "mcp__data__train_punctuality_daily",
      "mcp__data__weather_history",
      "mcp__data__weather_now",
      "mcp__data__web_agents",
      "mcp__data__web_ai_stance",
      "mcp__data__web_apis",
      "mcp__data__web_commerce_agents",
      "mcp__data__web_llms",
      "mcp__data__web_mcp_registry",
      "mcp__data__web_mcp_servers"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as data. Review it before you use it.