Suomiatlas MCP server
An MCP (Model Context Protocol) server that lets an AI assistant query Suomiatlas directly: "how many people live in Toukola?", "what does an apartment cost in Töölö?", "is the air clean in Vantaa?". Covers ~3,000 Finnish postal code areas and all 308 municipalities.
Connect with nothing installed
The server is hosted at https://suomiatlas.com/api/mcp over Streamable HTTP. In Claude Code that is one command; in other clients, add the same URL as an HTTP-type MCP server.
The --header line is optional. Leave it out and you get the free tier, which answers every question above; supply a key and you get your account's Pro access or Area Pass.
claude mcp add --transport http suomiatlas https://suomiatlas.com/api/mcp \
--header "Authorization: Bearer sk_live_..."
Other clients
If your client has no command for adding a server, put the same URL in its configuration file as an HTTP-type MCP server.
The Authorization line is optional — leave it out and you get the free tier.
{
"mcpServers": {
"suomiatlas": {
"type": "http",
"url": "https://suomiatlas.com/api/mcp",
"headers": { "Authorization": "Bearer sk_live_..." }
}
}
}
API keys
Create a key while signed in to Suomiatlas, under API keys. It is shown once; afterwards you see only its prefix. Revoke it at any time.
Keys travel in the Authorization header, never in a cookie. A key can read your account's Pro data, but cannot create or revoke keys, or change the account.
curl -X POST https://suomiatlas.com/api/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'Authorization: Bearer sk_live_...' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
What the free tier withholds
When something is behind the paywall, the result carries a locked field naming what is missing and why. The data exists — it is simply not returned. That lets an assistant say "this needs Pro" instead of reporting the data as absent, or describing a three-year window as if it were the whole trend.
{
"summary": "Espoo: latest median sale prices - Two-room apartment: 3718 EUR/m2 (2025).",
"data": { "latestHousingPrices": [ ... ] },
"tier": "free",
"locked": [
{
"field": "housingPriceSeries",
"reason": "Housing price history for a municipality requires a Suomiatlas Pro subscription. The data exists - it is withheld, not missing.",
"upgrade": "https://suomiatlas.com/hinnat"
}
]
}
Example: is there a beach nearby?
Asked "is there a swimming pool or a beach in or near Kallio?", the assistant answers in one call: get_nearby_places with withinKm (up to 5 km) returns the area's own places and those within that distance of its boundary, nearest first, with their distance.
The distance is straight-line from the area's boundary, 0 km inside it — not a walking or travel time. inArea says whether the place belongs to the area itself.
get_nearby_places {"place": "00530", "categories": ["swimming_pool", "beach"], "withinKm": 2}
{
"summary": "Within 2 km of Kallio (Helsinki) (00530): nearest swimming pool Urheiluhallit Kallio / Helsingin urheilutalo / Uimahalli (0.03 km); nearest beach Mustikkamaan uimaranta (1.25 km).",
"data": {
"withinKm": 2,
"nearby": {
"swimming_pool": {
"countWithin": 5,
"nearest": [
{ "name": "Urheiluhallit Kallio / Helsingin urheilutalo / Uimahalli", "distanceKm": 0.03, "postalCode": "00510", "inArea": false },
...
]
},
"beach": { "countWithin": 2, "nearest": [ ... ] }
}
}
}
Tools
| Tool | Answers |
|---|---|
search_places | name to code — "which Töölö do you mean?" |
get_place_stats | "how many people live in Toukola or Akaa?", "what does an apartment cost in Töölö?" |
get_place_history | "have apartment prices been rising in Espoo?" — series, a computed direction, and an area's 1/5/10-year trend indicators |
get_air_quality | "is the air clean in Vantaa?" — measured values against WHO and EU limits |
get_nearby_places | "what is there in Kallio?" — transit stops, daycare centres, schools, higher and further education, health and medical centres, pharmacies, supermarkets, libraries, swimming pools and beaches inside a postal area or within a few km of it |
compare_areas | side-by-side statistics for up to 12 postal areas |
rank_areas | "highest income areas in Finland?" — nationally, or within one municipality or region; also crime rates and the cleanest air by municipality |
find_similar_areas | "where else feels like this neighbourhood?" |
list_variables | the metric catalogue, and each metric's year coverage |
get_area_report | the PDF report download link for one postal area (needs Pro or an Area Pass) |
Free and Pro
| Feature | Free | Pro |
|---|---|---|
| Population, income, education, employment | all | all |
| Housing sale prices (latest year) | yes | yes |
| Crime and air quality | yes | yes |
| Nearby places (stops and services) | yes | yes |
| History | 3 years | full record (2010–) |
| Housing price trends | no | full series (2009–) |
| Rankings | 10 rows | 100 rows |
| Area comparison | 2 areas | 12 areas |
| Composite score breakdown | headline score only | every component |
See it working
- The Suomiatlas map — the same data in a browser, nothing to install
- OpenAPI specification — the same API as a machine-readable contract, no key required
The statistics are CC BY 4.0. Sources: Statistics Finland (Paavo, crime, housing sale prices) and the Finnish Meteorological Institute (air quality). Nearby places have their own licences: stops are Digitransit open data (CC BY 4.0), daycare centres come from the Suomi.fi service catalogue (CC0 1.0), the services from OpenStreetMap (© OpenStreetMap contributors, ODbL 1.0), and swimming pools and beaches from LIPAS (University of Jyväskylä, Lipas Liikuntapaikat.fi, CC BY 4.0). Attribute the original publisher when you use the data; /api/v1/license describes how the nearby-places database was built.