Firmaradar
by firmaradar.no · remote · no sign-in to list tools · v0.3.2 · published by no.firmaradar
Norwegian company intelligence: ownership, roles, financials, risk, KYC/AML/PEP (multi-source)
36 tools: 1 can delete or cancel things, 12 change things and 23 only read.
Scanned Oct 21, 2026
- Deletes or cancels1Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things12Claude Code: ask: see these tools
- Only reads23Claude Code: allow: see these tools
4 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http firmaradar https://mcp.firmaradar.no/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "firmaradar_get_regnskapsrapport" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "firmaradar_get_regnskapsrapport" says "get": a word for reading.
The server marks "firmaradar_list_companies_in_nace" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "firmaradar_list_companies_in_nace" says "list": a word for reading.
The server marks "firmaradar_get_aml_score" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "firmaradar_get_aml_score" says "get": a word for reading.
The server marks "firmaradar_convert_nok" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "firmaradar_convert_nok" says "convert": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
36 tools
Deletes or cancels 1Claude Code: deny
firmaradar_delete_subscriptionDelete one NACE industry-monitoring subscription by its id (from list_my_subscriptions); Firmaradar then stops delivering webhooks for that industry.No findings
Why it is in this group
- The name "firmaradar_delete_subscription" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: false
- title: Delete Industry Subscription
Changes things 12Claude Code: ask
firmaradar_add_company_monitoringAdd a Norwegian company (by 9-digit orgnr) to the user's company-monitoring list.No findings
Why it is in this group
- The name "firmaradar_add_company_monitoring" says "add": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: false
- title: Add Company to Monitoring
firmaradar_check_aml_pepScreen ONE natural PERSON's full name against sanctions (OFAC, EU, UN) and PEP lists.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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).
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- readOnlyHint: false
- title: AML / PEP Screening
firmaradar_check_fiv_bulkBulk-endpoint for portfolio-screening of 'foretak i vanskeligheter' (financially distressed companies per EU GBER art.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Bulk Check Companies in Difficulty (FIV)
firmaradar_check_foretak_i_vanskeligheterAssess whether a Norwegian company qualifies as *foretak i vanskeligheter* (a 'company in difficulty') under EU GBER art.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Check Company in Difficulty (FIV)
firmaradar_check_konkurs_eksponeringScreen a person by NAME for bankruptcy exposure ('konkursgjenganger'): leadership roles (chair / managing director) held in companies that later went bankrupt, tenure-weighted, fro…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Bankruptcy Exposure Screening (by Name)
firmaradar_confirm_risk_score_disclaimerConfirm the pre-screening disclaimer required by firmaradar_get_risk_score.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: false
- title: Confirm Risk-Score Disclaimer
firmaradar_convert_nokConvert a NOK amount to a foreign currency (EUR, USD, GBP, SEK, DKK) using daily exchange rates from Norges Bank (the Norwegian central bank).1 finding
Why it is in this group
- The name "firmaradar_convert_nok" says "convert": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "firmaradar_convert_nok" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "firmaradar_convert_nok" says "convert": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Convert NOK to Foreign Currency
firmaradar_get_aml_scoreStructured COMPANY AML risk score (0-100) with named level (low/medium/high), by orgnr.1 finding
Why it is in this group
- The name "firmaradar_get_aml_score" says "get": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "firmaradar_get_aml_score" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "firmaradar_get_aml_score" says "get": a word for reading.
Description, as the server wrote it 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'.
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- readOnlyHint: false
- title: Get Company AML Risk Score
firmaradar_get_regnskapsrapportOrder 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…1 finding
Why it is in this group
- The name "firmaradar_get_regnskapsrapport" says "get": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "firmaradar_get_regnskapsrapport" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "firmaradar_get_regnskapsrapport" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- readOnlyHint: false
- title: Get Financial Report (Excel/PDF)
firmaradar_list_companies_in_naceList Norwegian companies in a specific NACE industry code (or code prefix), optionally filtered by status, kommune and size.1 finding
Why it is in this group
- The name "firmaradar_list_companies_in_nace" says "list": a word for reading.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "firmaradar_list_companies_in_nace" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "firmaradar_list_companies_in_nace" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: List Companies by Industry (NACE)
firmaradar_start_aml_reportStart generating an AML risk report ASYNCHRONOUSLY for a Norwegian company.No findings
Why it is in this group
- The name "firmaradar_start_aml_report" says "start": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- readOnlyHint: false
- title: Start AML Report (Async)
firmaradar_subscribe_naceSubscribe to industry (NACE) monitoring: when any Norwegian company in the chosen industry triggers a monitored event (new announcement, status change such as bankruptcy/dissolutio…No findings
Why it is in this group
- The name "firmaradar_subscribe_nace" says "subscribe": a word for a change.
Description, as the server wrote it 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`. One subscription per user and NACE code; a retry with the same callback replaces nonsecret settings and returns its ID; omitted secrets are retained, and an explicit empty value clears them. Another callback returns HTTP 409. Use PATCH for partial updates or DELETE before registering another flow. Requires a user whose plan has Firmaovervakning enabled. Call only when the user has asked to set up industry monitoring.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: false
- title: Subscribe to Industry Monitoring (NACE)
Only reads 23Claude Code: allow
firmaradar_compare_companiesCompare key financial metrics of up to 5 Norwegian companies side-by-side across the last N years (default 5).No findings
Why it is in this group
- The name "firmaradar_compare_companies" says "compare": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Compare Companies
firmaradar_get_aml_reportPoll the status and result of an asynchronous AML report started with `start_aml_report`.No findings
Why it is in this group
- The name "firmaradar_get_aml_report" says "get": a word for reading.
Description, as the server wrote it 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).
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get AML Report Status / Result
firmaradar_get_companyFetch the full profile for one Norwegian company by orgnr: name, group structure, ownership data, grants, recent BRREG announcements and financial metrics.No findings
Why it is in this group
- The name "firmaradar_get_company" says "get": a word for reading.
Description, as the server wrote it 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`.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get Company Profile
firmaradar_get_company_announcementsList BRREG kunngjøringer (official announcements) for a Norwegian company: bankruptcy, mergers, demergers, ownership changes, address changes, etc.No findings
Why it is in this group
- The name "firmaradar_get_company_announcements" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get Company Announcements
firmaradar_get_company_financialsFetch the last N years (default 5) of financial metrics for a Norwegian company: revenue, operating result, equity, debt, employees.No findings
Why it is in this group
- The name "firmaradar_get_company_financials" says "get": a word for reading.
Description, as the server wrote it 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).
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get Company Financials
firmaradar_get_company_ipIntellectual-property portfolio for a Norwegian company (by orgnr), sourced from Patentstyret: patents, trademarks and designs — totals, active counts, and a list of individual rig…No findings
Why it is in this group
- The name "firmaradar_get_company_ip" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get Company IP Rights
firmaradar_get_company_ownershipGet the ownership tree for a Norwegian company: who they own (direction=down), who owns them (direction=up / UBO), or both.No findings
Why it is in this group
- The name "firmaradar_get_company_ownership" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get Company Ownership
firmaradar_get_company_rolesList board members, daglig leder, signature holders, prokura and revisor for a Norwegian company.No findings
Why it is in this group
- The name "firmaradar_get_company_roles" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get Company Roles
firmaradar_get_company_signalsAggregated 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…No findings
Why it is in this group
- The name "firmaradar_get_company_signals" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get Company Risk Signals
firmaradar_get_konsernstotteTree-structured overview of public grants (Innovasjon Norge, SkatteFUNN, BRREG støtteregister, Prosjektbanken) for a Norwegian company and its konsern.No findings
Why it is in this group
- The name "firmaradar_get_konsernstotte" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get Group Support (Konsernstøtte)
firmaradar_get_personAggregated person profile: name, birth year, active roles, shareholdings and any AML/PEP risk hits.No findings
Why it is in this group
- The name "firmaradar_get_person" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get Person Profile
firmaradar_get_person_companiesList all Norwegian companies where the given person holds shares.No findings
Why it is in this group
- The name "firmaradar_get_person_companies" says "get": a word for reading.
Description, as the server wrote it 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`.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get Person's Companies
firmaradar_get_person_rolesList all company roles (styreleder, daglig leder, etc.) held by a person, current and historic.No findings
Why it is in this group
- The name "firmaradar_get_person_roles" says "get": a word for reading.
Description, as the server wrote it 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`.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get Person Roles
firmaradar_get_recent_changesList changes (kunngjøringer for companies; role + ownership movements for persons) in the last N days.No findings
Why it is in this group
- The name "firmaradar_get_recent_changes" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get Recent Changes
firmaradar_get_risk_scoreStructured risk score (0-100) with named level (lav/moderat/høy/kritisk) and component breakdown for a Norwegian COMPANY's financial health.No findings
Why it is in this group
- The name "firmaradar_get_risk_score" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get Company Risk Score
firmaradar_get_risk_score_bulkBulk-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.No findings
Why it is in this group
- The name "firmaradar_get_risk_score_bulk" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Bulk Company Risk Scores
firmaradar_list_my_subscriptionsList the NACE industry-monitoring subscriptions of the authenticated Firmaradar user (created via subscribe_nace or the portal).No findings
Why it is in this group
- The name "firmaradar_list_my_subscriptions" says "list": a word for reading.
Description, as the server wrote it 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`).
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: List My Industry Subscriptions
firmaradar_list_nace_codesSearch and browse the Norwegian NACE industry-code catalogue.No findings
Why it is in this group
- The name "firmaradar_list_nace_codes" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Search NACE Industry Codes
firmaradar_search_announcementsSearch BRREG kunngjøringer across all Norwegian companies — filter by type (konkurs, fusjon, ...), date range, NACE-code, or location.No findings
Why it is in this group
- The name "firmaradar_search_announcements" says "search": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Search Announcements
firmaradar_search_companiesSearch Norwegian companies with filters (name, NACE, location, status, employees, revenue range, founding date).No findings
Why it is in this group
- The name "firmaradar_search_companies" says "search": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Search Companies
firmaradar_search_personsSearch for Norwegian persons in the shareholder/role-holder dataset by name.No findings
Why it is in this group
- The name "firmaradar_search_persons" says "search": a word for reading.
Description, as the server wrote it 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`.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Search Persons
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.3.2. Values in angle brackets are yours to fill in.
claude mcp add --transport http firmaradar https://mcp.firmaradar.no/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__firmaradar__firmaradar_search_companies",
"mcp__firmaradar__firmaradar_get_company",
"mcp__firmaradar__firmaradar_get_company_ip",
"mcp__firmaradar__firmaradar_get_company_ownership",
"mcp__firmaradar__firmaradar_get_company_roles",
"mcp__firmaradar__firmaradar_get_company_financials",
"mcp__firmaradar__firmaradar_get_company_announcements",
"mcp__firmaradar__firmaradar_search_persons",
"mcp__firmaradar__firmaradar_get_person",
"mcp__firmaradar__firmaradar_get_person_roles",
"mcp__firmaradar__firmaradar_get_person_companies",
"mcp__firmaradar__firmaradar_get_company_signals",
"mcp__firmaradar__firmaradar_get_recent_changes",
"mcp__firmaradar__firmaradar_find_related_companies",
"mcp__firmaradar__firmaradar_find_shared_connections",
"mcp__firmaradar__firmaradar_compare_companies",
"mcp__firmaradar__firmaradar_search_announcements",
"mcp__firmaradar__firmaradar_get_risk_score",
"mcp__firmaradar__firmaradar_get_konsernstotte",
"mcp__firmaradar__firmaradar_get_aml_report",
"mcp__firmaradar__firmaradar_get_risk_score_bulk",
"mcp__firmaradar__firmaradar_list_nace_codes",
"mcp__firmaradar__firmaradar_list_my_subscriptions"
],
"ask": [
"mcp__firmaradar__firmaradar_get_regnskapsrapport",
"mcp__firmaradar__firmaradar_check_aml_pep",
"mcp__firmaradar__firmaradar_check_konkurs_eksponering",
"mcp__firmaradar__firmaradar_list_companies_in_nace",
"mcp__firmaradar__firmaradar_check_foretak_i_vanskeligheter",
"mcp__firmaradar__firmaradar_get_aml_score",
"mcp__firmaradar__firmaradar_start_aml_report",
"mcp__firmaradar__firmaradar_confirm_risk_score_disclaimer",
"mcp__firmaradar__firmaradar_check_fiv_bulk",
"mcp__firmaradar__firmaradar_convert_nok",
"mcp__firmaradar__firmaradar_subscribe_nace",
"mcp__firmaradar__firmaradar_add_company_monitoring"
],
"deny": [
"mcp__firmaradar__firmaradar_delete_subscription"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as firmaradar. Review it before you use it.