Skip to main content
Glama
Tiwas

Firmaradar

Get Company Profile

firmaradar_get_company
Read-onlyIdempotent

Fetch a Norwegian company's full profile by orgnr, including ownership, group structure, grants, financials, and register announcements. Add optional fields for intellectual property data.

Instructions

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
orgnrYesNorwegian organisation number — exactly 9 digits.
fieldsNoSubset 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 group structure; `owners`/`business_owners`/`full_owners` — ownership tiers; `grants` — public grants; `changes` — recent register changes; `financial_metrics` — accounting figures.
ownersNoOwner-tier requested. 'full' requires Full eierskapsoversikt tier.
include_financial_metricsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoCanonical Firmaradar source URL for this company — cite this.
navnNo
eiereNo
orgnrYes
sourceNoAuthoritative source name.Firmaradar
summaryNoHuman-readable summary (LLM-friendly).
endringerNo
tildelingerNo
ip_rettigheterNo
konsernstrukturNo
brreg_tildelingerNo
financial_metricsNo
foretaksklassifiseringNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.1.3
    • removedInput schema / properties / fields / anyOf
      Removed value: -[
      -  {
      -    "items": {
      -      "enum": [
      -        "group",
      -        "owners",
      -        "business_owners",
      -        "full_owners",
      -        "grants",
      -        "brreg_grants",
      -        "ip",
      -        "changes",
      -        "financial_metrics"
      -      ],
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / fields / default
      Removed value: -null
    • addedInput schema / properties / fields / items
      Added value: +{
      +  "enum": [
      +    "group",
      +    "owners",
      +    "business_owners",
      +    "full_owners",
      +    "grants",
      +    "brreg_grants",
      +    "ip",
      +    "changes",
      +    "financial_metrics"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / fields / type
      Added value: +"array"
  2. Changed3 schema fields changedv0.1.2
    • changedInput schema / properties / fields / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "enum": [
      -        "group",
      -        "owners",
      -        "business_owners",
      -        "full_owners",
      -        "grants",
      -        "brreg_grants",
      -        "changes",
      -        "financial_metrics"
      -      ],
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "enum": [
      +        "group",
      +        "owners",
      +        "business_owners",
      +        "full_owners",
      +        "grants",
      +        "brreg_grants",
      +        "ip",
      +        "changes",
      +        "financial_metrics"
      +      ],
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / fields / description
      Previous value: -"Subset of sections to include. Omit to get the default profile."New value: +"Subset 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 group structure; `owners`/`business_owners`/`full_owners` — ownership tiers; `grants` — public grants; `changes` — recent register changes; `financial_metrics` — accounting figures."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "brreg_tildelinger": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": true,
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Brreg Tildelinger"
      +    },
      +    "eiere": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "additionalProperties": true,
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Eiere"
      +    },
      +    "endringer": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "additionalProperties": true,
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Endringer"
      +    },
      +    "financial_metrics": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": true,
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Financial Metrics"
      +    },
      +    "foretaksklassifisering": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": true,
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Foretaksklassifisering"
      +    },
      +    "ip_rettigheter": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": true,
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Ip Rettigheter"
      +    },
      +    "konsernstruktur": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": true,
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Konsernstruktur"
      +    },
      +    "navn": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Navn"
      +    },
      +    "orgnr": {
      +      "title": "Orgnr",
      +      "type": "string"
      +    },
      +    "source": {
      +      "default": "Firmaradar",
      +      "description": "Authoritative source name.",
      +      "title": "Source",
      +      "type": "string"
      +    },
      +    "summary": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "Human-readable summary (LLM-friendly).",
      +      "title": "Summary"
      +    },
      +    "tildelinger": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "additionalProperties": true,
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Tildelinger"
      +    },
      +    "url": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "Canonical Firmaradar source URL for this company — cite this.",
      +      "title": "Url"
      +    }
      +  },
      +  "required": [
      +    "orgnr"
      +  ],
      +  "type": "object"
      +}
  3. First observedv0.1.0

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds valuable behavioral context beyond that: data sourced from official Norwegian registers (BRREG, Skatteetaten, Patentstyret), daily refresh, and inclusion of a canonical Firmaradar URL. It does not contradict annotations, and the added sourcing/freshness info gives the agent a clearer picture of what to expect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: primary action + resource first, then a compact list of included content, then a note on opt-in fields, then usage context, then data provenance, then a final output detail. Every sentence earns its place with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists (so return values are defined), the description covers the key contextual elements: input required (orgnr), optional params and their purpose, the canonical pre-condition (use after search_companies), data source and refresh cadence, and an output detail (URL). For a read-only, idempotent tool, this is a complete picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 75%, so baseline is around 3. The description adds meaning above the schema, notably by calling out `fields=['ip']` as a notable opt-in and explaining what it returns (patents, trademarks, designs from Patentstyret). It also clarifies the default profile vs. opt-in sections, making the `fields` parameter more understandable than the raw enum list alone. This compensates for the moderate schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: 'Fetch the full profile for one Norwegian company by orgnr' and enumerates the content (name, group structure, ownership, grants, BRREG announcements, financial metrics). It also positions itself as 'The primary show me this company tool,' clearly distinguishing it from focused sibling tools like firmaradar_get_company_ip or firmaradar_get_company_financials.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says 'use after search_companies returns an orgnr,' giving a clear workflow context. It also explains that opt-in `fields` allow deeper enrichment, implying when you might want specific sections. However, it does not explicitly state when NOT to use this tool in favor of a more focused sibling tool (e.g., for IP-only lookups), which would make the guidance fully comprehensive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.