firmaapi-mcp-server
v2.2.1
Published
Danish CVR API for AI assistants — look up companies, financials, owners and more from the Danish business register (CVR) via MCP
Maintainers
Readme
FirmaAPI MCP Server — Dansk CVR API til AI-assistenter
MCP-server der giver AI-assistenter direkte adgang til det danske CVR-register via FirmaAPI.dk — en moderne REST API til CVR-opslag, virksomhedsdata, regnskaber og personrelationer.
Brug FirmaAPI som din CVR API til at søge i danske virksomheder, hente regnskaber, finde ejere og meget mere — direkte fra din AI-assistent.
Hvad kan den?
33 værktøjer der giver din AI-assistent (Claude Desktop, Claude Code, Cursor m.fl.) mulighed for at:
- Slå virksomheder op via CVR med regnskaber, historik, hændelser, produktionsenheder og koncernrelationer
- Søge og filtrere på by, branche, omsætning, ansatte, selskabsform, kommune, region, alder, regnskabsklasse m.fl. (30+ filtre)
- Batch-opslag af op til 500 CVR-numre i én forespørgsel
- Personprofiler og KYC — find virksomhedstilknytninger, screen for stråmandsmønstre, kortvarige roller og høj rolle-omsætning
- Finansiel analyse — sundhedsscore, vækst-trajectory, udbytte-historik, branche-benchmark
- Risiko og compliance — due diligence, holding-detektion, dependency-analyse, change-detector
- Ejerskab og netværk — koncernkæder op til 4 niveauer, board overlap, lookalike-søgning, side-om-side-sammenligning
- Markedsanalyse — aggregering pr. branche/kommune/region, tidsserier, nettovækst, geografisk fordeling, branche-landskab
- Lead-generering —
find_target_companiesmed fornuftige defaults (aktive, kontaktbare, sorteret efter omsætning) - Reference-kataloger — branchekoder (DB07), kommuner, regioner, P-numre og forklaringer på 60+ CVR/ERST-termer
- Token-økonomi —
explain_querytil at tælle matches uden at hente data,format=json+fieldstil kompakt output
Token- og data-optimering
Alle tools der returnerer flere virksomheder understøtter nu fælles parametre til at reducere outputstørrelsen:
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| format | "markdown" (default) eller "json" | Returnér rå strukturerede data i stedet for læsbar markdown. JSON er ideelt til agent-pipelines og videre parsing. |
| fields | string[] | Begræns hvilke felter der returneres pr. række (fx ["name","cvr","zipcode"]). Default er kompakt (uden lange branchetekster). |
| verbose | boolean | Giv det fulde, ufiltrerede output (inkl. branchetekst). Default er kompakt. |
format er tilgængelig på alle tools. fields og verbose gælder for list-tools (firmaapi_advanced_search, firmaapi_batch_lookup).
Installation
Via npm (anbefalet)
npm install -g firmaapi-mcp-serverTjek at det virker:
firmaapi-mcp-server --versionFra kildekode
cd mcp-server
npm install
npm run buildKonfiguration
Claude Desktop
Tilføj til din claude_desktop_config.json:
{
"mcpServers": {
"firmaapi": {
"command": "firmaapi-mcp-server",
"env": {
"FIRMAAPI_KEY": "cvr_live_din_nøgle_her"
}
}
}
}Claude Code
claude mcp add firmaapi -e FIRMAAPI_KEY=cvr_live_din_nøgle_her -- firmaapi-mcp-serverCursor
Tilføj til .cursor/mcp.json:
{
"mcpServers": {
"firmaapi": {
"command": "firmaapi-mcp-server",
"env": {
"FIRMAAPI_KEY": "cvr_live_din_nøgle_her"
}
}
}
}Tools
Serveren eksponerer 33 værktøjer fordelt på 7 kategorier. Plan-krav vises pr. tool: Gratis (alle planer), Basis, Standard, Pro (Professionel+).
Alle list-tools understøtter format (markdown/json), fields (felt-projection) og verbose (fuldt output) — se Token- og data-optimering ovenfor.
Opslag og søgning
firmaapi_lookup_company · Gratis
Slå en virksomhed op via CVR-nummer med valgfrie ekstrablokke.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| cvr | string | 8-cifret CVR-nummer (påkrævet) |
| include | string | Kommasepareret: finance, history, events, production_units, relations |
Returnerer: Stamdata, adresse, kontaktinfo, branche, ejere, ledelse, revisorer, reklamebeskyttelse, binavne, tegningsregel, regnskabsklasse, kapital, koordinater m.m. Plus valgfrie blokke med regnskaber (inkl. nøgletal og vækst), historik, hændelser, produktionsenheder og koncernrelationer.
firmaapi_search_companies · Gratis
Hurtig navnesøgning på virksomheder.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| query | string | Søgestreng, min. 2 tegn (påkrævet) |
| limit | number | Maks resultater, 1-100 (default 10) |
firmaapi_advanced_search · Gratis
Avanceret søgning med 30+ filtre. Den primære arbejdshest til lead-research, markedsanalyse og segmentering.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| q | string | Navnesøgning (brug * for alle) |
| city, zipcode | string | By/postnummer |
| municipality, municipality_list | string | Kommunenavn/-kode (eller komma-liste, OR-match) |
| region, region_list | string | Hovedstaden, Sjælland, Syddanmark, Midtjylland, Nordjylland |
| industry, industry_list, industry_exclude | string | Branchekode (prefix) eller branchetekst |
| company_type | string | Selskabsform, fx ApS, A/S |
| status | string | aktiv, ophoert m.fl. |
| employees | string | Interval, fx 10-49, 50-99, 100+ |
| revenue_min, revenue_max | number | Omsætningsinterval i DKK |
| capital_min, capital_max | number | Selskabskapital-interval i DKK |
| founded_after, founded_before | string | Stiftelsesdato YYYY-MM-DD |
| founded_year, founded_year_min, founded_year_max | string | Stiftelsesår (YYYY) eller interval |
| dissolved_after, dissolved_before, dissolved_year, dissolved_year_min, dissolved_year_max | string | Opløsningsdato/år |
| is_dissolved | boolean | true = kun opløste, false = kun aktive |
| age_min, age_max | number | Alder i fulde år |
| last_report_year_min, last_report_year_max | string | Seneste regnskabs år-interval |
| has_financials, has_phone, has_email, has_website | boolean | Filtrer på datatilgængelighed |
| ad_protected | string | true/false for reklamebeskyttede |
| limit, offset, cursor | mixed | Pagination (cursor anbefales til store datasæt) |
firmaapi_batch_lookup · Basis
Slå op til 500 CVR-numre op i én forespørgsel.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| cvr_numbers | string | Kommasepareret liste af 8-cifrede CVR-numre (påkrævet) |
firmaapi_validate_cvr · Gratis
Modulus-11-tjek og valgfri verificering af om CVR'et faktisk findes i registret.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| cvr | string | CVR-streng (whitespace tolereres, påkrævet) |
| verify_exists | boolean | Slå op for at tjekke faktisk eksistens (default false) |
Personer og relationer
firmaapi_get_person · Pro
Hent en personprofil med alle virksomhedstilknytninger via UUID. UUID'et findes som person_id i company-responsen.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| id | string | Person UUID (påkrævet) |
firmaapi_search_persons · Pro
Søg personprofiler på navn, alias eller enhedsnummer.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| query | string | Personnavn, min. 2 tegn (påkrævet) |
| limit | number | Maks resultater, 1-50 (default 10) |
firmaapi_my_portfolio · Pro
Få en persons fulde portefølje af aktive og historiske roller på tværs af alle selskaber.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| id | string | Person UUID (påkrævet) |
| include_historical | boolean | Inkluder afsluttede roller (default true) |
firmaapi_kyc_screen · Pro
Screen en person for nominee/stråmandsmønstre, kortvarige roller og høj rolle-omsætning. Returnerer flag og samlet risiko-vurdering.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| id | string | Person UUID (påkrævet) |
Analyse og aggregering
firmaapi_aggregate · Gratis
Aggreger virksomheder pr. dimension (branche, kommune, selskabsform, stiftelsesår m.fl.). Mindst ét filter påkrævet.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| group_by | string | industry, municipality, region, zipcode_prefix, company_type, status, founded_year, founded_quarter, founded_month, dissolved_year, dissolved_quarter, dissolved_month, employees_bucket, has_financials |
| top_n | number | Maks antal grupper (1-200, default 20) |
| (alle filtre fra advanced_search) | mixed | Mindst ét påkrævet |
firmaapi_timeseries · Gratis
Tidsserie over stiftelser eller opløsninger pr. dag/uge/måned/kvartal/år.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| granularity | string | day, week, month (default), quarter, year |
| date_field | string | founded eller dissolved |
| from, to | string | Datointerval YYYY-MM-DD |
| (alle filtre fra advanced_search) | mixed | Mindst ét filter eller from/to |
firmaapi_net_growth · Gratis
Nettovækst (stiftelser minus opløsninger) pr. tidsperiode. Tager samme filtre som advanced_search.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| granularity | string | month, quarter, year |
| from, to | string | Datointerval YYYY-MM-DD |
| (alle filtre fra advanced_search) | mixed | |
firmaapi_industry_landscape · Standard
De største virksomheder i en branche eller region, rangordnet efter omsætning eller antal ansatte.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| industry | string | Branchekode-prefix (påkrævet) |
| region, municipality | string | Geografisk afgrænsning (valgfri) |
| rank_by | string | revenue (default) eller employees |
| top_n | number | 1-100, default 20 |
firmaapi_geographical_distribution · Gratis
Geografisk fordeling af virksomheder pr. kommune eller region. Tager samme filtre som advanced_search.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| level | string | municipality (default) eller region |
| (alle filtre fra advanced_search) | mixed | |
Finansiel analyse
firmaapi_financial_health_score · Standard
Samlet sundhedsscore 0-100 baseret på profitmargin, soliditet, likviditet, vækst og gearing.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| cvr | string | 8-cifret CVR-nummer (påkrævet) |
firmaapi_growth_trajectory · Standard
Flerårig vækstanalyse der klassificerer udviklingen som stabil, volatil, fladt eller faldende.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| cvr | string | 8-cifret CVR-nummer (påkrævet) |
| years | number | Antal år bagud (default 5) |
firmaapi_dividend_history · Standard
Samlet udbetalt udbytte over alle år samt udbyttegrad pr. år.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| cvr | string | 8-cifret CVR-nummer (påkrævet) |
firmaapi_industry_benchmark · Standard
Sammenlign en virksomhed med konkurrenter i samme branche og region. Returnerer percentil-placering på nøgletal.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| cvr | string | 8-cifret CVR-nummer (påkrævet) |
| region | string | Afgræns benchmark til en region (valgfri) |
Risiko og compliance
firmaapi_due_diligence · Standard
Risikoflag med samlet vurdering: lav, mellem, forhøjet eller høj. Tjekker status, finansiel sundhed, opløsningstrusler og governance-mønstre.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| cvr | string | 8-cifret CVR-nummer (påkrævet) |
firmaapi_change_detector · Gratis
Find virksomheder med ændringer (status, navn, adresse, ledelse) siden en given dato. Tager samme filtre som advanced_search.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| since | string | Dato YYYY-MM-DD (påkrævet) |
| change_type | string | status, name, address, management, any (default) |
| (alle filtre fra advanced_search) | mixed | |
firmaapi_holding_structure_detector · Standard
Klassificér en virksomhed som driftselskab, holding, personligt holding eller dvale baseret på regnskabs- og strukturmønstre.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| cvr | string | 8-cifret CVR-nummer (påkrævet) |
firmaapi_dependency_analysis · Pro
Vis hvilke selskaber der rammes økonomisk hvis en given virksomhed går konkurs. Følger ejerskabskæder ned.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| cvr | string | 8-cifret CVR-nummer (påkrævet) |
| max_depth | number | Maks dybde i kæden (default 3) |
Ejerskab og netværk
firmaapi_ownership_tree · Pro
Ejerskabskæde op og ned, op til fire niveauer. Vis hvem der ejer et selskab og hvad selskabet selv ejer.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| cvr | string | 8-cifret CVR-nummer (påkrævet) |
| direction | string | up, down, both (default) |
| max_depth | number | Maks niveauer (1-4, default 3) |
firmaapi_board_overlap · Pro
Find sammenfaldende ledelsesmedlemmer mellem to selskaber.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| cvr_a, cvr_b | string | To 8-cifrede CVR-numre (påkrævet) |
firmaapi_find_target_companies · Basis
Leadgenerering med fornuftige standardvalg: aktive, kontaktbare virksomheder sorteret efter omsætning.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| (alle filtre fra advanced_search) | mixed | |
| top_n | number | Maks resultater (default 50) |
firmaapi_lookalike_search · Basis
Find virksomheder der minder om en given CVR ud fra branche, størrelse og geografi.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| cvr | string | Reference-CVR (påkrævet) |
| top_n | number | Maks resultater (default 20) |
firmaapi_compare_companies · Standard
Side-om-side sammenligning af 2-4 selskaber: omsætning, resultat, soliditet, ROE, vækst.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| cvrs | string | Kommasepareret liste af 2-4 CVR-numre (påkrævet) |
| years | number | Antal år bagud (default 3) |
Reference og kataloger
firmaapi_industries · Gratis
Komplet liste over danske branchekoder (DB07) i hierarki med antal virksomheder pr. kode.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| filter | string | Lokal filtrering på navn eller kode |
| parent | string | Server-side: kun branchekoder under denne (fx parent="62") |
| max_depth | number | 1=division, 2=group, 3=class, 4=branch |
| include_growth | boolean | Tilføj founded_last_12m pr. branchekode |
firmaapi_municipalities · Gratis
Liste over danske kommuner med koder.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| filter | string | Filtrer på kommunenavn |
firmaapi_regions · Gratis
De fem danske regioner med tilhørende kommuner. Bornholm hører under Region Hovedstaden.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| filter | string | Filtrer på regionsnavn |
firmaapi_production_unit · Standard
Slå produktionsenhed op via P-nummer.
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| p_number | string | 10-cifret P-nummer (påkrævet) |
firmaapi_explain_field · Gratis
Forklaring af mere end 60 CVR- og ERST-termer (statusværdier, rolletyper, regnskabsfelter, attributter).
| Parameter | Type | Beskrivelse |
|-----------|------|-------------|
| term | string | Felt- eller værdinavn (påkrævet) |
firmaapi_explain_query · Gratis
Tæl matches uden at hente data. Brug det til at sanity-checke en søgning før et tungt kald.
| Parameter | Type | Beskrivelse | |-----------|------|-------------| | (alle filtre fra advanced_search) | mixed | Mindst ét reelt filter påkrævet |
Returnerer: total_matches, en kort vurdering af resultatsættets størrelse, og hvis total > 50 — suggested_refinements: top-5 grupper på branche, kommune og ansatte.
Eksempler
Når serveren er konfigureret, kan du bede din AI-assistent om:
- "Slå Novo Nordisk op og vis deres seneste regnskab"
- "Find alle aktive IT-virksomheder i Aarhus"
- "Hvem ejer CVR 34824770?"
- "Søg efter virksomheder med omsætning over 100 millioner"
- "Find alle virksomheder Lars Larsen er tilknyttet"
- "Vis alle ikke-reklamebeskyttede virksomheder stiftet i dag"
- "Slå disse CVR-numre op på én gang: 24256790, 10150817"
- "Find branchekoden for IT-konsulenter"
- "Vis koncernrelationer for Dansk Supermarked"
- "Hvilke kommunekoder findes der i Nordjylland?"
- "Slå produktionsenhed P-1234567890 op"
- "Hvor mange aktive ApS'er findes i Aarhus?" (firmaapi_explain_query)
- "Returnér de første 50 IT-virksomheder som JSON med kun navn og CVR" (format=json, fields=["name","cvr"])
- "Top 20 brancher med flest aktive virksomheder" (firmaapi_aggregate)
- "Stiftelser pr. kvartal i 2024 i IT-branchen" (firmaapi_timeseries)
- "Hvordan fordeler aktive selskaber sig på regioner?" (firmaapi_aggregate, group_by="region")
- "Top 20 postdistrikter for IT-virksomheder" (firmaapi_aggregate, group_by="zipcode_prefix", industry="62")
- "Hvor mange selskaber er gået konkurs i 2024?" (firmaapi_explain_query, dissolved_year="2024")
- "Konkursrate pr. branche sidste 5 år" (firmaapi_aggregate, group_by="industry", is_dissolved=true, dissolved_year_min="2020")
- "Opløsninger pr. måned i 2024" (firmaapi_timeseries, date_field="dissolved", granularity="month", from="2024-01-01", to="2024-12-31")
- "Lav due diligence på CVR 12345678" (firmaapi_due_diligence)
- "Hvor sund er denne virksomhed finansielt?" (firmaapi_financial_health_score)
- "Sammenlign Novo Nordisk og LEGO finansielt" (firmaapi_compare_companies)
- "Hvem ejer KIRKBI A/S? Vis ejerskabskæden tre niveauer op" (firmaapi_ownership_tree)
- "KYC-tjek af denne bestyrelseskandidat" (firmaapi_kyc_screen)
- "Find IT-prospects i København med email og 10-49 ansatte" (firmaapi_find_target_companies)
- "Find andre selskaber der ligner vores bedste kunde" (firmaapi_lookalike_search)
- "Hvilke kommuner er i Region Hovedstaden?" (firmaapi_regions, filter="Hovedstaden")
- "Hvad betyder UNDER KONKURS?" (firmaapi_explain_field)
API-nøgle
Hent en gratis API-nøgle på firmaapi.dk/register.
Se aktuelle planer, priser og begrænsninger på firmaapi.dk/priser.
