Skip to main content
Glama

Find the ultimate owners of a Danish company

get_ultimate_owners
Read-only

Who ultimately owns one Danish company. Follows the legal ownership chain through holding companies until it reaches people, and reports each person with the routes of companies that lead to them and the ownership band at every link. Also lists the directors with whether each one is a direct owner, the largest direct owner, an ultimate owner, or the sole ultimate owner, so "is this privately owned?" and "is the director the main shareholder?" are answered in one call. Uses the public ownership register (legal owners, banded percentages such as "50-66%"), not the confidential beneficial-owner register, so no contract is needed. Looked up by CVR number (use search_companies first when you only have a name). Costs 3 credits for the company plus 2 per holding company followed; it follows at most max_depth levels (default 3) and 12 companies, and lists under "uafklaret" what it could not resolve: owners without a Danish CVR number, the depth and company limits, the time one call may take. A company with no registered owners, such as a foundation, ends its chain and is listed among the ultimate owners with a note. Long lists are capped, with a "_truncated" key giving the full count. Companies with no ownership register (sole proprietorships, partnerships) come back with no owners; their company form says they are personally owned. Needs the Pro plan or higher (the ownership section); on a lower plan the call is refused at no cost.

Input Schema

NameRequiredDescriptionDefault
cvrYesThe 8-digit Danish CVR number.
max_depthNoHow many levels of holding companies to open above the company. 1 opens only the holding companies that own it directly; the default of 3 covers nearly every Danish group.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, so the description adds substantial extra context: credit cost model (3 + 2 per holding company), depth and 12-company caps, the 'uafklaret' unresolved bucket, truncation at '_truncated', foundation and sole-proprietorship edge cases, and plan-gated refusal. This is far beyond what the annotations convey.

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

Conciseness4/5

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

It is dense and long, with some run-on clauses, but the purpose is front-loaded and nearly every sentence carries operational information (cost, limits, edge cases). Minor trimming of overlapping limit statements would improve it.

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?

There is no output schema, and the description compensates thoroughly by describing the return structure: per-person routes, ownership bands per link, director status flags, and the 'uafklaret' and '_truncated' keys. Nothing material for correct invocation or interpretation is missing.

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 coverage is 100%, so the schema documents both parameters; the description still adds meaning by explaining that max_depth controls chain expansion, that the default of 3 covers nearly every Danish group, and that deeper traversal costs credits per holding company. That links the parameter to cost and limits, not just shape.

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?

States a precise verb and resource ('Follows the legal ownership chain... until it reaches people') and names what the output contains, distinguishing it from siblings like get_ownership and get_real_owners. An agent can tell what this tool uniquely delivers without opening the schema.

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

Usage Guidelines5/5

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

Explicitly says to use search_companies first when only a name is known, that the Pro plan or higher is required, and that this uses the public ownership register rather than the confidential beneficial-owner register. Those conditions effectively route the agent away from the sibling that covers real owners.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources