Nordic Data MCP

Datos de empresa, KYB, IVA, sanciones, LEI y direcciones para 15 países de la UE (DK, NO, SE, FI, IE, UK, FR, DE, CZ, PL, LV, EE, NL, BE, LU). Nivel gratuito de 100 consultas/día en addonnordic.com.

Documentación

Nordic Data MCP Server

npm version License: MIT

Un servidor Model Context Protocol que brinda a los agentes de IA (Claude, Cursor, Claude Code, ChatGPT, Copilot, etc.) acceso directo a datos comerciales europeos oficiales en 15 países de la UE.

Busque empresas, valide números de IVA, ejecute informes KYB, verifique contra listas de sanciones, autocomplete direcciones y resuelva la propiedad de LEI, todo desde dentro de su asistente de IA.

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

NL y DE requieren una suscripción Starter+ (las claves de API del nivel gratuito reciben HTTP 402 upgrade_required). En los niveles de pago, las llamadas a NL cuestan 5x unidades de cuota y las de DE cuestan 3x; todos los demás países cuestan 1x.


Inicio rápido

1. Obtenga una clave de API

Regístrese en addonnordic.com y obtenga su NORDIC_API_KEY. Hay un nivel gratuito disponible.

2. Añadir a Claude Desktop

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

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

Reinicie Claude Desktop. Debería ver "nordic-data" aparecer en el menú de herramientas.

3. Añadir a Cursor

En la configuración de Cursor → MCP → Añadir nuevo servidor, o edite ~/.cursor/mcp.json:

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

4. Añadir a Claude Code

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

5. Añadir a ChatGPT (Pro, Business o Enterprise)

ChatGPT admite servidores MCP remotos como conectores personalizados. No necesita clave de API de su parte: el servidor alojado maneja la autenticación ascendente.

  1. ChatGPT → ConfiguraciónConectoresAñadir conector personalizado
  2. URL: https://nordic-data-mcp-production.up.railway.app/mcp
  3. Listo: las 11 herramientas están disponibles de inmediato.

Los conectores personalizados requieren un plan ChatGPT Pro, Business, Team o Enterprise.

6. Añadir a Claude.ai (web)

Mismo endpoint alojado, sin instalación local:

  1. Claude.ai → ConfiguraciónConectoresAñadir conector personalizado
  2. URL: https://nordic-data-mcp-production.up.railway.app/mcp
  3. Listo.

Herramientas disponibles

HerramientaQué hace
lookup_companyDatos básicos de empresas de registros oficiales (CVR, Brønnøysund, Bolagsverket, Companies House, INSEE, etc.)
validate_vatValidar un número de IVA contra VIES (UE) o HMRC (GB)
screen_sanctionsVerificación masiva de hasta 1000 nombres contra listas de ONU/UE/OFAC/PEP (OpenSanctions, más de 768K entradas)
kyb_fullInforme maestro Know-Your-Business: identidad, personas, finanzas, LEI, IVA, sanciones, medios adversos, puntuación de riesgo
autocomplete_addressAutocompletado de direcciones mediante DAWA (DK), Kartverket (NO), BAN (FR), MML (FI), Nominatim (otros)
lookup_leiBúsqueda de Identificador de Entidad Legal GLEIF: directa, inversa y relaciones padre/hijo
company_enrichedDatos de empresa + dirección geocodificada + estadísticas de industria + Wikidata (sitio web, empleados, CEO, ticker, logotipo)
fr_historyLínea de tiempo de historial de empresas francesas (cambios de nombre, actividad, estado, forma legal) a partir de datos bitemporales de INSEE Sirene
list_endpointsDescubrimiento: lista todos los endpoints de datos de solo lectura en la API subyacente (más de 230), con filtro de palabras clave opcional
get_endpoint_schemaDescubrimiento: esquema completo de parámetros y respuesta para un endpoint, antes de llamarlo
call_endpointDescubrimiento: ejecuta una solicitud de solo lectura (GET/HEAD, más tres consultas de verificación POST permitidas) contra cualquier endpoint descubierto

Ejemplos de indicaciones para agentes

"Busque CVR 61056416 en Dinamarca" → llama a lookup_company { country: "dk", id: "61056416" } → Carlsberg A/S

"Ejecute un informe KYB completo sobre Equinor (NO 923609016)" → llama a kyb_full { country: "no", id: "923609016" }

"¿Es LU26375245 un número de IVA válido?" → llama a validate_vat { country: "LU", vat_number: "26375245" }

"Verifique estos nombres contra sanciones: Vladimir Putin, Acme Corp, John Smith" → llama a screen_sanctions { names: [...] }

"Encuentre el LEI para Tesco UK (00445790) e incluya la matriz y las subsidiarias" → llama a lookup_lei { mode: "reverse", country: "uk", id: "00445790" }


Referencia de formato de país / ID

PaísTipo de IDFormato
DKCVR8 dígitos
NOOrganisasjonsnummer9 dígitos
SEOrganisationsnummer10 dígitos (con o sin guion)
FIY-tunnusNNNNNNN-D (7 dígitos + dígito de control)
IENúmero CRO1–7 dígitos
UKCompanies House8 caracteres (dígitos, o prefijo como SC, NI, OC)
FRSIREN9 dígitos
DELEI o HRBLEI = 20 alfanuméricos; HRB = prefijo + dígitos
CZIČO8 dígitos
PLNIP / REGON / KRSNIP=10, REGON=9/14, KRS=10
LVReģistrācijas nr.11 dígitos
EERegistrikood8 dígitos
NLKvK-nummer8 dígitos
BEBCE/KBO10 dígitos
LURCSLB + dígitos

Para validate_vat, los códigos de país están en mayúsculas y cubren la UE en general más GB (use GB, no UK — HMRC requiere GB).


Configuración

La única variable de entorno que necesita configurar es:

VariableRequeridaDescripción
NORDIC_API_KEYSu clave de API de addonnordic.com

Eso es todo. El servidor MCP se conecta a la API de Nordic Data alojada en su nombre.


Autoalojamiento (transporte HTTP remoto)

Para el alojamiento remoto de MCP (por ejemplo, conectores de Anthropic, Smithery, clientes basados en web), implemente el transporte HTTP Streamable incluido:

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

Endpoints:

  • GET /healthz — verificación de salud (devuelve versión + estado)
  • ALL /mcp — endpoint MCP público. No se requiere clave; todas las llamadas ascendentes se facturan a la propia NORDIC_API_KEY del servidor (freemium / descubrimiento). Limitado por IP.
  • ALL /mcp/auth — endpoint MCP autenticado. Requiere Authorization: Bearer ndk_... en cada solicitud; cada llamada se factura a la clave y cuota propias de ese cliente.

Ambos son basados en sesión mediante el encabezado Mcp-Session-Id.

Conexión de un cliente remoto

Este servidor utiliza autenticación estática de clave de API, no OAuth. La forma de conectarse depende de su cliente:

  • Clientes con capacidad de encabezado (Claude Code, Cursor, Smithery, conectores personalizados de Claude.ai / ChatGPT): apúntelos a …/mcp/auth y proporcione su clave como Authorization: Bearer ndk_.... Cada solicitud se factura a su propio inquilino + cuota.
  • Clientes genéricos / de autodescubrimiento que solo conocen "URL + OAuth": apúntelos al …/mcp público (sin clave). De lo contrario, dichos clientes intentan el Registro Dinámico de Clientes OAuth (POST /register) y fallan: este servidor no tiene endpoints OAuth por diseño y les responde con un error JSON claro oauth_not_supported (no un flujo de inicio de sesión).
  • Clientes locales: prefiera el paquete stdio — npx -y nordic-data-mcp con NORDIC_API_KEY configurado (consulte el Inicio rápido anterior).

OAuth 2.1 completo (para que clientes externos arbitrarios puedan autoincorporarse con su propia clave) es un elemento planificado de la Fase 2, aún no implementado.

Se incluye un railway.toml para implementación con un clic en Railway:

  1. Nuevo proyecto → Implementar desde repositorio de GitHub → seleccione Mnymann/nordic-data-mcp
  2. Establezca Directorio raíz en nordic-data-mcp
  3. Agregue la variable de entorno NORDIC_API_KEY
  4. Railway detecta automáticamente la configuración, compila y expone una URL HTTPS pública

Notas de diseño

  • Adaptador delgado. Sin lógica de negocio, sin caché, sin transformaciones. Cada herramienta se asigna 1:1 a un endpoint de la API de Nordic Data.
  • Sin PII en los registros. Los cuerpos de solicitud y respuesta nunca se registran.
  • Clave de API requerida. El proceso se niega a iniciar sin NORDIC_API_KEY.
  • Limitación de velocidad. El backend aplica cuotas por clave; el transporte HTTP adicionalmente aplica un límite por IP en el endpoint público /mcp como defensa en profundidad (ajustable mediante PUBLIC_RATE_LIMIT / PUBLIC_RATE_WINDOW_MS). El almacenamiento en caché se maneja aguas arriba.
  • Las entradas se validan con zod antes de cualquier llamada HTTP.

Contribuciones

Se aceptan problemas y PR en github.com/Mnymann/nordic-data-mcp.

Por favor, no incluya claves de API, cuerpos de solicitud o cargas útiles de respuesta en los informes de errores.


Descargo de responsabilidad

Nordic Data devuelve soporte informativo para la toma de decisiones agregado de fuentes oficiales y públicas. No es asesoramiento legal, de cumplimiento, financiero o profesional, ni una determinación definitiva. Los informes KYB, las coincidencias de sanciones/PEP, los hallazgos de medios adversos y las puntuaciones de riesgo son señales para revisar, no veredictos: verifique de forma independiente y aplique su propio juicio profesional antes de actuar. El uso del servicio está sujeto a los Términos de AddonNordic.


Licencia

MIT © AddonNordic ApS