Skip to main content
Glama
robobobby
by robobobby
README.md
# mcp-nordic

One MCP server for all Nordic data. 33 tools across 10 modules, zero API keys required.

## What's included

| Module | Tools | Data Source |
|--------|-------|-------------|
| ๐Ÿ‡ฉ๐Ÿ‡ฐ `dk-cvr` | `dk_cvr_search`, `dk_cvr_lookup` | [cvrapi.dk](https://cvrapi.dk) |
| ๐Ÿ‡ฉ๐Ÿ‡ฐ `dk-addresses` | `dk_address_search`, `dk_reverse_geocode`, `dk_postal_code_lookup`, `dk_municipality_lookup`, `dk_nearby_addresses` | [DAWA](https://dawadocs.dataforsyningen.dk) |
| ๐Ÿ‡ฉ๐Ÿ‡ฐ `dk-weather` | `dk_current_weather`, `dk_weather_forecast`, `dk_compare_weather` | [DMI HARMONIE 2km](https://open-meteo.com) |
| ๐Ÿ‡ฉ๐Ÿ‡ฐ `dk-energy` | `dk_electricity_prices`, `dk_co2_emissions`, `dk_energy_mix`, `dk_cheapest_hours` | [Energi Data Service](https://www.energidataservice.dk) |
| ๐Ÿ‡ณ๐Ÿ‡ด `no-companies` | `no_search_companies`, `no_company_lookup`, `no_search_subunits`, `no_company_roles` | [Brรธnnรธysund](https://data.brreg.no) |
| ๐Ÿ‡ณ๐Ÿ‡ด `no-weather` | `no_current_weather`, `no_weather_forecast` | [MET Norway/yr.no](https://api.met.no) |
| ๐Ÿ‡ซ๐Ÿ‡ฎ `fi-companies` | `fi_search_companies`, `fi_company_lookup`, `fi_search_by_industry`, `fi_recent_registrations` | [PRH/YTJ](https://avoindata.prh.fi) |
| ๐Ÿ‡ซ๐Ÿ‡ฎ `fi-weather` | `fi_current_weather`, `fi_weather_forecast`, `fi_compare_weather` | [Open-Meteo](https://open-meteo.com) |
| ๐Ÿ‡ณ๐Ÿ‡ด `no-addresses` | `no_address_search`, `no_reverse_geocode`, `no_postal_code_lookup`, `no_municipality_addresses` | [Kartverket](https://ws.geonorge.no/adresser/v1/) |
| ๐Ÿ‡ธ๐Ÿ‡ช `se-weather` | `se_current_weather`, `se_weather_forecast` | [SMHI](https://opendata.smhi.se) |

All APIs are free, open, and require no authentication.

## Quick start

```json
{
  "mcpServers": {
    "nordic": {
      "command": "npx",
      "args": ["-y", "mcp-nordic"]
    }
  }
}
```

Or clone and run directly:

```bash
git clone https://github.com/robobobby/mcp-nordic.git
cd mcp-nordic
npm install
node src/index.js
```

## Selective loading

Only need Danish weather and Finnish companies?

```json
{
  "mcpServers": {
    "nordic": {
      "command": "npx",
      "args": ["-y", "mcp-nordic", "--dk-weather", "--fi-companies"]
    }
  }
}
```

Available flags: `--dk-cvr`, `--dk-addresses`, `--dk-weather`, `--dk-energy`, `--no-companies`, `--no-addresses`, `--no-weather`, `--fi-companies`, `--fi-weather`, `--se-weather`, `--all` (default).

## Examples

Ask your AI assistant:

- "Look up the company Novo Nordisk in Denmark"
- "What's the weather in Copenhagen vs Oslo?"
- "What's the forecast for Stockholm this weekend?"
- "When's the cheapest time to charge my EV today in DK1?"
- "Find recently registered Finnish companies in the tech sector"
- "What's the current energy mix in Denmark?"
- "Search for Norwegian companies in the oil industry"
- "Weather in Tromsรธ vs Kiruna?"
- "Find addresses on Bryggen in Bergen"
- "What's at coordinates 59.91, 10.75 in Norway?"

## Country coverage

| Country | Companies | Weather | Addresses | Energy |
|---------|-----------|---------|-----------|--------|
| ๐Ÿ‡ฉ๐Ÿ‡ฐ Denmark | โœ… CVR | โœ… DMI | โœ… DAWA | โœ… Energinet |
| ๐Ÿ‡ณ๐Ÿ‡ด Norway | โœ… Brรธnnรธysund | โœ… MET/yr.no | โœ… Kartverket | โ€” |
| ๐Ÿ‡ซ๐Ÿ‡ฎ Finland | โœ… PRH/YTJ | โœ… Open-Meteo | โ€” | โ€” |
| ๐Ÿ‡ธ๐Ÿ‡ช Sweden | โ€” | โœ… SMHI | โ€” | โ€” |

## Cloudflare Workers deployment (hosted MCP)

This repo now includes a Worker entrypoint using MCP's web-standard streamable HTTP transport.

### Deploy

```bash
npm install
npm run worker:deploy
```

### Endpoints

- `https://<your-worker>.workers.dev/health`
- `https://<your-worker>.workers.dev/mcp`

Use the `/mcp` URL as your hosted MCP endpoint.

## Individual servers

Each module is also available as a standalone server:

- [mcp-danish-cvr](https://github.com/robobobby/mcp-danish-cvr)
- [mcp-danish-addresses](https://github.com/robobobby/mcp-danish-addresses)
- [mcp-danish-weather](https://github.com/robobobby/mcp-danish-weather)
- [mcp-danish-energy](https://github.com/robobobby/mcp-danish-energy)
- [mcp-norwegian-companies](https://github.com/robobobby/mcp-norwegian-companies)
- [mcp-norwegian-weather](https://github.com/robobobby/mcp-norwegian-weather)
- [mcp-finnish-companies](https://github.com/robobobby/mcp-finnish-companies)
- [mcp-swedish-weather](https://github.com/robobobby/mcp-swedish-weather)
- [mcp-finnish-weather](https://github.com/robobobby/mcp-finnish-weather)
- [mcp-norwegian-addresses](https://github.com/robobobby/mcp-norwegian-addresses)

## License

MIT

TDQS

A3.5/5.0

Scored across 33 tools

Disambiguation4/5

The tools are well-organized by country and domain (e.g., address, weather, company), making it easy to distinguish between them. However, some overlap exists within domains, such as multiple company search tools per country (e.g., dk_cvr_lookup and dk_cvr_search), which could cause minor confusion if an agent is unsure which to use for specific queries.

Naming Consistency5/5

The naming follows a highly consistent pattern: country code prefix (dk_, fi_, no_, se_) followed by a descriptive verb_noun format (e.g., address_search, current_weather). This predictability makes it easy for agents to understand and navigate the toolset without ambiguity.

Tool Count3/5

With 33 tools, the count is borderline high for a single server, potentially overwhelming for agents. While the tools cover multiple Nordic countries and domains comprehensively, the scope might be better split into sub-servers (e.g., by country or function) to improve manageability and reduce cognitive load.

Completeness5/5

The toolset provides complete coverage for its intended domain of Nordic data, including addresses, weather, and company registries across Denmark, Finland, Norway, and Sweden. It supports key operations like search, lookup, and comparison, with no obvious gaps that would hinder agent workflows for these use cases.

Maintenance

ActivityInactive
ResponsivenessNo issues