{"_id":"@ansvar/danish-standards-mcp","_rev":"2-f4d934bca125654ddeaa805361d3c053","name":"@ansvar/danish-standards-mcp","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@ansvar/danish-standards-mcp","version":"0.1.0","keywords":["mcp","danish","denmark","cfcs","digitaliseringsstyrelsen","cybersecurity","compliance","standards"],"author":{"name":"Ansvar Systems","email":"hello@ansvar.eu"},"license":"Apache-2.0","_id":"@ansvar/danish-standards-mcp@0.1.0","maintainers":[{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"}],"homepage":"https://github.com/Ansvar-Systems/danish-standards-mcp#readme","bugs":{"url":"https://github.com/Ansvar-Systems/danish-standards-mcp/issues"},"bin":{"danish-standards-mcp":"dist/index.js"},"dist":{"shasum":"45882b364d64d97bfd719a11f6cc9bdd5327d97b","tarball":"https://registry.npmjs.org/@ansvar/danish-standards-mcp/-/danish-standards-mcp-0.1.0.tgz","fileCount":90,"integrity":"sha512-613hKSveatXZB73IpbonYJZnEI/keJKdYWZLcaLqzaociDuYmCLYPl6gONbRH/4yCQpTkJjq9/jfE2jE6HJAPg==","signatures":[{"sig":"MEQCIHkiF48CKbtxhulzmA10ViI6c27aVMSzAeO8YUpTGcLQAiA202SX95vu9FfgQqLRvMmPGJCyEww9ckWNKYziP4Xphw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ansvar%2fdanish-standards-mcp@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":511194},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"ac53457d31c086b0e1ddf877fcb7ae348ac7ee66","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","clean":"rm -rf dist && find . -name '*.tsbuildinfo' -delete","start":"node dist/index.js","prepare":"test -f dist/index.js || npm run build","build:db":"node --import tsx scripts/build-db.ts","dev:http":"tsx src/http-server.ts","start:http":"node dist/http-server.js","test:watch":"vitest","ingest:diff":"node --import tsx scripts/ingest-diff.ts","ingest:full":"npm run ingest:fetch && npm run ingest:diff && npm run build:db && npm run coverage:update","ingest:fetch":"node --import tsx scripts/ingest-fetch.ts","test:contract":"vitest run __tests__/contract/","coverage:update":"node --import tsx scripts/update-coverage.ts","coverage:verify":"node --import tsx scripts/verify-coverage.ts","freshness:check":"node --import tsx scripts/check-freshness.ts"},"_npmUser":{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"},"repository":{"url":"git+https://github.com/Ansvar-Systems/danish-standards-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"Danish government cybersecurity standards MCP -- CFCS guidelines, Digitaliseringsstyrelsen security guidance, ISO 27001 for Danish government, D-maerket, Datatilsynet measures, Sundhedsdatastyrelsen requirements. Part of the Ansvar MCP Network (ansvar.ai/","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.24.0","@ansvar/mcp-sqlite":"^1.0.3","@modelcontextprotocol/sdk":"^1.25.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^3.0.0","typescript":"^5.9.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/danish-standards-mcp_0.1.0_1773312974349_0.47322821459608044","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Ansvar MCP servers are now distributed as source from github.com/Ansvar-Systems/danish-standards-mcp under Apache 2.0. Self-hosting instructions: see the repo README. Hosted gateway: ansvar.eu"}},"time":{"created":"2026-03-12T10:56:14.186Z","modified":"2026-05-02T05:46:16.737Z","0.1.0":"2026-03-12T10:56:14.513Z"},"bugs":{"url":"https://github.com/Ansvar-Systems/danish-standards-mcp/issues"},"author":{"name":"Ansvar Systems","email":"hello@ansvar.eu"},"license":"Apache-2.0","homepage":"https://github.com/Ansvar-Systems/danish-standards-mcp#readme","keywords":["mcp","danish","denmark","cfcs","digitaliseringsstyrelsen","cybersecurity","compliance","standards"],"repository":{"url":"git+https://github.com/Ansvar-Systems/danish-standards-mcp.git","type":"git"},"description":"Danish government cybersecurity standards MCP -- CFCS guidelines, Digitaliseringsstyrelsen security guidance, ISO 27001 for Danish government, D-maerket, Datatilsynet measures, Sundhedsdatastyrelsen requirements. Part of the Ansvar MCP Network (ansvar.ai/","maintainers":[{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"}],"readme":"# Danish Standards MCP\n\n[![npm version](https://img.shields.io/npm/v/@ansvar/danish-standards-mcp)](https://www.npmjs.com/package/@ansvar/danish-standards-mcp)\n[![CI](https://github.com/Ansvar-Systems/danish-standards-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/Ansvar-Systems/danish-standards-mcp/actions/workflows/ci.yml)\n[![License](https://img.shields.io/badge/license-Apache--2.0-blue)](LICENSE)\n[![MCP Registry](https://img.shields.io/badge/MCP%20Registry-ansvar.ai%2Fmcp-blue)](https://ansvar.ai/mcp)\n\nStructured access to 20 Danish government cybersecurity standards and frameworks: CFCS guidance (general, ICS/OT, ransomware, cloud, supply chain, secure development), Digitaliseringsstyrelsen (security + FDA), Statens ISO 27001, D-maerket, Datatilsynet, Sundhedsdatastyrelsen, MedCom, Finanstilsynet IKT/DORA, NIS2 Danish implementation, Sikkerhedscirkulaeret, Energistyrelsen, Trafikstyrelsen, KL municipal guidance, and DS 484. 482 controls, bilingual Danish/English, FTS search, ISO 27001/27002 cross-references, and sector-based filtering.\n\nPart of the [Ansvar MCP Network](https://ansvar.ai/mcp) -- specialist MCP servers for compliance and security intelligence.\n\n---\n\n## Quick Start\n\n### Remote endpoint (no installation)\n\nAdd to your MCP client config:\n\n```json\n{\n  \"mcpServers\": {\n    \"danish-standards\": {\n      \"url\": \"https://danish-standards-mcp.vercel.app/mcp\"\n    }\n  }\n}\n```\n\n### Local (stdio via npx)\n\n**Claude Desktop** -- edit `~/Library/Application Support/Claude/claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"danish-standards\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@ansvar/danish-standards-mcp\"]\n    }\n  }\n}\n```\n\n**Cursor** -- edit `.cursor/mcp.json` in your project:\n\n```json\n{\n  \"mcpServers\": {\n    \"danish-standards\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@ansvar/danish-standards-mcp\"]\n    }\n  }\n}\n```\n\n**VS Code / GitHub Copilot** -- add to `.vscode/mcp.json`:\n\n```json\n{\n  \"servers\": {\n    \"danish-standards\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@ansvar/danish-standards-mcp\"]\n    }\n  }\n}\n```\n\n---\n\n## What's Included\n\n| Source | Authority | Items | Language | Refresh |\n|--------|-----------|-------|----------|---------|\n| CFCS Cybersikkerhedsvejledning | Center for Cybersikkerhed (CFCS) | 58 controls | DA+EN | Annual |\n| CFCS ICS/OT-sikkerhedsvejledning | Center for Cybersikkerhed (CFCS) | 25 controls | DA+EN | Annual |\n| CFCS Ransomware-beskyttelse | Center for Cybersikkerhed (CFCS) | 18 controls | DA+EN | Annual |\n| CFCS Cloudsikkerhedsvejledning | Center for Cybersikkerhed (CFCS) | 19 controls | DA+EN | Annual |\n| CFCS Leverandoerstyring | Center for Cybersikkerhed (CFCS) | 17 controls | DA+EN | Annual |\n| CFCS Sikker softwareudvikling | Center for Cybersikkerhed (CFCS) | 18 controls | DA+EN | Annual |\n| Digitaliseringsstyrelsens sikkerhedsvejledning | Digitaliseringsstyrelsen | 36 controls | DA+EN | Annual |\n| Faellesoffentlig Digital Arkitektur (FDA) | Digitaliseringsstyrelsen | 16 controls | DA+EN | Annual |\n| Statens implementering af ISO 27001 | Digitaliseringsstyrelsen / Statens IT | 55 controls | DA+EN | Annual |\n| D-maerket | Erhvervsstyrelsen / D-maerket | 27 criteria | DA+EN | Annual |\n| Datatilsynets sikkerhedsforanstaltninger | Datatilsynet (Danish DPA) | 30 measures | DA+EN | Annual |\n| Sundhedsdatastyrelsens IT-sikkerhedskrav | Sundhedsdatastyrelsen (SDS) | 21 requirements | DA+EN | Annual |\n| MedCom standarder | MedCom | 17 standards | DA+EN | Annual |\n| Finanstilsynets IKT-krav | Finanstilsynet (Danish FSA) | 24 requirements | DA+EN | Annual |\n| NIS2 dansk implementering (L 111) | Forsvarsministeriet | 21 requirements | DA+EN | Annual |\n| Sikkerhedscirkulaeret | Justitsministeriet / PET / CFCS | 21 requirements | DA+EN | Annual |\n| Energistyrelsens cybersikkerhedskrav | Energistyrelsen | 15 requirements | DA+EN | Annual |\n| Trafikstyrelsens IKT-sikkerhedskrav | Trafikstyrelsen | 12 requirements | DA+EN | Annual |\n| KL Kommunernes sikkerhedsvejledning | KL (Kommunernes Landsforening) | 14 guidelines | DA+EN | Annual |\n| DS 484 Dansk Standard | Dansk Standard (DS) | 18 controls | DA+EN | Annual |\n\n**Total:** 482 controls and requirements across 20 Danish cybersecurity frameworks.\n\nFor full coverage details, see [COVERAGE.md](COVERAGE.md).\n\n---\n\n## What's NOT Included\n\n| Gap | Status |\n|-----|--------|\n| SikkerDigital.dk citizen/SME guidance | Planned for v1.1 |\n| Danske Regioner IT-sikkerhed | Planned for v1.2 |\n| CFCS Trusselsvurdering (annual threat assessment) | Not planned -- threat assessments, not control catalogs |\n| DS/ISO 27001:2022 full text | Excluded -- commercial ISO license; ISO cross-references available via `get_iso_mapping` |\n| Persondataloven / GDPR full text | Available via Denmark Law MCP; Datatilsynet measures here operationalize the security requirements |\n\nFor the complete gap list, see [COVERAGE.md -- What's NOT Included](COVERAGE.md#whats-not-included).\n\n---\n\n## Available Tools\n\n| Tool | Category | Description |\n|------|----------|-------------|\n| `search_controls` | Search | Full-text search across all 20 frameworks. Returns controls ranked by FTS5 relevance. |\n| `search_by_sector` | Search | Returns frameworks for a sector (`government`, `healthcare`, `finance`, etc.), optionally filtered by keyword. |\n| `get_control` | Lookup | Full record for a single control: bilingual description, implementation guidance, ISO mapping. |\n| `get_framework` | Lookup | Metadata for a framework: issuing body, version, control count, category breakdown. |\n| `list_controls` | Lookup | All controls in a framework, filterable by category. Paginated. |\n| `compare_controls` | Comparison | Side-by-side comparison of the same topic across 2-4 frameworks. |\n| `get_iso_mapping` | Comparison | All Danish controls mapped to a given ISO 27001/27002 control reference. |\n| `list_frameworks` | Meta | Lists all frameworks in the database with summary stats. |\n| `about` | Meta | Server version, build date, and coverage statistics. |\n| `list_sources` | Meta | Data provenance: authority, standard name, retrieval method, license for each source. |\n| `check_data_freshness` | Meta | Per-source freshness status against the expected refresh schedule. |\n\nFor full parameter documentation, return formats, and examples, see [TOOLS.md](TOOLS.md).\n\n---\n\n## Data Sources & Freshness\n\n| Source | Last Refresh | Refresh Schedule |\n|--------|-------------|-----------------|\n| CFCS Cybersikkerhedsvejledning | 2026-03-12 | Annual |\n| CFCS ICS/OT | 2026-03-12 | Annual |\n| CFCS Ransomware | 2026-03-12 | Annual |\n| CFCS Cloud | 2026-03-12 | Annual |\n| CFCS Supply Chain | 2026-03-12 | Annual |\n| CFCS Secure Dev | 2026-03-12 | Annual |\n| Digitaliseringsstyrelsen | 2026-03-12 | Annual |\n| FDA (Digst) | 2026-03-12 | Annual |\n| Statens ISO 27001 | 2026-03-12 | Annual |\n| D-maerket | 2026-03-12 | Annual |\n| Datatilsynet | 2026-03-12 | Annual |\n| Sundhedsdatastyrelsen | 2026-03-12 | Annual |\n| MedCom | 2026-03-12 | Annual |\n| Finanstilsynet | 2026-03-12 | Annual |\n| NIS2 (L 111) | 2026-03-12 | Annual |\n| Sikkerhedscirkulaeret | 2026-03-12 | Annual |\n| Energistyrelsen | 2026-03-12 | Annual |\n| Trafikstyrelsen | 2026-03-12 | Annual |\n| KL | 2026-03-12 | Annual |\n| DS 484 | 2026-03-12 | Annual |\n\nThe `ingest.yml` workflow runs automatically on the most frequent source schedule. The `check-updates.yml` workflow runs daily and creates a GitHub issue if any source is overdue.\n\nTo check freshness at runtime, call `check_data_freshness`. Full source provenance and licenses: [sources.yml](sources.yml).\n\n---\n\n## Security\n\nThis repository runs 6-layer automated security scanning on every push and weekly:\n\n| Layer | Tool | What it checks |\n|-------|------|----------------|\n| Static analysis | CodeQL | Code vulnerabilities |\n| SAST | Semgrep | Security anti-patterns |\n| Container / dependency scan | Trivy | Known CVEs in dependencies |\n| Secret detection | Gitleaks | Leaked credentials |\n| Supply chain | OSSF Scorecard | Repository security posture |\n| Dependency updates | Dependabot | Automated dependency PRs |\n\n---\n\n## Disclaimer\n\n**THIS TOOL IS NOT PROFESSIONAL ADVICE.**\n\nThis MCP provides structured access to Danish cybersecurity standards sourced from authoritative publications. It is provided for informational and research purposes only.\n\n- Verify critical compliance decisions against the original standards\n- Data is a snapshot -- sources update, and there may be a delay between upstream changes and database refresh\n- See [DISCLAIMER.md](DISCLAIMER.md) for the full disclaimer and no-warranty statement\n\n---\n\n## Ansvar MCP Network\n\nThis server is part of the [Ansvar MCP Network](https://ansvar.ai/mcp) -- 149 specialist MCP servers covering legislation, compliance frameworks, and cybersecurity standards.\n\n| Category | Servers | Coverage |\n|----------|---------|----------|\n| Law MCPs | 108 | 119 countries, 668K+ laws |\n| EU Regulations | 1 | 61 regulations, 4,054 articles |\n| Security frameworks | 1 | 262 frameworks, 1,451 SCF controls |\n| Domain-specific | ~48 | CVE, STRIDE, sanctions, OWASP, healthcare, financial, and more |\n\nBrowse the full directory at [ansvar.ai/mcp](https://ansvar.ai/mcp).\n\n---\n\n## Development\n\n### Branch strategy\n\n`feature-branch -> PR to dev -> verify on dev -> PR to main -> deploy`\n\nNever push directly to `main`. `main` triggers npm publish and Vercel deployment.\n\n### Setup\n\n```bash\ngit clone https://github.com/Ansvar-Systems/danish-standards-mcp.git\ncd danish-standards-mcp\nnpm install\nnpm run build\nnpm test\n```\n\n### Ingestion\n\n```bash\n# Full pipeline: fetch -> diff -> build DB -> update coverage\nnpm run ingest:full\n\n# Individual steps\nnpm run ingest:fetch     # Download latest data from upstream sources\nnpm run ingest:diff      # Check for changes against current DB\nnpm run build:db         # Rebuild SQLite database\nnpm run coverage:update  # Regenerate coverage.json and COVERAGE.md\n\n# Check freshness\nnpm run freshness:check\n```\n\n### Pre-deploy verification\n\n```bash\nnpm run build            # Gate 1: build\nnpm run lint             # Gate 2: TypeScript strict\nnpm test                 # Gate 3: unit tests\nnpm run test:contract    # Gate 4: golden contract tests\nsqlite3 data/standards.db \"PRAGMA integrity_check;\"   # Gate 5: DB integrity\nnpm run coverage:verify  # Gate 6: coverage consistency\n```\n\n---\n\n## License & Data Licenses\n\n**Code:** [Apache-2.0](LICENSE)\n\n**Data licenses by source:**\n\n| Source | License |\n|--------|---------|\n| CFCS Cybersikkerhedsvejledning | Public sector publication |\n| Digitaliseringsstyrelsen | CC BY 4.0 |\n| Statens ISO 27001 | Public sector publication |\n| D-maerket | Public sector publication |\n| Datatilsynet | Public sector publication |\n| Sundhedsdatastyrelsen | Public sector publication |\n\nAll data is extracted from publicly available authoritative publications. Zero AI-generated content in the database. See [sources.yml](sources.yml) for complete provenance.\n","readmeFilename":"README.md"}