# Suomiatlas — Finnish area statistics (remote · suomiatlas.com)

Statistics for every Finnish postal code area and municipality: income, housing, crime, air quality

- Trust score: 64/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-07

## Components

- remote · `suomiatlas.com`: 64/100 (this document), [markdown](https://verifymcp.io/servers/com-suomiatlas-area-statistics/api-mcp.md), [page](https://verifymcp.io/servers/com-suomiatlas-area-statistics/api-mcp)

## Channel facts

- Endpoint: `https://suomiatlas.com/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.1.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-07.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 9 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 79/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2402 tokens (~218/item across 11 items; 9 tools + 2 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 3/100
  - Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http com-suomiatlas-area-statistics https://suomiatlas.com/api/mcp
```

### Codex

```toml
[mcp_servers.com-suomiatlas-area-statistics]
url = "https://suomiatlas.com/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-suomiatlas-area-statistics": {
      "type": "remote",
      "url": "https://suomiatlas.com/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-suomiatlas-area-statistics --url https://suomiatlas.com/api/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-suomiatlas-area-statistics:
    url: "https://suomiatlas.com/api/mcp"
```

### Other

```json
{
  "mcpServers": {
    "com-suomiatlas-area-statistics": {
      "type": "http",
      "url": "https://suomiatlas.com/api/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-07 (score 64, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-08-06 (score 64)

First indexed and scored.

## MCP tools (9)

### `search_places` (~197 tokens)

Search Finnish places

Resolve a Finnish place name to the code every other Suomiatlas tool takes. Handles postal areas (e.g. Toukola, Töölö), municipalities (Espoo, Akaa) and regions (Uusimaa). Diacritics are optional: "toolo" finds "Töölö". Call this first whenever the user names a place rather than a code. Many Finnish neighbourhood names are shared across cities, so several results is normal — present the choices instead of assuming the first one. Postal-area results carry an inhabitant count with the year it was published for; if you quote it, quote the year with it.

Input parameters:

- `kind` (string): Restrict to one grain. Omit to search all three.
- `limit` (integer): Maximum results (default 10).
- `query` (string, required): Place name or code, e.g. "Töölö", "Espoo", "00560"

### `get_place_stats` (~291 tokens)

Statistics for a Finnish place

Current statistics for one Finnish postal area or municipality: population, age, income, employment, education, housing sale prices (€/m²) and municipal crime rates, with national/regional percentiles where available. Accepts a name or a code and resolves it automatically; if the name is ambiguous it returns the candidates instead of guessing. Answers questions like "how many people live in Toukola?", "how many live in Akaa?" and "how much is an apartment in Töölö?". Returns a headline set of metrics by default — pass `variables` to fetch specific codes from list_variables. Anything in the `locked` field is withheld pending a Pro subscription, not missing: say so rather than reporting it as absent.

Input parameters:

- `includeAllVariables` (boolean): Return all ~131 variables. Large; only use when the headline set is insufficient.
- `includeCompositeScores` (boolean): Include composite 0-100 scores (postal areas only). Component detail needs Pro.
- `kind` (string): Force a grain when a name exists at both, e.g. Helsinki the municipality.
- `place` (string, required): Place name or code, e.g. "Toukola", "Akaa", "00560"
- `variables` (array): Extra variable codes to include beyond the headline set (see list_variables).
- `year` (integer): Statistics year; defaults to the newest available.

### `get_place_history` (~270 tokens)

History and trends for a Finnish place

Time series for one Finnish postal area or municipality, with the direction and size of change computed for each metric so the trend does not have to be eyeballed. Answers questions like "have apartment prices been rising in Espoo?" and "is the population growing?". Defaults to housing sale prices and population. For a postal area it also returns `trendMetrics`: precomputed 1/5/10-year indicators — population growth, income momentum, aging velocity, family influx, construction, education uplift, and unemployment relative to the national change — which answer "is this area gentrifying / aging / declining?" directly, and whose latest values are free for everyone. Free callers receive only the last 3 years of series, no per-year history for the trend metrics, and no municipality housing price history — each reported in `locked`. A short window is NOT evidence of a short trend: if a field is locked, say the full series requires Pro rather than describing the 3-year window as the trend.

Input parameters:

- `kind` (string): Force a grain.
- `place` (string, required): Place name or code, e.g. "Espoo", "Töölö", "00560"
- `variables` (array): Variable codes to chart (see list_variables). Defaults to housing prices and population.

### `get_air_quality` (~199 tokens)

Air quality for a Finnish place

Measured annual-mean air quality (PM2.5, PM10, NO₂, O₃) for a Finnish postal area or municipality, from Finnish Meteorological Institute and municipal monitoring stations, each compared against the WHO 2021 guideline and the EU limit. Answers "is the air clean in Vantaa?" with a verdict rather than a bare number. The latest reading, its benchmarks and its station are free for everyone; the multi-year `series` behind them needs Pro or an Area Pass and arrives empty otherwise, reported in `locked`. Coverage is sparse: Finland has ~160 stations, so a pollutant with no nearby station is reported as a gap — report that as unmeasured, never as clean.

Input parameters:

- `kind` (string): Municipality gives the median over its stations; postal area uses the nearest station.
- `place` (string, required): Place name or code, e.g. "Vantaa", "00560"

### `compare_areas` (~120 tokens)

Compare Finnish postal areas

Side-by-side statistics for several Finnish postal areas, with national medians and percentiles. Accepts names or codes. Free callers are served only the FIRST TWO areas — the API truncates silently, and this tool reports the dropped ones in `locked`. If areas were dropped, say so; do not present a two-area answer as if it covered everything asked for.

Input parameters:

- `places` (array, required): Postal area names or 5-digit codes, 2 to 12 of them.
- `year` (integer): Statistics year; defaults to the newest.

### `rank_areas` (~393 tokens)

Rank Finnish areas by a metric

Rank Finnish postal areas by any metric — highest or lowest income, population, unemployment, education, housing prices — nationally or within one municipality or region. Crime rate metrics (crime_total_rate and friends) rank municipalities instead, since crime is only published at that grain. Get valid metric codes from list_variables. Free callers receive at most 10 rows regardless of `limit`, reported in `locked`. `near` plus `withinKm` narrows the ranking to areas within a straight-line radius of another place. That is distance over the ground, never a travel or commute time. To screen areas on several metrics at once — "above-average family share and below-average housing prices" — rank by one metric and pass the rest as `includeVariables`; that is a single call. Do not call get_place_stats per area to collect a second metric.

Input parameters:

- `includeVariables` (array): Extra metric codes to report for each ranked area, as `additionalValues` on every row. Each metric's own year is given in `includedVariables`, since the sources run to different years. Not available…
- `limit` (integer): Rows to return (default 10).
- `near` (string): Keep only areas within `withinKm` of this place — a postal area or municipality, by name or code. Distance is centre to centre in a straight line.
- `order` (string): Highest first (default) or lowest first.
- `scope` (string): Limit to one municipality or region by name or code, e.g. "Espoo", "Uusimaa".
- `variableCode` (string, required): Metric code from list_variables, e.g. "hr_mtu", "unemployment_rate".
- `withinKm` (number): Radius in kilometres around `near`. Required with `near`, and only with it.
- `year` (integer): Year; defaults to the newest with data.

### `find_similar_areas` (~112 tokens)

Find statistically similar Finnish areas

Postal areas most like a given one across its whole statistical profile — income, age structure, education, housing and employment together, not one metric. Useful for "where else in Finland feels like this neighbourhood?". Similarity is statistical, not geographic: the results are usually spread across the country.

Input parameters:

- `limit` (integer): Neighbours to return (default 10).
- `place` (string, required): Postal area name or 5-digit code.
- `year` (integer): Year; defaults to the newest.

### `list_variables` (~161 tokens)

List available Suomiatlas metrics

The catalogue of every metric Suomiatlas publishes — population, income, education, employment, buildings and dwellings, housing sale prices, crime rates, composite scores — grouped by theme, with codes, units and types. Call this to find the right `variableCode` for rank_areas or get_place_stats. Pass `variableCode` to get the years that metric covers instead; coverage differs per metric (Paavo 2010–2024, housing prices 2009–2025, air quality 2023 onwards).

Input parameters:

- `group` (string): Filter to one theme, matched case-insensitively, e.g. "income", "crime".
- `variableCode` (string): Return the years available for this metric rather than the catalogue.

### `get_area_report` (~174 tokens)

PDF report link for a Finnish postal area

The download link for one postal area's printable PDF report (composite scores, trends and the full statistics table). Returns a URL and never the file itself — the report renders the same data the other tools return, so offer the link when someone wants the document, and answer questions from get_place_stats instead. Downloading requires Suomiatlas Pro or an Area Pass for that area; when the caller has neither, the link still comes back and `locked` says what it costs. Reports exist per postal area only, not per municipality.

Input parameters:

- `language` (string): Report language: fi (default), sv or en.
- `place` (string, required): Postal area name or 5-digit code, e.g. "Toukola", "00560"
- `year` (integer): Statistics year; defaults to the newest.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-suomiatlas-area-statistics/api-mcp#diagnostics

## Score history

- 2026-08-07: 64
- 2026-08-06: 64

## Links

- Remote endpoint: https://suomiatlas.com/api/mcp
- Changelog RSS feed: https://verifymcp.io/servers/com-suomiatlas-area-statistics/api-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-suomiatlas-area-statistics/api-mcp.json
- HTML version of this page: https://verifymcp.io/servers/com-suomiatlas-area-statistics/api-mcp
