Skip to content
Conduit

mcp server

soge-api

Soge.dk public API — Danish vehicle (DMR), company (CVR), address & phone data. OpenAPI spec, client examples & MCP server for AI agents.

andrey-tut/soge-apicommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

This project does not publish an install method we can turn into a config. Follow the README instead.

README

synced Oct 23, 2026

Soge.dk API & MCP — Danish open data for developers and AI agents

API docs OpenAPI MCP Free tier License

One REST API for Danish public data — vehicles (DMR / Motorregister), companies (CVR / Virk), addresses (DAWA-compatible) and phone lookups. Plus an MCP server so AI agents (Claude, Cursor, …) can query the same data directly.

📖 Interactive docs (Swagger UI): https://andrey-tut.github.io/soge-api/ This repo holds the public OpenAPI spec, client examples and the MCP server. The backend code is private — nothing here exposes server internals.

Quick start

  1. Get an API key (free tier, no card): https://soge.dk/pricing
  2. Send it in the X-API-KEY header.
export SOGE_API_KEY=your_key

# Health — no key required
curl https://soge.dk/api/v1/health

# Vehicle by plate or VIN
curl -H "X-API-KEY: $SOGE_API_KEY" https://soge.dk/api/v1/vehicles/AB12345

# Company search by CVR / name / text
curl -H "X-API-KEY: $SOGE_API_KEY" "https://soge.dk/api/v1/companies/novo%20nordisk?size=5"

Runnable examples: examples/ — curl · Python · JavaScript.

Endpoints

Base URL: https://soge.dk/api/v1 · Auth: X-API-KEY header · full spec: openapi.yaml

Method & pathPlanDescription
GET /healthnoneService health (no key)
GET /vehicles/{identifier}freeVehicle by plate or VIN — specs, fuel/EV, green tax, status
GET /companies/{query}freeCompany search by CVR / name / text (page, size)
GET /companies-at-addressfreeCompanies at an address (vejkode, husnr, postnr)
GET /koretoj/{identifier}/inspectionspaidInspection (syn) history: odometer, defects, station, PDFs
GET /koretoj/{identifier}/insurancepaidInsurer, status, history, block/seizure flag
GET /koretoj/{vin}/odometerpaidOdometer history + rollback-fraud detection
GET /koretoj/{identifier}/recallspaidSafety recalls matched to make/model
GET /cvr/{cvr}/ownershippaidOwnership / control graph
GET /cvr/{cvr}/financialspaidAnnual-report figures, 2-year comparison
GET /cvr/person/{enhedsNummer}/companiespaidEvery company a person is involved in
GET /cvr/person/{enhedsNummer}/bankruptciespaidSerial-bankruptcy radar

Errors use { "error": "...", "code": <int> }. Rate limits are tiered by plan (429 on excess).

MCP server for AI agents

Give Claude / Cursor / any MCP client direct access to this data. The MCP server is a thin wrapper over the REST API above — the same X-API-KEY and plan meter both.

pip install soge-mcp          # see ./mcp for source

Claude Code:

claude mcp add --transport stdio --env SOGE_API_KEY=your_key soge -- soge-mcp

Claude Desktop / Cursor (claude_desktop_config.json / .cursor/mcp.json):

{ "mcpServers": { "soge": { "command": "soge-mcp", "env": { "SOGE_API_KEY": "your_key" } } } }

Tools: search_vehicle, search_company, companies_at_address, check_health (free) and vehicle_inspections, vehicle_insurance, vehicle_odometer, vehicle_recalls, company_ownership, company_financials, person_companies, person_bankruptcies (paid). Full setup & options: mcp/README.md.

Links

License

Client examples, the OpenAPI spec and the MCP server in this repo are MIT (see LICENSE). The underlying data is sourced from official Danish registries (DMR, CVR) and served via soge.dk.

↑↓ navigate openesc close