Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Firmaradar

REMOTE · MCP.FIRMARADAR.NO · SCANNED SEP 21

Norwegian company intelligence: ownership, roles, financials, risk, KYC/AML/PEP (multi-source)

0 this week 87 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security83
  • The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
  • Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
  • HTTPS enforcement could not be verified: the plaintext port answered with HTTP 401, which proves neither a plaintext path nor enforcement. View diagnostics → Unverified
  • The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
  • DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
  • The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
Schema Quality & AI Usability68
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 7954 tokens (~220/item across 36 items; 36 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage95
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 81% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 37 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the Firmaradar MCP server?

Firmaradar is a hosted endpoint at https://mcp.firmaradar.no/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.firmaradar.no

# add to Claude Code
claude mcp add --transport http no-firmaradar-mcp 'https://mcp.firmaradar.no/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "no-firmaradar-mcp": {
      "url": "https://mcp.firmaradar.no/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "no-firmaradar-mcp": {
      "type": "http",
      "url": "https://mcp.firmaradar.no/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.no-firmaradar-mcp]
url = "https://mcp.firmaradar.no/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "no-firmaradar-mcp": {
      "type": "remote",
      "url": "https://mcp.firmaradar.no/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add no-firmaradar-mcp --url 'https://mcp.firmaradar.no/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  no-firmaradar-mcp:
    url: "https://mcp.firmaradar.no/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "no-firmaradar-mcp": {
      "Transport": "http",
      "Url": "https://mcp.firmaradar.no/mcp"
    }
  }
}
# add to Vellum
assistant mcp add no-firmaradar-mcp -t streamable-http -u 'https://mcp.firmaradar.no/mcp'
// mcp.json
{
  "mcpServers": {
    "no-firmaradar-mcp": {
      "type": "http",
      "url": "https://mcp.firmaradar.no/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 18 Sept 26 0
    • Tool “firmaradar_get_risk_score_bulk” rewrote its description, which is the text the model reads security
  • 2 Sept 26 0
    • Tool “firmaradar_check_fiv_bulk” rewrote its description, which is the text the model reads security
    • Tool “firmaradar_get_risk_score” rewrote its description, which is the text the model reads security
    • “firmaradar_compare_companies” reworded the description of “orgnrs” cosmetic
    • “firmaradar_get_company_ownership” reworded the description of “include_persons” cosmetic
  • 26 Aug 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 25 Aug 26 0
    • Stability: 0.97 → pass security
    • Tool “firmaradar_check_fiv_bulk” rewrote its description, which is the text the model reads security
    • Tool “firmaradar_get_risk_score” rewrote its description, which is the text the model reads security
  • 24 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 12 Aug 26 0
    • Tool “firmaradar_get_company_signals” rewrote its description, which is the text the model reads security
    • “firmaradar_get_company_signals” reworded the description of “since” cosmetic
  • 11 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 8 Aug 26 0
    • New tool “firmaradar_get_regnskapsrapport” functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 21 Sept 2026 · Probed https://mcp.firmaradar.no/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mcp.firmaradar.no CN=YE2,O=Let's Encrypt,C=US 17 Aug 2026 15 Nov 2026 ECDSA 256 ECDSA-SHA384 5619a9363cc2507f37d75f9656931c943f0
SANs: mcp.firmaradar.no
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.firmaradar.no. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
no. present 38032 13 Verified
firmaradar.no. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer realm="firmaradar-mcp", resource_metadata="https://mcp.firmaradar.no/.well-known/oauth-protected-resource"

Bearer realm="firmaradar-mcp", resource_metadata="https://mcp.firmaradar.no/.well-known/oauth-protected-resource"
Header Value
strict-transport-security max-age=31536000; includeSubDomains
content-security-policy default-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none'
x-content-type-options nosniff
x-frame-options DENY
referrer-policy no-referrer
permissions-policy camera=(), microphone=(), geolocation=(), payment=(), fullscreen=(), interest-cohort=()

Protected resource metadata

Document https://mcp.firmaradar.no/.well-known/oauth-protected-resource
Retrieved Yes
Resource https://mcp.firmaradar.no
Authorisation server https://mcp.firmaradar.no

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.firmaradar.no/mcp Verified 200
http (plaintext) http://mcp.firmaradar.no/mcp Inconclusive 401
MCP tools · 36 exposed · ~7,839 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
firmaradar_add_company_monitoring ~266

Add a Norwegian company (by 9-digit orgnr) to the user's company-monitoring list. The user is then alerted when announcements, status changes (bankruptcy/dissolution), ownership changes or new public grants are registered for that company. New targets monitor ALL announcement categories by default; keep ip_alerts=true (default) to also turn on IP-change alerts when the account has the IP-monitoring add-on, or set ip_alerts=false to skip them. 409 if already monitored (idempotent — no duplicate). 403 (monitoring_cap_reached) if the account's company has hit its per-company monitoring cap — tell the user to contact Firmaradar to expand it. Requires a user whose plan has Firmaovervakning enabled. Call only when the user has asked to monitor a specific company.

NameTypeReqDescription
ip_alertsbooleanAlso enable IP-change alerts for this company. Default true = monitor everything. Requires the IP-monitoring add-on (ip_overvakning) on the account; without it the company is still monitored for all…
orgnrstringyesNorwegian organisation number (9 digits) to add to monitoring.
NameTypeReqDescription
ip_alerts_enabledbooleanWhether IP-change alerts were turned on (false without the add-on).
okbooleanTrue when the company was added.
orgnr
raw

No examples provided.

firmaradar_check_aml_pep ~305

Screen ONE natural PERSON's full name against sanctions (OFAC, EU, UN) and PEP lists. IMPORTANT — this is a PERSON tool only. Do NOT pass a company name, an organisation number (orgnr), or any non-person string here. For company-level AML risk use `firmaradar_get_aml_score` (by orgnr); to screen a company's owners/officers, first resolve the people via `firmaradar_get_company_roles` / `firmaradar_get_company_ownership`, then screen each PERSON name with this tool. Compliance-critical: PII-sensitive, requires a signed DPA and a legitimate purpose per call (free-text `purpose` parameter). Audit-logged for 60 months. Rate-limited to 50 calls / 30 min per API-key. Returns structured hits with category, sources, and match-ratio (default min 0.85).

NameTypeReqDescription
birth_year
kategoristring
min_match_rationumber
namestringyesFull name of ONE natural PERSON to screen (e.g. 'Ola Nordmann'). NOT a company name or orgnr — for company AML use firmaradar_get_aml_score instead.
purposestringyesLegitimate purpose for this AML/PEP screening (free text, e.g. 'KYC verification for new customer acme-as'). Logged in compliance audit for 60 months.
NameTypeReqDescription
hit_countintegeryes
hitsarrayyes
note
query_birth_year
query_namestringyes
query_too_shortTrue: query < 5 chars, substring discovery skipped — a zero hit_count does NOT confirm the name is clean. False: not applicable. null: not reported by the server — unknown, not OK.
results_truncatedTrue: server-side hit cap reached, list may be incomplete. False: complete. null: not reported by the server — unknown, not complete.
search_degradedTrue: trigram/alias candidate discovery was unavailable — a zero hit_count does NOT confirm the name is clean. False: full search ran. null: not reported by the server — unknown, not OK.

No examples provided.

firmaradar_check_fiv_bulk ~236

Bulk-endpoint for portfolio-screening of 'foretak i vanskeligheter' (financially distressed companies per EU GBER art. 2(18) criteria a-e, assessed at both company and group level). Max 50 orgnr per call. Each orgnr counts as one unit against your quota. Gate failures (invalid orgnr, missing entitlement) are returned per orgnr in the result list instead of failing the whole call — check each result's `error` field. Note: the distress assessment has no organisation-form gate — a sole proprietorship (ENK) is assessed like any other company. Use for screening supplier lists, credit-portfolios, or EU state-aid eligibility on multiple companies at once.

NameTypeReqDescription
orgnrsarrayyesList of 1-50 nine-digit Norwegian organization numbers. Each orgnr counts as one unit against your quota.
skip_freshnessbooleanIf True, accept FIV-data even if the underlying regnskap- or BRREG-snapshot is older than the normal freshness window. Use sparingly — recommended only for retrospective screening.
NameTypeReqDescription
_metayesAggregate count status for the whole bulk call.
resultsarray
summaryHuman-readable markdown table of the per-company FIV verdicts.

No examples provided.

firmaradar_check_foretak_i_vanskeligheter ~150

Assess whether a Norwegian company qualifies as *foretak i vanskeligheter* (a 'company in difficulty') under EU GBER art. 2(18) criteria a-e. Assessed at BOTH company and group level, as EU/EFTA state-aid practice requires — a company with clean accounts is in difficulty when its group is. Returns which criteria triggered, the overall status, the group assessment, and a data-completeness confidence score — a deterministic distress classification, not a raw registry flag. Use for EU state-aid eligibility, credit assessment, and supplier-risk screening.

NameTypeReqDescription
orgnrstringyes9-digit norwegian organization number.
NameTypeReqDescription
as_of
classifier_versionImmutable version stamp for the FIV rule set used.
classifier_version_sequenceAuthoritative monotonic ordering key for classifier_version; compare this field, not the version string, to order rule sets.
company_statusThe company-level result alone, before the group level was applied.
confidencenumberyesData-completeness confidence in [0.0, 1.0].
distress_basisWhich level makes the company distressed: company, group or company_and_group. Null when not distressed.
group_assessment
orgnrstringyes
raw
rescuable_by_groupbooleanTrue when the group can lift the company out of difficulty by injecting capital before the aid is granted.
rescue_estimate
rules_firedarray
scorenumberyesConfidence-weighted distress score in [0.0, 1.0].
statusstringyesOne of: not_distressed, insufficient_data, not_distressed_partial, exempt_young_company, distressed. Reflects BOTH levels of the assessment — a company with clean accounts is 'distressed' when its gr…
verdictDeprecated display label retained for backwards compatibility. Use verdict_presentation for the qualified label and mandatory caveat. Scheduled for removal in firmaradar-mcp 0.8.0, after the structur…
verdict_presentationQualified display verdict. Label and mandatory caveat footnote travel as one object; a caveated 'No (*)' is never returned without its text.

No examples provided.

firmaradar_check_konkurs_eksponering ~178

Screen a person by NAME for bankruptcy exposure ('konkursgjenganger'): leadership roles (chair / managing director) held in companies that later went bankrupt, tenure-weighted, from the dated role history. Use this for HISTORICAL leaders who are no longer in any role index and so cannot be reached via search_persons/get_person. The match is name-based (no national ID), so a hit is a REVIEW FLAG to verify (birth year / address), not a verdict. PII-sensitive — requires the search_full_enabled tier.

NameTypeReqDescription
navnstringyesFull name to screen (min 2 characters), e.g. 'Karl Petter Ulriksen'.
purposePurpose-of-processing string for the F10.11 audit trail. Required when calling against accounts with purpose-confirmation.
NameTypeReqDescription
antall_konkursforetakinteger
foretakarray
navnstringyes
note

No examples provided.

firmaradar_compare_companies ~211

Compare key financial metrics of up to 5 Norwegian companies side-by-side across the last N years (default 5). Use for competitor analysis, benchmark research or 'which of these three companies is the strongest?' Amounts are in each company's reporting currency (see the `currencies` field; NOK for most Norwegian companies) — check it before comparing absolute amounts. `antall_ansatte` is a CURRENT-value register attribute with no per-year history: read it from the top-level `antall_ansatte` field ({orgnr: headcount}); its rows in `comparison` are always null.

NameTypeReqDescription
metricsOptional subset of metrics: omsetning, driftsresultat, aarsresultat, sum_egenkapital, sum_gjeld, antall_ansatte. Omit for the standard set.
orgnrsarrayyes1-5 unique orgnr to compare side-by-side; duplicates are invalid.
yearsinteger
NameTypeReqDescription
antall_ansatte{<orgnr>: <current headcount|null>}. Present only when `antall_ansatte` is in the requested metric set. CURRENT value from Enhetsregisteret (the register attribute has no per-year history), mirroring…
comparisonobjectyes{<metric>: {<orgnr>: [<value_per_year>, ...]}}. For `antall_ansatte` the per-year lists are always null — headcount does not exist per fiscal year; use the top-level `antall_ansatte` field instead.
computed_atstringyes
currencies{<orgnr>: [<ISO 4217 currency per year, aligned with `years`>]}. None for years without data. Amounts in `comparison` are in the company's reporting currency for that year (NOK for most Norwegian com…
orgnrsarrayyes
summary
utelatelsesarsakWhy the fields in `utelatte_felter` were omitted. `tier_required` means the REST producer explicitly reported that access requires a machine-channel tier; `verification_unavailable` means access coul…
utelatt_av_planDeprecated compatibility alias for `utelatte_felter`. It is populated only when `utelatelsesarsak` is explicitly `tier_required`; it is null for verification failures, missing or legacy diagnostics,…
utelatte_felterLists the requested metrics whose SOURCE was redacted for you — e.g. ["omsetning", "antall_ansatte"]. Absent when nothing was redacted. Read its contents, do not test for the key. 🔑 It marks REDACTI…
yearsarrayyes

No examples provided.

firmaradar_confirm_risk_score_disclaimer ~190

Confirm the pre-screening disclaimer required by firmaradar_get_risk_score. This is a one-time confirmation per Firmaradar user (not per agent and not per call); it is permanent and audit-logged. Requires an OAuth token tied to a user whose plan has risk scoring enabled. Idempotent — if the user has already confirmed, the existing confirmation is returned (same audit_id). The confirmation declares that risk scoring is used only for legitimate purposes (KYC, credit pre-screening, due diligence, supplier screening) and NOT as a substitute for a formal credit assessment or an automated adverse decision. The disclaimer text and version are embedded in this tool and sent to the backend as an explicit string match, so an agent cannot confirm a version it has not seen. Call this tool only when the user has explicitly instructed you to confirm the disclaimer on their behalf.

Input schema present but exposes no named parameters.

NameTypeReqDescription
audit_idID of the audit row in ``extension_kundebekreftelse_event``.
confirmedbooleanyesTrue if the disclaimer is confirmed for the user.
confirmed_atISO timestamp of the confirmation.
confirmed_by_user_idintegeryesID of the Firmaradar user the confirmation is registered against.
idempotentbooleanTrue if the confirmation already existed (no new row written).
raw
versionstringyesDisclaimer version that was confirmed (e.g. 'v1').

No examples provided.

firmaradar_convert_nok ~148

Convert a NOK amount to a foreign currency (EUR, USD, GBP, SEK, DKK) using daily exchange rates from Norges Bank (the Norwegian central bank). Firmaradar's financial figures are reported in NOK; use this to express them in another currency for international workflows. The NOK original is always preserved in the response. Omit amount_nok to fetch just the current rate.

NameTypeReqDescription
amount_nokAmount in NOK to convert. Omit to fetch only the current rate (the response 'amount' will be null).
to_currencystringyesTarget ISO 4217 currency code. Supported: EUR, USD, GBP, SEK, DKK.
NameTypeReqDescription
amountConverted amount in the target currency.
amount_nokThe original NOK amount (preserved, unchanged).
currencystringyesTarget currency (ISO 4217).
ratenumberyesMultiplier applied: amount = amount_nok * rate (target units per NOK).
rate_dateISO date of the Norges Bank observation.
sourcestringRate source.

No examples provided.

firmaradar_delete_subscription ~121

Delete one NACE industry-monitoring subscription by its id (from list_my_subscriptions); Firmaradar then stops delivering webhooks for that industry. The subscription must belong to the authenticated user. Idempotent — deleting an id that is already gone returns already_absent=true rather than an error. Reversible only by re-subscribing. Call only when the user has asked to stop monitoring an industry.

NameTypeReqDescription
subscription_idintegeryesThe id of the subscription to delete (from list_my_subscriptions). Must belong to the authenticated user.
NameTypeReqDescription
already_absentbooleanTrue if no subscription with that id existed for the user (nothing to delete).
deletedbooleanyesTrue if the subscription was removed.
idintegeryesThe id that was targeted.
raw

No examples provided.

firmaradar_find_related_companies ~157

Find companies related to the given orgnr via shared persons (board members/shareholders), shared registered address, or shared ultimate owners. Use for cluster analysis, hidden-relation detection in DD, or fraud-pattern research.

NameTypeReqDescription
limitinteger
min_overlapintegerWhen via=person/owner: minimum number of shared entities to qualify.
orgnrstringyes9-digit orgnr — the company to find relations for.
viastringyes'person' = shared board members/shareholders. 'address' = same forretningsadresse. 'owner' = shares significant owners (>=10%) via the shareholder-book ownership graph (heavier — owner-graph traversa…
NameTypeReqDescription
orgnrstringyes
relatedarrayyes
total_countintegeryes
viastringyes

No examples provided.

firmaradar_find_shared_connections ~151

Analyse hidden connections across 2–10 Norwegian companies at once: shared board members/signatories, shared registered address, shared owners or ultimate parent, circular ownership, shared auditor, and companies founded close together in time — returned with weighted risk indicators, an overall risk level (lav/middels/hoy) and a node/edge graph. Use for due-diligence cluster analysis, shell-company / straw-man detection and fraud-pattern research. Requires the customer's koblingsanalyse extension; the company count is capped by their tier. Look up orgnrs via search_companies first.

NameTypeReqDescription
orgnrsarrayyes2–10 Norwegian organisation numbers (9 digits each) to analyse together.
NameTypeReqDescription
felles_adresserarray
felles_eierearray
felles_morselskaparray
felles_personerarray
felles_revisor_selskaparray
grafobject{noder, kanter} for graph rendering.
metaobject
risiko_indikatorerarray
risiko_nivastring
risiko_scorenumber
selskaperarrayCompanies analysed ({orgnr, navn}).
sirkulaer_eierskaparray
stiftet_tettarray
summary

No examples provided.

firmaradar_get_aml_report ~118

Poll the status and result of an asynchronous AML report started with `start_aml_report`. Pass the report_id; returns status (pending/running/done/failed). When status is 'done' it includes the AML risk score (0-100), level (low/medium/high) and links to the stored report; when 'failed' it includes the error reason. Poll periodically until the status is terminal (done/failed).

NameTypeReqDescription
report_idstringyesThe report_id returned by `start_aml_report`.
NameTypeReqDescription
errorFailure reason (only when status='failed').
levellow/medium/high (only when status='done').
orgnr
raw
report_idstringyes
scoreAML risk score 0-100 (only when status='done').
statusstringyesOne of: pending, running, done, failed.

No examples provided.

firmaradar_get_aml_score ~257

Structured COMPANY AML risk score (0-100) with named level (low/medium/high), by orgnr. This is the primary tool for 'what is the AML risk / AML score of company X'. Call it ONCE per company — it ALREADY screens the company's key persons and beneficial owners against PEP and sanctions lists internally and folds that into the score. You normally do NOT need to call `check_aml_pep` per owner/officer afterwards; do that only for ad-hoc screening of one specific named individual you need extra detail on. Complements `check_aml_pep` (binary match data for a single PERSON name). Generates an auditable AML report on the backend (rapport_id stored for 60 months per Hvitvaskingsloven §35); factor-level detail lives in the stored report links. The report is generated asynchronously — for very large/complex ownership structures the result can come back with level='pending' and a rapport_id; poll `get_aml_report` with that id until status is 'done'.

NameTypeReqDescription
orgnrstringyes9-digit norwegian organization number.
purposestringPurpose of the screening — recorded for audit trail.
NameTypeReqDescription
factorsarrayAlways empty for the async report flow — factor detail lives in the stored report (json_url/pdf_url in `raw` when done).
levelstringyesOne of: low, medium, high — or 'pending' when the report is still generating (poll `get_aml_report` with rapport_id).
orgnrstringyes
rapport_idPersistent report-id for compliance audit (retrievable later).
raw
scoreintegeryesAML risk score 0-100 (higher = riskier).

No examples provided.

firmaradar_get_company ~280

Fetch the full profile for one Norwegian company by orgnr: name, group structure, ownership data, grants, recent BRREG announcements and financial metrics. Opt-in `fields` add deeper enrichment — notably `fields=['ip']` for the company's intellectual-property portfolio (patents, trademarks and designs from Patentstyret). The primary 'show me this company' tool — use after `search_companies` returns an orgnr. Sourced from the official Norwegian registers (BRREG Enhetsregisteret + Skatteetaten + Patentstyret) and refreshed daily. The result includes a canonical Firmaradar `url`.

NameTypeReqDescription
fieldsarraySubset of sections to include. Omit to get the default profile. Notable opt-in sections: `ip` — intellectual-property portfolio (patents, trademarks and designs from Patentstyret); `group` — full gro…
include_financial_metricsboolean
orgnrstringyesNorwegian organisation number — exactly 9 digits.
ownersOwner-tier requested. 'full' requires Full eierskapsoversikt tier.
NameTypeReqDescription
brreg_tildelinger
eiere
endringer
financial_metrics
foretaksklassifisering
ip_rettigheter
konsernstruktur
navn
orgnrstringyes
rawThe server's response as received, without local enrichment.
sourcestringAuthoritative source name.
summaryHuman-readable summary (LLM-friendly).
tildelinger
urlCanonical Firmaradar source URL for this company — cite this.

No examples provided.

firmaradar_get_company_announcements ~81

List BRREG kunngjøringer (official announcements) for a Norwegian company: bankruptcy, mergers, demergers, ownership changes, address changes, etc. Free-text fields are wrapped in <untrusted_content> tags to prevent prompt injection from BRREG-sourced text.

NameTypeReqDescription
orgnrstringyes9-digit orgnr.
NameTypeReqDescription
countintegeryes
itemsarrayyes
orgnrstringyes

No examples provided.

firmaradar_get_company_financials ~175

Fetch the last N years (default 5) of financial metrics for a Norwegian company: revenue, operating result, equity, debt, employees. Use when the user asks 'how is X AS doing financially?' or 'show me the revenue trend'. Figures come from the official annual accounts filed with BRREG. Amounts are in the company's reporting currency — check the `valuta` field (NOK for most companies, but e.g. USD for some international groups; 'MIXED' means the currency changed within the series).

NameTypeReqDescription
orgnrstringyes9-digit orgnr.
regnskapstypestring
skip_freshnessbooleanSkip the inline freshness fetch (faster, but may return stale data).
yearsinteger
NameTypeReqDescription
freshness
orgnrstringyes
regnskapstypestringyes
summary
utelatelsesarsakWhy `utelatte_felter` was omitted: `tier_required` means the REST producer explicitly reported that access requires a machine-channel tier; `verification_unavailable` means access could not be verifi…
utelatte_felterLists financial fields whose SOURCE was omitted from this response. It does not prove that every listed field had a non-null value in every year. `antall_ansatte` is listed only when surviving classi…
valutaReporting currency across the series (ISO 4217, e.g. 'NOK' or 'USD'). 'MIXED' when the years are filed in different currencies — then check valuta per year before comparing amounts across years.
yearsarrayyes

No examples provided.

firmaradar_get_company_ip ~149

Intellectual-property portfolio for a Norwegian company (by orgnr), sourced from Patentstyret: patents, trademarks and designs — totals, active counts, and a list of individual rights (registration number, date, status, expiry date where applicable, title and a link to the Patentstyret case). Use this for ANY question about a company's patents, trademarks, designs or IP rights — Firmaradar covers this. The `rights` list is ordered newest-first, so the first N entries are the newest rights. Look up the orgnr via `search_companies` first if you only have a name.

NameTypeReqDescription
orgnrstringyesNorwegian organisation number — exactly 9 digits.
NameTypeReqDescription
availablebooleanWhether Patentstyret IP data was found.
designsinteger
designs_activeinteger
navn
orgnrstringyes
patentsinteger
patents_activeinteger
rightsarray
rights_moreintegerAntall rettigheter ut over `rights`-lista.
sourcestringAuthoritative source.
summary
trademarksinteger
trademarks_activeinteger
urlCanonical Firmaradar source URL.

No examples provided.

firmaradar_get_company_ownership ~292

Get the ownership tree for a Norwegian company: who they own (direction=down), who owns them (direction=up / UBO), or both. Use when the user asks 'who owns X AS?' or to map a corporate group. Ownership comes from Skatteetaten's Aksjeeierbok (the official shareholder register) and reflects the latest filed holdings. The result contains ownership edges, percentages and company identifiers for the requested traversal direction.

NameTypeReqDescription
depthintegerMax recursion depth.
directionstring'down' = who this company owns. 'up' = who owns this company (UBO). 'both' = both trees.
include_personsbooleanInclude sensitive personal shareholders (UBO). This is a consent control, not a subscription tier. For direct API-key calls, enable the key's own consent and include the target orgnr in its allowlist…
min_share_pctDrop branches where ownership < this percentage.
orgnrstringyesNorwegian organisation number — 9 digits.
NameTypeReqDescription
depthintegeryes
directionstringyes
orgnrstringyes
summary
treeobjectyes

No examples provided.

firmaradar_get_company_roles ~136

List board members, daglig leder, signature holders, prokura and revisor for a Norwegian company. Set include_historic=true for people who previously held roles. Use when the user asks 'who runs X AS?' or 'who is on the board?' Roles come live from BRREG (the official enterprise register) and include role type and available appointment or resignation dates.

NameTypeReqDescription
include_historicbooleanInclude roles that have ended.
orgnrstringyes9-digit orgnr.
role_typeFilter on a single role type. Omit to get all roles.
NameTypeReqDescription
orgnrstringyes
rolesarrayyes
total_countintegeryes

No examples provided.

firmaradar_get_company_signals ~189

Aggregated risk and growth signals for one company: bankruptcy/distress score, capital-loss flags, M&A interim-balance signals, KYC announcement anomalies, NAV hiring/growth signal, merger/demerger (fusjon/fisjon) relations, ownership-change history (owner churn), plus authoritative voluntary-org (Frivillighetsregister) status. Use as the second step after `get_company` to evaluate whether a company needs deeper due diligence.

NameTypeReqDescription
orgnrstringyes9-digit orgnr.
sinceISO 8601 date — lookback cutoff for the announcement-based KYC signals (kyc_signals). Defaults to 730 days back, capped at 1825. State-based sources (distress, interim balance, hiring, funding, IP, o…
NameTypeReqDescription
distress_category
distress_reasonsarray
distress_score
frivillighetAuthoritative Frivillighetsregister (voluntary-org) membership: registered, registreringsdato, kategorier. Omitted when the source is off.
fusjonMerger/demerger relations: inbound (companies merged into this orgnr) + outbound (companies this orgnr was merged into), with dates.
generated_at
hiringNAV Arbeidsplassen hiring/growth signal: active_postings, positions_active, postings_30d/90d, burst_score, is_hiring_burst.
interim_balance_signal
kyc_signalsarray
orgnrstringyes
ownership_churnOwnership-change history (owner churn): changes_total, changes_in_window, window_months, threshold, last_change_date, period_months, is_frequent_owner_change, calibrated. Repeated changes of the cont…
recent_role_changes_countinteger
summary

No examples provided.

firmaradar_get_konsernstotte ~165

Tree-structured overview of public grants (Innovasjon Norge, SkatteFUNN, BRREG støtteregister, Prosjektbanken) for a Norwegian company and its konsern. Returns ``selskap_stotte`` per node (støtte to that specific company) and ``konsern_aggregat`` (sum across the full hierarchy). NOTE: SkatteFUNN never reports amounts — use ``antall_prosjekter`` as the primary activity KPI since ``total_belop_nok`` excludes SkatteFUNN by source design. Use for due-diligence, state-aid compliance checks, or competitive intelligence.

NameTypeReqDescription
orgnrstringyes9-digit norwegian organization number (typically konsern-toppen).
NameTypeReqDescription
antall_underselskaperinteger
barnarray
konsern_aggregat
navnstringyes
orgnrstringyes
raw
selskap_stotte

No examples provided.

firmaradar_get_person ~242

Aggregated person profile: name, birth year, active roles, shareholdings and any AML/PEP risk hits. Also returns `konkurs_eksponering` — leadership roles the person held in companies that later went bankrupt (tenure-weighted, from the dated role history). That match is name-based (no national ID), so it is a REVIEW FLAG to verify, not a verdict. Note: this profile lookup does NOT run a PEP/sanctions screening — an empty `aml_pep_hits` is not a clean bill; use `firmaradar_check_aml_pep` for an actual screening. Strict PII-sensitive — requires search_full_enabled tier and F10.11 purpose confirmation. Minors are blocked except for super-admin accounts.

NameTypeReqDescription
person_idstringyesPerson ID — either `person-YYYY-[24 hex]` (from `search_persons` shareholders) or `role-[24 hex]` (from `search_persons` role_persons).
purposePurpose-of-processing string for the F10.11 audit trail. Required when calling against accounts with purpose-confirmation.
NameTypeReqDescription
active_rolesarray
aml_pep_hitsarray
aml_pep_note
birth_year
konkurs_eksponeringobject
navnstringyes
person_idstringyes
shareholdingsarray
summary

No examples provided.

firmaradar_get_person_companies ~101

List all Norwegian companies where the given person holds shares. Use when the user asks 'what does Person A own?' Pass the owner_person_key returned by `search_persons`.

NameTypeReqDescription
include_historicbooleanReserved for future support; currently only current holdings are returned.
person_keystringyesShareholder key, format `person-YYYY-[24 hex]`. Obtain from `search_persons` shareholders[] results.
NameTypeReqDescription
navnstringyes
person_keystringyes
shareholdingsarrayyes
total_companiesintegeryes

No examples provided.

firmaradar_get_person_roles ~106

List all company roles (styreleder, daglig leder, etc.) held by a person, current and historic. Use when the user asks 'what roles does Person A hold?' Pass the role_person_id returned by `search_persons`.

NameTypeReqDescription
include_historicboolean
role_person_idstringyesStable role-person ID, format `role-[24 hex chars]`. Obtain from `search_persons` role_persons[] results.
NameTypeReqDescription
navnstringyes
role_person_idstringyes
rolesarrayyes
total_rolesintegeryes

No examples provided.

firmaradar_get_recent_changes ~155

List changes (kunngjøringer for companies; role + ownership movements for persons) in the last N days. Use when monitoring a target entity for triggers ('has anything changed for X AS in the last month?'). Pair with `subscribe_company` for push notifications.

NameTypeReqDescription
categoryOptional kunngjøring (announcement) category filter. Values are Norwegian: konkurs (bankruptcy), fusjon (merger), eierbytte (change of ownership), ...
daysinteger
entity_typestringyes'company' = orgnr; 'person' = person_id.
idstringyesOrgnr (9 digits) or person_id depending on entity_type.
NameTypeReqDescription
countintegeryes
entity_typestringyes
idstringyes
itemsarrayyes
sincestringyes
untilstringyes

No examples provided.

firmaradar_get_regnskapsrapport ~308

Order a formatted, downloadable financial report (Excel or PDF) for a Norwegian company — the same multi-source-fused figures, layout and source note as the report a customer would download in the Firmaradar portal, ready to file or forward. Returns a short-lived download link + metadata (years covered, source, currency), NOT the file itself and NOT base64 data — fetch the download_url separately, no further auth required, within expires_in seconds. Use `get_company_financials` instead when you need the raw figures to reason about, not a document to hand off. Requires the Excel-export or PDF-export add-on (matching the requested format) on the caller's account. Charges 1 credit per financial year included in the report.

NameTypeReqDescription
formatstring'xlsx' for a spreadsheet (3 sheets: figures, key ratios, source) or 'pdf' for a print-ready report. Each format requires its own subscription add-on on the caller's account (Excel export / PDF export…
orgnrstringyes9-digit Norwegian organisation number.
regnskapstypestring'SELSKAP' for the standalone company accounts, 'KONSERN' for the consolidated group accounts (only meaningful for companies that file one).
yearsintegerNumber of financial years to include (hard-capped at 5).
NameTypeReqDescription
aarThe financial years included, newest first.
antall_aarintegeryesNumber of years actually delivered in the report.
download_urlstringyesShort-lived signed URL (~15 min) for the actual file. No further authentication is required to fetch it — the URL itself is the credential, so treat it as sensitive and don't share it beyond the requ…
expires_inintegeryesSeconds until download_url stops working.
formatstringyes
kildeSource label shown in the report.
maks_aar
orgnrstringyes
regnskapstypestringyes
valutaReporting currency (ISO 4217, or 'MIXED' if it changed within the series).

No examples provided.

firmaradar_get_risk_score ~269

Structured risk score (0-100) with named level (lav/moderat/høy/kritisk) and component breakdown for a Norwegian COMPANY's financial health. Combines distress classification, BRREG status, age, capital signals and other factors into one comparable score. Returns an enk_not_supported error for sole proprietorships (ENK) and Norwegian-registered foreign enterprises (NUF). SCOPE: Company financial health only. NOT a personal credit check on owners or officers. For full KYC pre-screening, combine with firmaradar_get_aml_score (PEP/sanctions on key persons). **Requires a one-time pre-screening-disclaimer confirmation.** If the tool fails with HTTP 403 and error `kundebekreftelse_required`, inform the user that confirmation is required. Call `firmaradar_confirm_risk_score_disclaimer` only after the user has explicitly instructed you to confirm the disclaimer. The confirmation is per OAuth user, not per call, and is permanent and audit-logged. Alternatively the user can confirm manually at https://firmaradar.no/minbedrift/utvidelser/risikoscoring — both paths write to the same audit table.

NameTypeReqDescription
orgnrstringyes9-digit norwegian organization number.
NameTypeReqDescription
componentsarray
data_gapsarray
errorBackward-compatible decoder field for recorded legacy payloads. The current endpoint returns gates as HTTP 403/404/422/503, so a gate never appears in a successful tool output.
levelstringyesNorwegian risk level — one of: lav (low), moderat (moderate), høy (high), kritisk (critical). Present only in a successful HTTP 200 scoring result.
organisasjonsformBackward-compatible context from recorded legacy gate payloads; current gate responses are non-2xx errors.
orgnrstringyes
raw
scorenumberyesRisk score on the 0-100 scale (higher = riskier). Present only in a successful HTTP 200 scoring result. Gate responses are HTTP 403/404/422/503 errors and never instantiate this output model.
sourcesarray

No examples provided.

firmaradar_get_risk_score_bulk ~159

Bulk-endpoint for portfolio-screening of risikoscore (0-100 with named level lav/moderat/høy/kritisk + component breakdown) on up to 50 Norwegian companies in one call. Each orgnr counts as one unit against your quota. Compliance-gates (ENK/NUF blocking and customer-confirmation required) are returned per orgnr in the result list instead of failing the whole call — check each result's `error` field. Use for credit-decision screening, supplier-portfolio review, and KYC risk triage at scale.

NameTypeReqDescription
orgnrsarrayyesList of 1-50 nine-digit Norwegian organization numbers. Each orgnr counts as one unit against your quota.
NameTypeReqDescription
_metayesAggregate count status for the whole bulk call.
resultsarray
summaryHuman-readable markdown table of the per-company scores.

No examples provided.

firmaradar_list_companies_in_nace ~471

List Norwegian companies in a specific NACE industry code (or code prefix), optionally filtered by status, kommune and size. Useful for sector analysis ('all active restaurants in Oslo with > 5 employees'). **NACE format warning:** Use the EU NACE Rev. 2 format with a trailing zero (e.g. `62.100`, `62.200`, `58.290`). **The Norwegian SN2007 format (`62.01`, `62.02`) returns 0 hits** — we do not store SN2007. If you are unsure about a code, call `firmaradar_list_nace_codes` first. Backed by the official Norwegian register (BRREG) and refreshed daily. Use `stiftet_etter` for newly-founded-company queries.

NameTypeReqDescription
codestringyesNACE code or prefix. Norwegian BRREG uses 5-digit SN2007 codes internally (e.g. '56.110' for restaurants, '47.111' for grocery stores). Any prefix works: '56' matches all serving (2-digit), '56.1' ma…
cursor
kommuneNorwegian kommunenummer — EXACTLY 4 digits, zero-padded. Examples: '0301' = Oslo, '4601' = Bergen, '5001' = Trondheim, '1103' = Stavanger. Kommune-NAMES are NOT accepted — translate the name to kommu…
limitinteger
max_ansatte
min_ansatte
status
stiftet_etterISO 8601 date (YYYY-MM-DD) — only companies founded on/after this date. Use for 'newly founded companies in this industry' queries (industry monitoring).
stiftet_forISO 8601 date (YYYY-MM-DD) — only companies founded on/before this date.
NameTypeReqDescription
catalog
itemsarrayyes
nace_codestringyes
next_cursor
total_count

No examples provided.

firmaradar_list_my_subscriptions ~95

List the NACE industry-monitoring subscriptions of the authenticated Firmaradar user (created via subscribe_nace or the portal). Returns each subscription's id, NACE code, webhook URL, event filters, aggregation mode, geographic/size filters and active state. Use the returned `id` with delete_subscription to remove one. Encrypted bearer tokens are never returned (only `has_bearer_token`).

Input schema present but exposes no named parameters.

NameTypeReqDescription
countintegeryes
itemsarrayyes

No examples provided.

firmaradar_list_nace_codes ~308

Search and browse the Norwegian NACE industry-code catalogue. Use this to resolve the exact code before calling subscribe_nace (industry monitoring) or list_companies_in_nace. Free-text search with `q` ('restaurant', 'programvare'), drill the hierarchy with `parent` (omit for the top-level sections A–U), or convert an EU NACE Rev. 2 code to the Norwegian 5-digit sub-codes with `eu`. Each hit includes the Norwegian and (when available) English label plus company counts. Backed by the official catalogue (SSB/BRREG), refreshed daily.

NameTypeReqDescription
euAn EU NACE Rev. 2 code (e.g. '47.11', '62.01') — returns the Norwegian 5-digit sub-codes the register actually uses. Use this when you have an EU/international code and need the Norwegian equivalent…
limitinteger
parentReturn the direct children of this code to drill down the hierarchy: a section letter ('G'), a 2-digit group ('47'), a 3-digit ('47.1') or 4-digit ('47.11') code. Omit to list the top-level sections…
qFree-text search on the Norwegian industry label (e.g. 'restaurant', 'programvare', 'bygg'). Returns the best-matching NACE codes ranked by relevance.
NameTypeReqDescription
countintegeryes
itemsarrayyes

No examples provided.

firmaradar_search_announcements ~285

Search BRREG kunngjøringer across all Norwegian companies — filter by type (konkurs, fusjon, ...), date range, NACE-code, or location. Use for trend analysis ('all konkurser in restaurant sector last quarter') or radar-style monitoring.

NameTypeReqDescription
cursor
from_dateISO date — inclusive lower bound.
fylkeNorwegian fylkenummer — EXACTLY 2 digits, zero-padded (e.g. '03' = Oslo). NAMES not accepted.
kommuneNorwegian kommunenummer — EXACTLY 4 digits, zero-padded (e.g. '0301' = Oslo). NAMES not accepted.
limitinteger
naceNACE code or prefix. Norwegian BRREG uses 5-digit SN2007 codes internally (e.g. '56.110'). Any prefix works (2-5 digits). If a 4-digit code yields no results, append '0' for the 5-digit form.
qFree-text on company name.
to_dateISO date — inclusive upper bound.
typeKunngjøring (announcement) type/category. Values are Norwegian: konkurs (bankruptcy), fusjon (merger), fisjon (demerger), eierbytte (change of ownership), ...
NameTypeReqDescription
filterobjectyes
itemsarrayyes
next_cursor
total_count

No examples provided.

firmaradar_search_companies ~597

Search Norwegian companies with filters (name, NACE, location, status, employees, revenue range, founding date). Returns paginated list of candidate orgnr to investigate further. Use when you have a description and need to find matching companies; use `get_company` once you have a specific orgnr. Revenue filtering excludes companies with no reported NOK revenue figure — see `min_omsetning_nok`. Backed by the official Norwegian company register (BRREG). Each hit includes a canonical Firmaradar `url` and the fields that matched the requested filters.

NameTypeReqDescription
cursorOpaque pagination cursor from previous call.
fylkeNorwegian fylkenummer — EXACTLY 2 digits, zero-padded. Examples: '03' = Oslo, '11' = Rogaland, '15' = Møre og Romsdal. Fylke-NAMES are NOT accepted — translate first.
kommuneNorwegian kommunenummer — EXACTLY 4 digits, zero-padded. Examples: '0301' = Oslo, '4601' = Bergen, '5001' = Trondheim, '1103' = Stavanger. Kommune-NAMES are NOT accepted — translate the name to kommu…
limitinteger
max_ansatte
max_omsetning_nokMaximum annual revenue (driftsinntekter) in NOK — same source and same exclusion rule as min_omsetning_nok.
min_ansatte
min_omsetning_nokMinimum annual revenue (driftsinntekter) in NOK, from the company's own accounts (not consolidated/group figures), latest year with a reported figure. NOTE: companies with no reported revenue are EXC…
naceNACE code or prefix. Norwegian BRREG uses 5-digit SN2007 codes internally (e.g. '56.110' for restaurants, '47.111' for grocery stores). Any prefix works: '47' matches all retail (2-digit), '47.1' mat…
qFree-text search across company names.
statusFilter on company status.
stiftet_etterISO 8601 date — only companies founded on/after.
stiftet_forISO 8601 date — only companies founded on/before.
NameTypeReqDescription
itemsarrayyes
next_cursor
omsetning_filter_noteSet only when a revenue range was requested: explains that companies without a reported NOK revenue figure were excluded, so an empty result may mean missing accounts rather than no matching companie…
total_count

No examples provided.

firmaradar_search_persons ~119

Search for Norwegian persons in the shareholder/role-holder dataset by name. PII-sensitive — requires the search_full_enabled tier. Returns separate shareholder and role-holder hit lists with stable IDs that can be passed to `get_person_companies` and `get_person_roles`.

NameTypeReqDescription
birth_yearFilter on birth year (helps disambiguate common names).
kommune_hintOptional kommune name to help disambiguate matches.
limitinteger
qstringyesName to search (min 2 characters).
NameTypeReqDescription
querystringyes
role_personsarrayyes
role_persons_countintegeryes
shareholdersarrayyes
shareholders_countintegeryes

No examples provided.

firmaradar_start_aml_report ~161

Start generating an AML risk report ASYNCHRONOUSLY for a Norwegian company. Returns immediately with a report_id and status 'pending' — the report is built in the background. Poll `get_aml_report` with the report_id until status is 'done' (then read score/level/factors) or 'failed'. Use this instead of `get_aml_score` for large/complex ownership structures that may otherwise time out, or to start many screenings in parallel. Generates an auditable report stored for 60 months per Hvitvaskingsloven §35.

NameTypeReqDescription
orgnrstringyes9-digit norwegian organization number.
purposestringPurpose of the screening — recorded for audit trail.
NameTypeReqDescription
orgnrstringyes
raw
report_idstringyesJob/report id — poll with `get_aml_report` until status is 'done' or 'failed'.
statusstringyesOne of: pending, running, done, failed (starts at 'pending').

No examples provided.

firmaradar_subscribe_nace ~508

Subscribe to industry (NACE) monitoring: when any Norwegian company in the chosen industry triggers a monitored event (new announcement, status change such as bankruptcy/dissolution, or ownership update), Firmaradar delivers a webhook to your URL. Use list_nace_codes first to resolve the exact code. A subscription on a parent code matches all child codes. Restrict `events` (e.g. ['status_changed']) and use geographic/size filters to cut volume in large industries, or pick a digest `aggregation_mode`. Idempotent — upserted on (user, nace_code), so re-subscribing the same code updates it. Requires a user whose plan has Firmaovervakning enabled. Call only when the user has asked to set up industry monitoring.

NameTypeReqDescription
aggregation_modestringDelivery cadence. 'real_time' (default) posts each event immediately. 'hourly_digest' / 'daily_digest' batch events to reduce noise in high-volume industries.
aktivertbooleanWhether the subscription is active immediately (default true).
bearer_tokenOptional bearer token Firmaradar sends as `Authorization: Bearer <token>` when calling your webhook URL, so your endpoint can authenticate the delivery. Stored encrypted.
eventsarrayWhich event types to deliver. Omit for all of them. Restrict to e.g. ['status_changed'] to receive only bankruptcy/dissolution signals and cut volume dramatically in large industries.
fylke_filterOptional geographic filter: only companies in these fylker (county numbers).
kommune_filterOptional geographic filter: only companies in these kommuner (4-digit kommunenummer).
landsdel_filterOptional geographic filter: only companies in these landsdeler.
min_ansatteOptional size filter: only companies with at least this many employees.
min_omsetning_nokOptional size filter: only companies with at least this much revenue (NOK).
nace_codestringyesThe NACE code to monitor. Accepts a section letter ('G'), a group ('47'), or a more specific code ('47.110'). Resolve the exact code first with list_nace_codes if unsure. A subscription on a parent c…
urlHTTPS webhook URL that receives a POST for each matched event. Omit only if you intend to add it later via the portal.
NameTypeReqDescription
aggregation_mode
aggregation_mode_en
aktivertboolean
created_at
eventsarray
idID of the created/updated subscription.
nace_code
raw
updated_at
url

No examples provided.

Common questions

What is the Firmaradar MCP server?

Firmaradar is an MCP server listed in the public MCP registry as no.firmaradar/mcp. Norwegian company intelligence: ownership, roles, financials, risk, KYC/AML/PEP (multi-source). This page covers its hosted endpoint (https://mcp.firmaradar.no/mcp).

Is the Firmaradar MCP server safe to use?

Firmaradar scores 87 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Firmaradar MCP server expose?

Firmaradar exposes 36 tools: firmaradar_search_companies, firmaradar_get_company, firmaradar_get_company_ip, firmaradar_get_company_ownership, firmaradar_get_company_roles, and 31 more. Their descriptions and schemas cost roughly 7,839 tokens of context every time the server is loaded.

Does the Firmaradar MCP server require authentication?

Yes. Firmaradar asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the Firmaradar MCP server still maintained?

Firmaradar is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.