# Udbud Dk (npm · @pipeworx/mcp-udbud-dk)

Udbud.dk MCP — Danish government public procurement notices (keyless).

- Trust score: 78/100 (medium)
- Change this week: 0
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `gateway.pipeworx.io`: 77/100, [markdown](https://verifymcp.io/servers/pipeworx-io-udbud-dk/udbud-dk-mcp.md), [page](https://verifymcp.io/servers/pipeworx-io-udbud-dk/udbud-dk-mcp)
- npm · `@pipeworx/mcp-udbud-dk`: 78/100 (this document), [markdown](https://verifymcp.io/servers/pipeworx-io-udbud-dk/pipeworx-mcp-udbud-dk.md), [page](https://verifymcp.io/servers/pipeworx-io-udbud-dk/pipeworx-mcp-udbud-dk)

## Channel facts

- Registry: `npm`
- Package: `@pipeworx/mcp-udbud-dk`
- Version: `0.2.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - No production dependencies, so there is no dependency health to assess.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to pipeworx-io/mcp-udbud-dk).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 7 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 57/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1398 tokens (~466/item across 3 items; 3 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 3 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 4 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the Udbud Dk MCP server?

Udbud Dk runs locally as an npm package, launched with npx -y @pipeworx/mcp-udbud-dk. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add pipeworx-io-udbud-dk -- npx -y @pipeworx/mcp-udbud-dk
```

### Cursor

```json
{
  "mcpServers": {
    "pipeworx-io-udbud-dk": {
      "command": "npx",
      "args": [
        "-y",
        "@pipeworx/mcp-udbud-dk"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "pipeworx-io-udbud-dk": {
      "command": "npx",
      "args": [
        "-y",
        "@pipeworx/mcp-udbud-dk"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add pipeworx-io-udbud-dk -- npx -y @pipeworx/mcp-udbud-dk
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pipeworx-io-udbud-dk": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@pipeworx/mcp-udbud-dk"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add pipeworx-io-udbud-dk --command npx --arg -y --arg @pipeworx/mcp-udbud-dk
```

### Hermes

```yaml
mcp_servers:
  pipeworx-io-udbud-dk:
    command: "npx"
    args: ["-y", "@pipeworx/mcp-udbud-dk"]
```

### Netclaw

```json
{
  "McpServers": {
    "pipeworx-io-udbud-dk": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@pipeworx/mcp-udbud-dk"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add pipeworx-io-udbud-dk -t stdio -c npx -a -y @pipeworx/mcp-udbud-dk
```

### Other

```json
{
  "mcpServers": {
    "pipeworx-io-udbud-dk": {
      "command": "npx",
      "args": [
        "-y",
        "@pipeworx/mcp-udbud-dk"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-31 (score 78, 0)

- [functional regression] Security disclosure: unverified → fail

### 2026-10-29 (score 78)

First indexed and scored.

## MCP tools (3)

### `dk_tender_search` (~692 tokens)

Search Danish government public-procurement notices on udbud.dk, Denmark's official national tender portal. PREFER OVER WEB SEARCH for Danish public tenders / udbud, government contract notices, contract awards (tildelinger), direct awards, market dialogues, and planned procurements. Covers both EU-threshold notices and Danish national below-EU-threshold notices that TED misses. Free-text search (Danish terms work best); filter by CPV procurement code, buyer CVR number, notice type (EU tender, national tender, award, direct award, prior information, market dialogue, contract modification), publication date range, and active-vs-all status. Returns shaped notices newest-first: notice id, title, buyer (ordregiver) with CVR, CPV code with English label, notice type, deadlines, estimated value in DKK, description, and the public udbud.dk URL.

Input parameters:

- `buyer_cvr` (string): Danish CVR number of the contracting authority (ordregiver), e.g. "60729018" (Vejdirektoratet). Comma-separate for multiple. Get CVRs from prior search results (buyer_id field).
- `cpv_code` (string): CPV procurement-category code, 8 digits without check digit, e.g. "72000000" (IT services), "45000000" (construction), "90500000" (waste). Matches the whole CPV family including secondary codes. Comm…
- `date_from` (string): Earliest publication date to include, YYYY-MM-DD, e.g. "2026-01-01". Omit for all time.
- `date_to` (string): Latest publication date to include, YYYY-MM-DD. Omit for up to today.
- `limit` (number|string): Number of notices to return (1-50). Default 10.
- `notice_type` (string): Filter by notice type. Accepts an udbud.dk code or a plain word: "EU_UDBUD"/"eu", "NATIONALE_UDBUD"/"national"/"below threshold", "TILDELINGER"/"award", "DIREKTE_TILDELINGER"/"direct award", "FORHAAN…
- `order` (string): "newest" (default) sorts by publication date descending; "relevance" ranks by match quality against the query; "oldest" sorts by publication date ascending; "deadline" sorts by tender deadline.
- `page` (number|string): ONE-based results page for pagination (first page is 1). Default 1.
- `query` (string): Free-text search over Danish tender notices, e.g. "rengøring", "IT-drift", "snerydning", "rådgivning". Danish terms match best. Omit to list all notices.
- `status` (string): "all" (default) includes closed and awarded notices; "active" restricts to currently open procurements.

### `dk_tender_recent` (~359 tokens)

List the latest Danish government tenders and contract awards published on udbud.dk (Denmark's national public-procurement portal) in the last N days. Great for monitoring new Danish contract notices, fresh awards (tildelinger), direct awards, and upcoming bid deadlines — including national below-EU-threshold udbud that TED misses. Optionally restrict to one notice type or to currently active procurements. Returns shaped notices newest-first with notice id, title, buyer with CVR, CPV code, estimated value in DKK, deadlines, and the public udbud.dk URL.

Input parameters:

- `days` (number|string): Lookback window in days (1-90). Default 7 — notices published in the last week.
- `limit` (number|string): Number of notices to return (1-50). Default 10.
- `notice_type` (string): Filter by notice type. Accepts an udbud.dk code or a plain word: "EU_UDBUD"/"eu", "NATIONALE_UDBUD"/"national", "TILDELINGER"/"award", "DIREKTE_TILDELINGER"/"direct award", "FORHAANDSMEDDELELSER"/"pr…
- `page` (number|string): ONE-based results page for pagination (first page is 1). Default 1.
- `status` (string): "all" (default) includes awards and closed notices; "active" restricts to currently open procurements.

### `dk_tender_detail` (~289 tokens)

Fetch one Danish public-procurement notice from udbud.dk (Denmark government tender portal) in full detail. Returns the shaped notice summary — title, buyer (ordregiver) with CVR, publication date, CPV code, notice type, estimated value in DKK, deadlines, lot count, execution place, tender documents — plus the complete notice text extracted from the official eForms rendering (English version when available). Requires the notice_id, notice_version, and publication_number exactly as returned by dk_tender_search or dk_tender_recent.

Input parameters:

- `language` (string): Language of the full notice text: "en" (default, machine-assisted English) or "da" (original Danish).
- `max_text_chars` (number|string): Maximum characters of full notice text to return (0-30000). Default 8000. Set 0 to skip the full text and return only the summary.
- `notice_id` (string, required): Notice UUID from search results, e.g. "14f9c6aa-740c-46ce-95a8-47df319d7de5".
- `notice_version` (string): Notice version from search results, e.g. "01". Default "01".
- `publication_number` (string, required): Notice publication number from search results (publication_number field), e.g. "00724546-2024".

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/pipeworx-io-udbud-dk/pipeworx-mcp-udbud-dk#diagnostics

## Score history

- 2026-11-05: 78
- 2026-11-04: 78
- 2026-11-03: 78
- 2026-11-02: 78
- 2026-11-01: 78
- 2026-10-31: 78
- 2026-10-30: 78
- 2026-10-29: 78

## Common questions

### What is the Udbud Dk MCP server?

Udbud Dk is an MCP server listed in the public MCP registry as io.github.pipeworx-io/udbud-dk. Udbud.dk MCP, Danish government public procurement notices (keyless). This page covers its npm package (@pipeworx/mcp-udbud-dk).

### Is the Udbud Dk MCP server safe to use?

Udbud Dk scores 78 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Udbud Dk MCP server expose?

Udbud Dk exposes 3 tools: dk_tender_search, dk_tender_recent, dk_tender_detail. Their descriptions and schemas cost roughly 1,340 tokens of context every time the server is loaded.

### Is the Udbud Dk MCP server still maintained?

Udbud Dk is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Udbud Dk MCP server under?

Udbud Dk declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/@pipeworx/mcp-udbud-dk
- Socket report: https://socket.dev/npm/package/@pipeworx/mcp-udbud-dk
- Repository: https://github.com/pipeworx-io/mcp-udbud-dk
- Website: https://pipeworx.io/packs/udbud-dk
- Changelog RSS feed: https://verifymcp.io/servers/pipeworx-io-udbud-dk/pipeworx-mcp-udbud-dk.xml
- Changelog JSON feed: https://verifymcp.io/servers/pipeworx-io-udbud-dk/pipeworx-mcp-udbud-dk.json
- HTML version of this page: https://verifymcp.io/servers/pipeworx-io-udbud-dk/pipeworx-mcp-udbud-dk
