Back to Browse

Nordic Data MCP Server

by Mnymann
Developer ToolsLow Risk9.7MCP RegistryLocalRemote
Free

Server data from the Official MCP Registry

Company, KYB, VAT, sanctions, LEI and address data for 15 EU countries.

About

Company, KYB, VAT, sanctions, LEI and address data for 15 EU countries.

Remote endpoints: streamable-http: https://nordic-data-mcp-production.up.railway.app/mcp/auth

Security Report

9.7
Low Risk9.7Low Risk

Valid MCP server (2 strong, 3 medium validity signals). No known CVEs in dependencies. ⚠️ Package registry links to a different repository than scanned source. Imported from the Official MCP Registry. 1 finding(s) downgraded by scanner intelligence.

Endpoint verified · Open access · 1 issue found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

file_system

Check that this permission is expected for this type of plugin.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

Your Nordic Data API key — get one at https://addonnordic.com (free tier: 100 lookups/day)Required

Environment variable: NORDIC_API_KEY

Optional ISO 3166-1 alpha-2 country code (lowercase) to assume when a tool call omits the country argument. One of: dk, no, se, fi, ie, uk, fr, de, cz, pl, lv, ee, nl, be, lu.Optional

Environment variable: NORDIC_DEFAULT_COUNTRY

Optional. Set to 'true' to include upstream HTTP status and request-id details in error messages. Useful for debugging.Optional

Environment variable: NORDIC_VERBOSE_ERRORS

How to Install & Connect

Available as Local & Remote

This plugin can run on your machine or connect to a hosted endpoint. during install.

Documentation

View on GitHub

From the project's GitHub README.

Nordic Data MCP Server

npm version License: MIT

A Model Context Protocol server that gives AI agents (Claude, Cursor, Claude Code, ChatGPT, Copilot, etc.) direct access to official European business data across 15 EU countries.

Look up companies, validate VAT numbers, run KYB reports, screen against sanctions lists, autocomplete addresses, and resolve LEI ownership — all from inside your AI assistant.

DK · NO · SE · FI · IE · UK · FR · DE · CZ · PL · LV · EE · NL · BE · LU

NL and DE require a Starter+ subscription (free-tier API keys receive HTTP 402 upgrade_required). On paid tiers, NL calls cost 5x quota units and DE calls cost 3x; all other countries cost 1x.


Quick start

1. Get an API key

Sign up at addonnordic.com and grab your NORDIC_API_KEY. Free tier available.

2. Add to Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%/Claude/claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "nordic-data": {
      "command": "npx",
      "args": ["-y", "nordic-data-mcp"],
      "env": {
        "NORDIC_API_KEY": "YOUR_KEY_HERE"
      }
    }
  }
}

Restart Claude Desktop. You should see "nordic-data" appear in the tools menu.

3. Add to Cursor

In Cursor settings → MCP → Add new server, or edit ~/.cursor/mcp.json:

{
  "mcpServers": {
    "nordic-data": {
      "command": "npx",
      "args": ["-y", "nordic-data-mcp"],
      "env": {
        "NORDIC_API_KEY": "YOUR_KEY_HERE"
      }
    }
  }
}

4. Add to Claude Code

claude mcp add nordic-data --env NORDIC_API_KEY=YOUR_KEY_HERE -- npx -y nordic-data-mcp

5. Add to ChatGPT (Pro, Business, or Enterprise)

ChatGPT supports remote MCP servers as custom connectors. No API key needed from you — the hosted server handles upstream authentication.

  1. ChatGPT → SettingsConnectorsAdd custom connector
  2. URL: https://nordic-data-mcp-production.up.railway.app/mcp
  3. Done — all 11 tools are available immediately.

Custom connectors require a ChatGPT Pro, Business, Team, or Enterprise plan.

6. Add to Claude.ai (web)

Same hosted endpoint, no local install:

  1. Claude.ai → SettingsConnectorsAdd custom connector
  2. URL: https://nordic-data-mcp-production.up.railway.app/mcp
  3. Done.

Available tools

ToolWhat it does
lookup_companyBasic company data from official registries (CVR, Brønnøysund, Bolagsverket, Companies House, INSEE, etc.)
validate_vatValidate a VAT number against VIES (EU) or HMRC (GB)
screen_sanctionsBulk screen up to 1000 names against UN/EU/OFAC/PEP lists (OpenSanctions, 768K+ entries)
kyb_fullMaster Know-Your-Business report — identity, persons, financials, LEI, VAT, sanctions, adverse media, risk score
autocomplete_addressAddress autocomplete via DAWA (DK), Kartverket (NO), BAN (FR), MML (FI), Nominatim (others)
lookup_leiGLEIF Legal Entity Identifier lookup — forward, reverse, and parent/children relationships
company_enrichedCompany data + geocoded address + industry stats + Wikidata (website, employees, CEO, ticker, logo)
fr_historyFrench company history timeline (name, activity, status, legal-form changes) from INSEE Sirene bitemporal data
list_endpointsDiscovery: list all read-only data endpoints in the underlying API (230+), with optional keyword filter
get_endpoint_schemaDiscovery: full parameter + response schema for one endpoint, before calling it
call_endpointDiscovery: execute a read-only request (GET/HEAD, plus three allowlisted POST screening queries) against any discovered endpoint

Example agent prompts

"Look up CVR 61056416 in Denmark" → calls lookup_company { country: "dk", id: "61056416" } → Carlsberg A/S

"Run a full KYB report on Equinor (NO 923609016)" → calls kyb_full { country: "no", id: "923609016" }

"Is LU26375245 a valid VAT number?" → calls validate_vat { country: "LU", vat_number: "26375245" }

"Screen these names against sanctions: Vladimir Putin, Acme Corp, John Smith" → calls screen_sanctions { names: [...] }

"Find the LEI for Tesco UK (00445790) and include parent and subsidiaries" → calls lookup_lei { mode: "reverse", country: "uk", id: "00445790" }


Country / ID format reference

CountryID typeFormat
DKCVR8 digits
NOOrganisasjonsnummer9 digits
SEOrganisationsnummer10 digits (with or without dash)
FIY-tunnusNNNNNNN-D (7 digits + check digit)
IECRO number1–7 digits
UKCompanies House8 chars (digits, or prefix like SC, NI, OC)
FRSIREN9 digits
DELEI or HRBLEI = 20 alphanum; HRB = prefix + digits
CZIČO8 digits
PLNIP / REGON / KRSNIP=10, REGON=9/14, KRS=10
LVReģistrācijas nr.11 digits
EERegistrikood8 digits
NLKvK-nummer8 digits
BEBCE/KBO10 digits
LURCSLB + digits

For validate_vat, country codes are uppercase and cover the broader EU plus GB (use GB, not UK — HMRC requires GB).


Configuration

The only environment variable you need to set is:

VariableRequiredDescription
NORDIC_API_KEYyesYour API key from addonnordic.com

That's it. The MCP server connects to the hosted Nordic Data API for you.


Self-hosting (remote HTTP transport)

For remote MCP hosting (e.g. Anthropic Connectors, Smithery, web-based clients), deploy the bundled Streamable HTTP transport:

npm install
npm run build
NORDIC_API_KEY=sk_... npm run start:http   # listens on :$PORT (default 3000)

Endpoints:

  • GET /healthz — health check (returns version + status)
  • ALL /mcppublic MCP endpoint. No key required; all upstream calls are billed to the server's own NORDIC_API_KEY (freemium / discovery). Per-IP rate-limited.
  • ALL /mcp/authauthenticated MCP endpoint. Requires Authorization: Bearer ndk_... on every request; each call is billed to that customer's own key + quota.

Both are session-based via the Mcp-Session-Id header.

Connecting a remote client

This server uses static API-key authentication, not OAuth. How you connect depends on your client:

  • Header-capable clients (Claude Code, Cursor, Smithery, Claude.ai / ChatGPT custom connectors): point them at …/mcp/auth and supply your key as Authorization: Bearer ndk_.... Each request is billed to your own tenant + quota.
  • Generic / auto-discovery clients that only know "URL + OAuth": point them at the public …/mcp (no key). Otherwise such clients attempt OAuth Dynamic Client Registration (POST /register) and fail — this server has no OAuth endpoints by design and answers them with a clear JSON oauth_not_supported error (not a sign-in flow).
  • Local clients: prefer the stdio package — npx -y nordic-data-mcp with NORDIC_API_KEY set (see Quick start above).

Full OAuth 2.1 (so arbitrary external clients can self-onboard with their own key) is a planned Phase-2 item, not yet implemented.

A railway.toml is included for one-click deploy on Railway:

  1. New Project → Deploy from GitHub repo → select Mnymann/nordic-data-mcp
  2. Set Root Directory to nordic-data-mcp
  3. Add env var NORDIC_API_KEY
  4. Railway auto-detects the config, builds, and exposes a public HTTPS URL

Design notes

  • Thin adapter. No business logic, no caching, no transformations. Each tool maps 1:1 to a Nordic Data API endpoint.
  • No PII in logs. Request and response bodies are never logged.
  • API key required. The process refuses to start without NORDIC_API_KEY.
  • Rate limiting. The backend enforces per-key quotas; the HTTP transport additionally applies a per-IP limit on the public /mcp endpoint as defense-in-depth (tunable via PUBLIC_RATE_LIMIT / PUBLIC_RATE_WINDOW_MS). Caching is handled upstream.
  • Inputs are validated with zod before any HTTP call.

Contributing

Issues and PRs welcome at github.com/Mnymann/nordic-data-mcp.

Please do not include API keys, request bodies, or response payloads in bug reports.


Disclaimer

Nordic Data returns informational decision-support aggregated from official and public sources. It is not legal, compliance, financial, or professional advice, and not a definitive determination. KYB reports, sanctions/PEP matches, adverse-media hits, and risk scores are signals to review, not verdicts — verify independently and apply your own professional judgment before acting. Use of the service is subject to the AddonNordic Terms.


License

MIT © AddonNordic ApS

Reviews

No reviews yet

Be the first to review this server!

Nordic Data MCP Server - Company, KYB, VAT, sanctions, LEI and address data for 15 | MCP Marketplace