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
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.
- ChatGPT → Configuración → Conectores → Añadir conector personalizado
- URL:
https://nordic-data-mcp-production.up.railway.app/mcp - 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:
- Claude.ai → Configuración → Conectores → Añadir conector personalizado
- URL:
https://nordic-data-mcp-production.up.railway.app/mcp - Listo.
Herramientas disponibles
| Herramienta | Qué hace |
|---|---|
lookup_company | Datos básicos de empresas de registros oficiales (CVR, Brønnøysund, Bolagsverket, Companies House, INSEE, etc.) |
validate_vat | Validar un número de IVA contra VIES (UE) o HMRC (GB) |
screen_sanctions | Verificación masiva de hasta 1000 nombres contra listas de ONU/UE/OFAC/PEP (OpenSanctions, más de 768K entradas) |
kyb_full | Informe maestro Know-Your-Business: identidad, personas, finanzas, LEI, IVA, sanciones, medios adversos, puntuación de riesgo |
autocomplete_address | Autocompletado de direcciones mediante DAWA (DK), Kartverket (NO), BAN (FR), MML (FI), Nominatim (otros) |
lookup_lei | Búsqueda de Identificador de Entidad Legal GLEIF: directa, inversa y relaciones padre/hijo |
company_enriched | Datos de empresa + dirección geocodificada + estadísticas de industria + Wikidata (sitio web, empleados, CEO, ticker, logotipo) |
fr_history | Línea de tiempo de historial de empresas francesas (cambios de nombre, actividad, estado, forma legal) a partir de datos bitemporales de INSEE Sirene |
list_endpoints | Descubrimiento: 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_schema | Descubrimiento: esquema completo de parámetros y respuesta para un endpoint, antes de llamarlo |
call_endpoint | Descubrimiento: 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
LU26375245un número de IVA válido?" → llama avalidate_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ís | Tipo de ID | Formato |
|---|---|---|
| DK | CVR | 8 dígitos |
| NO | Organisasjonsnummer | 9 dígitos |
| SE | Organisationsnummer | 10 dígitos (con o sin guion) |
| FI | Y-tunnus | NNNNNNN-D (7 dígitos + dígito de control) |
| IE | Número CRO | 1–7 dígitos |
| UK | Companies House | 8 caracteres (dígitos, o prefijo como SC, NI, OC) |
| FR | SIREN | 9 dígitos |
| DE | LEI o HRB | LEI = 20 alfanuméricos; HRB = prefijo + dígitos |
| CZ | IČO | 8 dígitos |
| PL | NIP / REGON / KRS | NIP=10, REGON=9/14, KRS=10 |
| LV | Reģistrācijas nr. | 11 dígitos |
| EE | Registrikood | 8 dígitos |
| NL | KvK-nummer | 8 dígitos |
| BE | BCE/KBO | 10 dígitos |
| LU | RCSL | B + 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:
| Variable | Requerida | Descripción |
|---|---|---|
NORDIC_API_KEY | sí | Su 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 propiaNORDIC_API_KEYdel servidor (freemium / descubrimiento). Limitado por IP.ALL /mcp/auth— endpoint MCP autenticado. RequiereAuthorization: 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/authy proporcione su clave comoAuthorization: Bearer ndk_.... Cada solicitud se factura a su propio inquilino + cuota. - Clientes genéricos / de autodescubrimiento que solo conocen "URL + OAuth": apúntelos al
…/mcppú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 clarooauth_not_supported(no un flujo de inicio de sesión). - Clientes locales: prefiera el paquete stdio —
npx -y nordic-data-mcpconNORDIC_API_KEYconfigurado (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:
- Nuevo proyecto → Implementar desde repositorio de GitHub → seleccione
Mnymann/nordic-data-mcp - Establezca Directorio raíz en
nordic-data-mcp - Agregue la variable de entorno
NORDIC_API_KEY - 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
/mcpcomo defensa en profundidad (ajustable mediantePUBLIC_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