CVR — Det Centrale Virksomhedsregister (Danish Central Business Register) MCP. Keyless lookups via cvrapi.dk. No API key required.
Two tools with clear, descriptive names and complete input schemas. Both descriptions exceed 100 chars and explain purpose well. However, output schemas are entirely undocumented, LLMs cannot plan downstream calls or extract fields. Parameter descriptions are present but lack constraints (enums, ranges, formats). No error handling guidance. No tool annotations. Naming follows verb_noun pattern (lookup_*), which is good, but descriptions include example values ('novo nordisk', '24256790') that LLMs may reuse literally.
Look up a Danish company by its explicit 8-digit CVR/VAT number. Returns the single best-match record (same fields as lookup_company). Use this when you already have the CVR number. e.g. {vat:"24256790"} (Novo Nordisk A/S).
Look up a Danish company in the official CVR register (Det Centrale Virksomhedsregister) by name, 8-digit CVR number, phone number, or P-number (production-unit number). Returns the SINGLE best-match company record: name, vat (CVR number), address, zipcode, city, phone, email, employees, industrycode/industrydesc, companycode/companydesc (company form, e.g. A/S = Aktieselskab), startdate, status, productionunits, owners. Country defaults to "dk". e.g. {query:"novo nordisk"} or {query:"24256790"}.
Output schema completely undocumented. Code comments describe fields (name, vat, address, etc.) but no formal schema is exposed to LLMs. LLMs cannot plan multi-step calls or extract specific fields reliably.
Parameter descriptions lack constraints. 'country' accepts 'dk', 'no', 'ee' but no enum is declared. 'query' and 'vat' have no format, length, or pattern constraints. LLMs may pass invalid values.
Example values embedded in descriptions ('novo nordisk', '24256790'). LLMs tend to reuse examples literally rather than adapt to context, causing incorrect lookups.
No error handling guidance. Code returns {found: false, error, message} on API errors, but tool descriptions do not explain this structure or how LLMs should interpret it. No recovery hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
No tool annotations. Tools are read-only (safe to retry) but lack readOnlyHint annotation. LLMs cannot infer safety properties without explicit hints.