eu.ansvar/danish-law-mcp
NPM · @ANSVAR/DANISH-LAW-MCP · SCANNED OCT 3
Query Danish laws and regulations, EU cross-references, case law, and preparatory works
Available components
Deprecated
This server is marked deprecated in the MCP registry.
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. How we score → Why this is hard to score →
Supply Chain Security92
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- Declares code that runs automatically (postinstall) and that we could not recognise. It may be perfectly ordinary, but we have not established what it does. View diagnostics → Partial
- 31 of 94 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency16
- Repository check failed: the declared repository URL redirects; it must resolve directly. See how to fix → View diagnostics → Fail
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (Apache-2.0).Pass
- Maintenance check failed: the publisher has marked this version as deprecated on the registry, telling users to stop installing it. See how to fix → Fail
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability83
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 1877 tokens (~117/item across 16 items; 15 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management90
- Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 15 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the eu.ansvar/danish-law-mcp server?
eu.ansvar/danish-law-mcp runs locally as an npm package, launched with npx -y @ansvar/danish-law-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @ansvar/danish-law-mcp
claude mcp add eu-ansvar-danish-law-mcp -- npx -y @ansvar/danish-law-mcp
{
"mcpServers": {
"eu-ansvar-danish-law-mcp": {
"command": "npx",
"args": [
"-y",
"@ansvar/danish-law-mcp"
]
}
}
} {
"servers": {
"eu-ansvar-danish-law-mcp": {
"command": "npx",
"args": [
"-y",
"@ansvar/danish-law-mcp"
]
}
}
} codex mcp add eu-ansvar-danish-law-mcp -- npx -y @ansvar/danish-law-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"eu-ansvar-danish-law-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"@ansvar/danish-law-mcp"
],
"enabled": true
}
}
} openclaw mcp add eu-ansvar-danish-law-mcp --command npx --arg -y --arg @ansvar/danish-law-mcp
mcp_servers:
eu-ansvar-danish-law-mcp:
command: "npx"
args: ["-y", "@ansvar/danish-law-mcp"] {
"McpServers": {
"eu-ansvar-danish-law-mcp": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"@ansvar/danish-law-mcp"
]
}
}
} assistant mcp add eu-ansvar-danish-law-mcp -t stdio -c npx -a -y @ansvar/danish-law-mcp
{
"mcpServers": {
"eu-ansvar-danish-law-mcp": {
"command": "npx",
"args": [
"-y",
"@ansvar/danish-law-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 2 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 30 Sept 26 −3
- Stability: pass → 0.80 functional
- 29 Sept 26 +1
- Stability: 0.97 → pass security
- 28 Sept 26 −1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 24 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
- 23 Sept 26 −3
- Stability: pass → 0.80 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Oct 2026 · Analysed npm/@ansvar/danish-law-mcp@1.0.1
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| postinstall | unreviewed | test -d dist || npm run build || true |
Background: Why install scripts are a supply-chain risk →
Dependencies 94 packages
| Packages resolved | 94 |
|---|---|
| Stale | 31 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
about ~35
Server metadata, dataset statistics, freshness, and provenance. Call this to verify data coverage, currency, and content basis before relying on results.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
build_legal_stance ~158
Build a comprehensive set of citations for a legal question. Searches across statutes, case law, and preparatory works simultaneously to aggregate relevant citations. Use this for broad legal research questions.
| Name | Type | Req | Description |
|---|---|---|---|
| as_of_date | string | – | Optional historical date (YYYY-MM-DD) for time-aware retrieval. |
| document_id | string | – | Optionally limit statute search to one document |
| include_case_law | boolean | – | Include case law results (default: true) |
| include_preparatory_works | boolean | – | Include preparatory works results (default: true) |
| limit | number | – | Max results per category (default: 5, max: 20) |
| query | string | yes | Legal question or topic to research |
No output schema declared.
No examples provided.
check_currency ~121
Check if a Danish statute or provision is in force (current or historical). Returns the document's status (in_force, amended, repealed, not_yet_in_force), dates, and warnings. Provide as_of_date for historical evaluation.
| Name | Type | Req | Description |
|---|---|---|---|
| as_of_date | string | – | Optional historical date (YYYY-MM-DD). Computes in-force status as of that date. |
| document_id | string | yes | document ID (e.g., "2018:218") |
| provision_ref | string | – | Optional provision reference to check (e.g., "3:5") |
No output schema declared.
No examples provided.
format_citation ~90
Format a Danish legal citation per standard conventions. Formats: - full: "document 2018:218 3 kap. 5 §" - short: "2018:218 3:5" - pinpoint: "3 kap. 5 §"
| Name | Type | Req | Description |
|---|---|---|---|
| citation | string | yes | Citation string to format |
| format | string | – | Output format (default: "full") |
No output schema declared.
No examples provided.
get_danish_implementations ~142
Find Danish statutes implementing a specific EU directive or regulation. Given an EU document ID (e.g., "regulation:2016/679" for GDPR), returns all Danish statutes that implement, supplement, or reference it. Shows implementation status and which articles are referenced. Essential for finding Danish law corresponding to EU requirements.
| Name | Type | Req | Description |
|---|---|---|---|
| eu_document_id | string | yes | EU document ID (e.g., "regulation:2016/679", "directive:95/46") |
| in_force_only | boolean | – | Return only in-force statutes (default: false) |
| primary_only | boolean | – | Return only primary implementing statutes (default: false) |
No output schema declared.
No examples provided.
get_eu_basis ~127
Get EU legal basis (directives and regulations) for a Danish statute. Returns all EU directives and regulations that this statute implements, supplements, or references. Includes reference types, article citations, and whether each EU document is a primary implementation. Essential for understanding which EU law a Danish statute is based on.
| Name | Type | Req | Description |
|---|---|---|---|
| document_id | string | yes | document ID (e.g., "2018:218") |
| include_articles | boolean | – | Include specific EU article references (default: false) |
| reference_types | array | – | Filter by reference type (implements, supplements, applies, etc.) |
No output schema declared.
No examples provided.
get_preparatory_works ~66
Get preparatory works (forarbejder) for a Danish statute. Returns linked preparatory documents with summaries. Essential for understanding legislative intent behind statutory provisions.
| Name | Type | Req | Description |
|---|---|---|---|
| document_id | string | yes | document ID of the statute (e.g., "2018:218") |
No output schema declared.
No examples provided.
get_provision ~239
Retrieve a specific provision from a Danish statute. Specify the document ID and either chapter+section or provision_ref directly. Examples: - document_id="2018:218", chapter="1", section="1" → 1 kap. 1 § DSL - document_id="2018:218", provision_ref="1:1" → same result - document_id="1998:204", section="5 a" → 5 a § PUL (flat statute, no chapter) Omit chapter/section/provision_ref to get all provisions in the statute.
| Name | Type | Req | Description |
|---|---|---|---|
| as_of_date | string | – | Optional historical date (YYYY-MM-DD). Returns the provision text valid on that date. |
| chapter | string | – | Chapter number (e.g., "3"). Omit for flat statutes. |
| document_id | string | yes | document ID (e.g., "2018:218") |
| provision_ref | string | – | Direct provision reference (e.g., "3:5" for Kap 3 § 5) |
| section | string | – | Section number (e.g., "5", "5 a") |
No output schema declared.
No examples provided.
get_provision_eu_basis ~115
Get EU legal basis for a specific provision within a Danish statute. Returns EU directives/regulations that a specific provision implements or references, with article-level precision. For example, DSL 2:1 references GDPR Article 6.1.c. Use this for pinpoint EU compliance checks at the provision level.
| Name | Type | Req | Description |
|---|---|---|---|
| document_id | string | yes | document ID (e.g., "2018:218") |
| provision_ref | string | yes | Provision reference (e.g., "1:1" or "3:5") |
No output schema declared.
No examples provided.
list_sources ~31
List all data sources and their provenance. Returns source URLs, licenses, and coverage information for transparency and audit compliance.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
search_case_law ~119
Search Danish court decisions (retspraksis). Searches case summaries and keywords. Filter by court and date range.
| Name | Type | Req | Description |
|---|---|---|---|
| court | string | – | Filter by court |
| date_from | string | – | Start date filter (ISO 8601, e.g., "2020-01-01") |
| date_to | string | – | End date filter (ISO 8601) |
| limit | number | – | Maximum results (default: 10, max: 50) |
| query | string | yes | Search query for case law summaries |
No output schema declared.
No examples provided.
search_eu_implementations ~168
Search for EU directives and regulations with Danish implementation information. Search by keyword, type, year range, or community. Returns matching EU documents with counts of Danish statutes referencing them. Use this for exploratory searches like "data protection" or "privacy" to find relevant EU law.
| Name | Type | Req | Description |
|---|---|---|---|
| community | string | – | Filter by community |
| has_danish_implementation | boolean | – | Filter by Danish implementation existence |
| limit | number | – | Maximum results (default: 20, max: 100) |
| query | string | – | Keyword search (title, short name, CELEX, description) |
| type | string | – | Filter by document type |
| year_from | number | – | Filter by year (from) |
| year_to | number | – | Filter by year (to) |
No output schema declared.
No examples provided.
search_legislation ~164
Search Danish statutes and regulations by keyword. Searches provision text using FTS5 with BM25 ranking. Supports boolean operators (AND, OR, NOT), phrase search ("exact phrase"), and prefix matching (term*). Returns matched provisions with snippets, relevance scores, and document metadata.
| Name | Type | Req | Description |
|---|---|---|---|
| as_of_date | string | – | Optional historical date filter (YYYY-MM-DD). Returns versions valid on that date. |
| document_id | string | – | Filter to a specific statute by document ID (e.g., "2018:218") |
| limit | number | – | Maximum results (default: 10, max: 50) |
| query | string | yes | Search query in Danish or English. Supports FTS5 syntax. |
| status | string | – | Filter by document status |
No output schema declared.
No examples provided.
validate_citation ~134
Validate a Danish legal citation against the database. Parses the citation, checks that the document and provision exist, and returns warnings about status (repealed, amended). This is the zero-hallucination enforcer. Supported formats: - "document 2018:218 1 kap. 1 §" - "2018:218 1:1" - "Prop. 2017/18:105" - "SOU 2017:39" - "NJA 2020 s. 45"
| Name | Type | Req | Description |
|---|---|---|---|
| citation | string | yes | Citation string to validate |
No output schema declared.
No examples provided.
validate_eu_compliance ~153
Validate EU compliance status for a Danish statute or provision. Checks for: - References to repealed EU directives (e.g., Data Protection Directive 95/46/EC) - Missing implementation status - Outdated references Returns compliance status (compliant, partial, unclear, not_applicable) with warnings and recommendations. Note: This is Phase 1 validation. Full compliance checking against EU requirements will be added in future phases.
| Name | Type | Req | Description |
|---|---|---|---|
| document_id | string | yes | document ID (e.g., "2018:218") |
| eu_document_id | string | – | Optional: check compliance with specific EU document |
| provision_ref | string | – | Optional provision reference (e.g., "1:1") |
No output schema declared.
No examples provided.
What is the eu.ansvar/danish-law-mcp server?
eu.ansvar/danish-law-mcp is listed in the public MCP registry as eu.ansvar/danish-law-mcp. Query Danish laws and regulations, EU cross-references, case law, and preparatory works. This page covers its npm package (@ansvar/danish-law-mcp).
Is the eu.ansvar/danish-law-mcp server safe to use?
eu.ansvar/danish-law-mcp scores 76 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 3 October 2026. 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 eu.ansvar/danish-law-mcp server expose?
eu.ansvar/danish-law-mcp exposes 15 tools: search_legislation, get_provision, search_case_law, get_preparatory_works, validate_citation, and 10 more. Their descriptions and schemas cost roughly 1,862 tokens of context every time the server is loaded.
Is the eu.ansvar/danish-law-mcp server still maintained?
eu.ansvar/danish-law-mcp is marked deprecated in the MCP registry. We last reached this channel on 3 October 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 eu.ansvar/danish-law-mcp server under?
eu.ansvar/danish-law-mcp declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.