cvrlookup-mcp
# cvrlookup MCP server
Remote [MCP](https://modelcontextprotocol.io) server for the Danish company
register (CVR): look up any of 860,000+ active Danish companies, search by
name, and get parsed annual-report financials as structured JSON — sourced
live from Erhvervsstyrelsen's public registry.
**Endpoint:** `https://cvrlookup.dk/api/mcp` (Streamable HTTP, stateless JSON-RPC)
[](https://glama.ai/mcp/servers/codepilots-io/cvrlookup-mcp)
## Tools
| Tool | What it does | Plan |
|---|---|---|
| `lookup_company` | Full company record by 8-digit CVR number (name, address, status, industry, management, registration history) | Free |
| `search_companies` | Search companies by name, paginated | Free |
| `get_company_financials` | Up to 5 years of parsed annual-report key figures (revenue, profit, equity, solvency…) as JSON, parsed from XBRL filings | Pro |
## Setup
Authentication is a Bearer API key — the same key as the REST API. A free
key includes 1,000 calls/month, no credit card:
[cvrlookup.dk](https://cvrlookup.dk) → sign up → dashboard → API key.
Example client config:
```json
{
"mcpServers": {
"cvrlookup": {
"type": "http",
"url": "https://cvrlookup.dk/api/mcp",
"headers": {
"Authorization": "Bearer cvr_your_api_key"
}
}
}
}
```
Try it without signing up: the docs include a synthetic test mode
(`cvr_test_demo` key, fixture data) — see
[cvrlookup.dk/dokumentation](https://cvrlookup.dk/dokumentation).
## Local stdio server
The hosted endpoint above needs nothing installed. For stdio-only clients
(or to run it yourself), this repo is also a standalone MCP server backed
by the same API:
```json
{
"mcpServers": {
"cvrlookup": {
"command": "npx",
"args": ["-y", "github:codepilots-io/cvrlookup-mcp"],
"env": { "CVR_API_KEY": "cvr_your_api_key" }
}
}
}
```
Or with Docker:
```bash
docker build -t cvrlookup-mcp .
docker run -i --rm -e CVR_API_KEY=cvr_your_api_key cvrlookup-mcp
```
Without `CVR_API_KEY` it runs in test mode (`cvr_test_demo`): fixture
data marked `mode: "test"`, no signup — magic CVRs `10000001` (active),
`10000002` (dissolved), `99999999` (not found).
## More
- Setup guide: [cvrlookup.dk/mcp](https://cvrlookup.dk/mcp)
- REST API + OpenAPI: [cvrlookup.dk/openapi.json](https://cvrlookup.dk/openapi.json)
- LLM-friendly overview: [cvrlookup.dk/llms.txt](https://cvrlookup.dk/llms.txt)
- Uptime: [cvrlookup.dk/status](https://cvrlookup.dk/status)
Rate limits and monthly quotas follow your plan (Free 1,000 / Basic 25,000 /
Pro 100,000 calls per month). Data is fetched live from the official Danish
business registry; financials are parsed server-side from published XBRL
filings.
TDQS
Scored across 3 tools
Each tool has a distinct purpose: search by name, lookup by CVR, and retrieve financials. There is no meaningful overlap between the full-company record and the financial-history endpoint.
All tool names use a clear snake_case action_noun pattern. The verbs differ (lookup, search, get) and the object forms vary between singular and plural, but the naming is still predictable and readable.
Three tools is a well-scoped set for a focused CVR lookup server. Each tool covers a distinct, necessary capability without redundant or excessive additions.
The surface covers the core workflow: find a company by name, retrieve its full registry record, and access historical financials. For a read-only public-registry lookup service, there are no obvious missing operations.