Skip to main content
Glama

DSGVO.pro — German Digital-Law Compliance

Server Details

Search 26 German/EU statutes free — then scan any website against 33 compliance modules.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.3/5 across 6 of 6 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a distinct purpose: initiating compliance scans, retrieving scan results, checking scan status, listing laws, searching laws, and fetching specific articles. There is no overlap or ambiguity between any of the six tools.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (check-compliance, get-article, get-scan-result, get-scan-status, list-laws, search-law). The naming is predictable and idiomatic, with no deviations.

Tool Count5/5

With 6 tools, the server is well-scoped for its purpose: three tools cover the compliance-scan workflow (start, check status, get results) and three cover legal text access (list statutes, search, fetch). Each tool earns its place without redundancy or bloat.

Completeness5/5

The tool surface fully covers the stated domain of German digital-law compliance and legal text retrieval. It provides the complete scan lifecycle and comprehensive legal lookup capabilities, with no obvious gaps that would impair an agent's ability to accomplish typical tasks.

Available Tools

6 tools
check-complianceStart Website Compliance ScanAInspect

🔑 Requires API key (Bearer header in MCP client config). Free tier: 3 scans/month — get a key at https://dsgvo.pro/api-keys. Start a compliance scan against up to 33 German digital law modules. Standard tier covers 20 modules across DSGVO, TDDDG, DDG, BFSG, UWG, BGB, PAngV including Schrems II hosting-location verification with SCC declaration audit, §312k BGB Kündigungsbutton, BFSG accessibility (active 28.06.2025). Pro/Agency tier (13 exclusive modules): §356a BGB Widerrufsbutton (active 19.06.2026 — currently the only EU compliance-scanner with this check), KI-VO transparency and data-processing requirements (Article 13/14 + Article 50 AI Act), advanced security audit (Art. 32 DSGVO — TLS protocol, mixed content, CMS-version CVE detection), tech-stack staleness (CMS/framework versions vs NVD CVE database), plus 8 industry-specific compliance modules — lawyer (BORA/BRAO), real-estate broker (§34c GewO + MaBV + §87 GEG energy-pass disclosure in listings), physician (BOÄ + HWG + Art. 9 GDPR sensitive-data), financial intermediary (§34d/f/h/i GewO + FinVermV), gastronomy (LMIV allergen labeling + PAngV + IfSG hygiene), cosmetics studio (KosmetikVO + HWG before/after imagery), construction (§34c GewO Bauträger-Erlaubnis + HwO + MiLoG/SOKA), hotel (BMG registration + PAngV tourist-tax inclusive pricing + GEG). Industry detection runs from page content — only triggers relevant checks. ⚠️ IMPORTANT: This tool returns only a scanId — NOT the results. The scan takes 60–120 seconds. After calling this, wait 60–90 seconds, then call get-scan-result with the scanId. Use get-scan-status to check progress without waiting for completion.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe website URL to scan (e.g. https://example.com)

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlNoNormalized URL that is being scanned
hintNo
errorNoSet instead of scanId when the scan could not be started
scanIdNoPass this to get-scan-status / get-scan-result
statusNo"pending" right after the scan is queued
detailsNo
messageNo
nextStepNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations, the description adds important behavioral context: API key requirement, free-tier limit of 3 scans/month, async execution taking 60–120 seconds, and the fact that the tool returns only a scanId. It thoroughly explains the operation's side effects and constraints without contradicting the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long and dense, but most content earns its place: authentication, quotas, module coverage, async behavior, and post-call steps are all present. It is structured with emoji markers and clear sections, though the lengthy tier/module list slightly reduces readability and front-loading.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex scanner tool, the description is exceptionally complete: auth requirements, provider endpoint, quota limits, module coverage, activation dates, asynchronous result handling, and the exact follow-up tools are all covered. The integration with sibling tools makes the full workflow actionable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents the single url parameter with an example. The description adds little about the parameter itself, but that is acceptable because schema coverage is 100% and there is only one parameter, so the schema carries the semantic load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action: 'Start a compliance scan against up to 33 German digital law modules.' It clearly distinguishes itself from sibling tools by explicitly noting that it returns only a scanId, not actual results, which separates it from get-scan-result and get-scan-status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit workflow guidance: after calling this tool, wait 60–90 seconds, then call get-scan-result with the scanId, and use get-scan-status to check progress. It also names the alternative tools for retrieving outcomes, making when-to-use clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-articleGet Law ArticleA
Read-onlyIdempotent
Inspect

Get the full German text of a specific article or paragraph from a law. Returns full text and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
lawYesThe law identifier
articleYesThe article or paragraph number. Letter suffixes are supported and required for norms like "356a" (§356a BGB Widerrufsbutton), "312k", "312j".

Output Schema

ParametersJSON Schema
NameRequiredDescription
lawNo
numNoArticle/paragraph incl. suffix, e.g. "356a"
textNoFull German text of the norm
unitNo"Artikel" (EU regulations) or "Paragraf" (German statutes)
errorNoSet instead of the fields above when the norm was not found
titleNo
lawNameNoFull German name of the statute
metadataNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds useful behavioral context by noting that the content is German text and that the result includes both full text and metadata, going slightly beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences front-load the purpose and result, with no filler or unnecessary repetition of schema details. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 2-param read-only getter with full schema coverage, output schema, and safety annotations, the description is complete enough. It identifies the resource, the language, and the result type, while the sibling list provides surrounding discovery context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters fully described in the input schema, including a law enum and article number/suffix guidance. The description adds no additional parameter semantics, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and a specific resource ('full German text of a specific article or paragraph from a law'). It clearly distinguishes itself from sibling tools like list-laws and search-law by targeting a single known norm rather than discovery or enumeration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'specific article or paragraph' implies the agent should already know which law and article to request, but there is no explicit guidance about when to use this tool versus search-law or list-laws. Usage context is implied rather than clearly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-scan-resultGet Scan ReportA
Read-onlyIdempotent
Inspect

Get the full compliance report for a completed scan. Returns score (0–100), financial risk in EUR, per-module results, and all violations with law references, fine estimates, and fix instructions. ⚠️ Only call after the scan is complete — check status first with get-scan-status. If called while scan is still running, returns current progress instead of an error.

ParametersJSON Schema
NameRequiredDescriptionDefault
scanIdYesThe scan ID returned by check-compliance

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlNo
errorNo
scoreNoCompliance score 0–100 (completed scans only)
scanIdNo
statusNoinitializing | pending | crawling | scanning | completed | failed
messageNo
modulesNo
riskLevelNo
startedAtNoISO timestamp
violationsNo
completedAtNoISO timestamp
modulesTotalNo
scanReportUrlNoHuman-readable report on dsgvo.pro
modulesCompletedNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds unique behavioral context not in annotations: the tool returns current progress if scan is still running instead of error, and it specifies the exact data elements returned. This adds value beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences plus a caution, front-loaded with the core action and result summary. Every sentence earns its place, with no redundancy. The warning is clearly marked with an emoji, and the fallback behavior is concisely explained.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is relatively simple (one parameter, no nested objects) and has an output schema, so the description's summary of return contents suffices. It covers the full lifecycle context (when to call, what to expect) and even notes the non-error fallback. Given the output schema exists, the description does not need to detail every field. This is complete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter scanId, which is described as 'The scan ID returned by check-compliance'. The description does not add any extra detail about the parameter itself, but it does provide context (completed scan) that indirectly relates to usage. Per rubric, with high schema coverage, baseline is 3, and the description does not exceed that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the exact purpose: to retrieve a full compliance report for a completed scan, and lists specific return contents (score, financial risk, per-module results, violations with law references and fixes). It clearly distinguishes this from sibling tools like get-scan-status (which checks status) and check-compliance (which initiates scans). No ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use it: only after the scan is complete, and instructs to check with get-scan-status first. Also explains the behavior if called early (returns current progress rather than error), effectively telling when not to use it and offering an alternative. This is exemplary guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-scan-statusCheck Scan ProgressA
Read-onlyIdempotent
Inspect

Lightweight progress check for an in-progress compliance scan. Returns current status (pending/crawling/scanning/completed/failed) and how many modules have finished (20 Standard or up to 33 with Pro/Agency tier including Hosting-Standort (Schrems II) (Art. 13 lit. f DSGVO), Widerrufsbutton (§356a BGB), KI-Transparenz (Art. 50 KI-VO), Tech-Stack-Aktualität (Art. 32 DSGVO), Anwaltsspezifische Prüfung (BORA / BRAO), Maklerspezifische Prüfung (§34c GewO + MaBV + GEG), Arztspezifische Prüfung (BOÄ + HWG + Art. 9 DSGVO), Finanzvermittler-Prüfung (§34d/f/h/i GewO + FinVermV), Gastronomie-Prüfung (LMIV + PAngV + IfSG), Kosmetik-Prüfung (KosmetikVO + HWG + UWG), Bau-/Sanierung-Prüfung (§34c GewO + HwO + MiLoG), Hotel-/Beherbergung-Prüfung (BMG + PAngV + GEG + DSGVO)). Use this to poll progress. When status is 'completed', call get-scan-result for the full report.

ParametersJSON Schema
NameRequiredDescriptionDefault
scanIdYesThe scan ID returned by check-compliance

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlNo
errorNo
readyNotrue once the scan is completed or failed
scanIdNo
statusNoinitializing | pending | crawling | scanning | completed | failed
messageNo
startedAtNoISO timestamp
modulesTotalNo
modulesRunningNo
modulesCompletedNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds behavioral context by listing possible statuses and explaining that the tool returns module progress, which goes beyond annotation-only info. It also implies lightweight/poll-friendly behavior, though it does not discuss rate limits or edge cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is concise and the guidance is front-loaded, but the description includes a long parenthetical list of 13+ module names and legal references that adds no value for tool selection or invocation. This bloat makes the description significantly less concise than it should be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple polling tool with one parameter, an output schema, and strong annotations, the description covers the key operational context: what statuses to expect, when to poll, and what to do next. It could mention failure behavior (e.g., scan not found) but that is not essential given the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already describes scanId as returned by check-compliance. The description does not add further parameter-level detail (e.g., format, required conditions), so it relies on the schema. Baseline of 3 is appropriate given high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the specific verb ('check') and resource ('progress') of an in-progress compliance scan, clearly distinguishing it from get-scan-result (full report) and check-compliance (initiation). Mentions the returned status values and module count, making it unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this to poll progress' and instructs to call get-scan-result when status is 'completed'. This provides clear when-to-use guidance and names the alternative for follow-up, effectively differentiating it from sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list-lawsList Available LawsA
Read-onlyIdempotent
Inspect

List all available German/EU digital-law statutes with article/paragraph counts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
lawsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the description does not need to restate safety. It adds the specific output detail of article/paragraph counts, which is useful behavioral context beyond the annotations and name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. It conveys the essential action and scope without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, parameterless list tool, the description is adequate: it states what is returned (all statutes with counts). However, it does not mention potential ordering, pagination, or whether the list is exhaustive, though these may be covered by the output schema. Overall, it is complete enough for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, schema coverage is trivially 100%, but the baseline is 4 because there is nothing to explain about parameters. The description adds meaning by specifying what the list contains (counts), which helps the agent understand the response scope.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all available German/EU digital-law statutes with article/paragraph counts. The verb 'List' and the resource scope distinguish it from siblings like search-law (searches) and get-article (fetches a specific article).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied as a listing operation for an overview of statutes, but there is no explicit guidance on when to use it versus siblings (e.g., search-law or get-article). The description does not mention alternatives or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search-lawSearch German LawA
Read-onlyIdempotent
Inspect

Search across all 26 German/EU statutes (DSGVO, KI-VO, BDSG, TDDDG, DDG, BFSG, UWG, BGB, PAngV, VSBG, UrhG, VerpackG, VerpackDG, ElektroG, JuSchG, GewO, MaBV, GEG, BRAO, FinVermV, HwO, IfSG, KosmetikVO, HWG, HOAI, MiLoG). Accepts paragraph references ("356a", "§ 312k", "Art. 42") for direct lookup AND free-text keywords ("Cookie", "Widerrufsbutton", "Einwilligung"). Returns matching articles/paragraphs with excerpts. Covers data protection, telecom & digital-services law, AI regulation, accessibility, unfair-competition (UWG), consumer and sector-specific law.

ParametersJSON Schema
NameRequiredDescriptionDefault
lawNoOptional: limit search to a specific law
queryYesSearch query text

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultsNoMatching articles/paragraphs, max 20
totalMatchesNoTotal hits before the 20-item cap
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds that it returns matching articles/paragraphs with excerpts, which is useful context beyond the safety profile. It doesn't mention rate limits or pagination, but for a search tool with idempotent read behavior, this is adequate. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph of moderate length. It front-loads the core functionality (search across all statutes) and then elaborates. Every sentence adds value: the list of statutes, accepted inputs, and return type. Slightly dense but not verbose. Could be broken into bullets for readability, but still efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (26 statutes, two search modes) and that there's an output schema (which likely explains return structure), the description covers the key aspects: scope, input types, and outputs. It also lists the legal areas covered. It doesn't explain edge cases like ambiguous queries or ranking, but the output schema presumably covers return format. Adequate completeness for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: both 'query' and optional 'law' parameters are described in the schema. The description adds examples of query formats ("356a", "§312k", "Art. 42", "Cookie") and clarifies the scope of values for 'law', which adds some value beyond the schema. However, it doesn't provide detailed syntax or format rules beyond the schema, so a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches across 26 German/EU statutes and lists them explicitly, distinguishing it from siblings like list-laws (which likely only lists laws) and get-article (which likely fetches a specific article). It specifies both direct paragraph reference lookup and free-text keyword search, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly tells when to use this tool: for searching legal texts across statutes, with either paragraph references or keywords. However, it doesn't explicitly contrast with siblings or state when not to use it (e.g., when you know the specific law and article, get-article might be more appropriate). Clear context but no explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources