DSGVO.pro — German Digital-Law Compliance

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

사용해야 할까요

품질 및 안전성

B
설명 품질
100%
스키마 완전성
88%
이름 품질
70%
오염 위험
60%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (9)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domaincheck-compliance에서
  • MEDIUMTool description contains suspicious base64-like encoded stringget-scan-status에서
  • LOWTool 'search-law' doesn't follow camelCase/snake_casesearch-law에서
  • LOWTool 'get-article' doesn't follow camelCase/snake_caseget-article에서
  • LOWTool 'list-laws' doesn't follow camelCase/snake_caselist-laws에서
  • LOWTool 'check-compliance' doesn't follow camelCase/snake_casecheck-compliance에서
  • LOWTool 'get-scan-status' doesn't follow camelCase/snake_caseget-scan-status에서
  • LOWTool 'get-scan-result' doesn't follow camelCase/snake_caseget-scan-result에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,719토큰 (도구 정의)
~2.7 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 2.12%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "dsgvo-pro": {
      "url": "https://dsgvo.pro/api/mcp"
    }
  }
}

원격 엔드포인트

https://dsgvo.pro/api/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (6)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢search-law(query, law)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search query text"
    },
    "law": {
      "type": "string",
      "enum": [
        "dsgvo",
        "ki-vo",
        "bdsg",
        "tdddg",
        "ddg",
        "bfsg",
        "uwg",
        "bgb",
        "pangv",
        "vsbg",
        "urhg",
        "verpackg",
        "verpackdg",
        "elektrog",
        "juschg",
        "gewo",
        "mabv",
        "geg",
        "brao",
        "finvermv",
        "hwo",
        "ifsg",
        "kosmkv",
        "hwg",
        "hoai",
        "milog"
      ],
      "description": "Optional: limit search to a specific law"
    }
  },
  "required": [
    "query"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "description": "Matching articles/paragraphs, max 20",
      "items": {
        "type": "object",
        "properties": {
          "law": {
            "type": "string",
            "description": "Law identifier, e.g. \"bgb\""
          },
          "num": {
            "type": "number",
            "description": "Article/paragraph number"
          },
          "suffix": {
            "type": "string",
            "description": "Letter suffix, e.g. \"a\" in §356a"
          },
          "title": {
            "type": "string"
          },
          "excerpt": {
            "type": "string",
            "description": "Text excerpt around the match"
          }
        }
      }
    },
    "totalMatches": {
      "type": "number",
      "description": "Total hits before the 20-item cap"
    }
  }
}
🟢get-article(law, article)

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

입력 스키마

{
  "type": "object",
  "properties": {
    "law": {
      "type": "string",
      "enum": [
        "dsgvo",
        "ki-vo",
        "bdsg",
        "tdddg",
        "ddg",
        "bfsg",
        "uwg",
        "bgb",
        "pangv",
        "vsbg",
        "urhg",
        "verpackg",
        "verpackdg",
        "elektrog",
        "juschg",
        "gewo",
        "mabv",
        "geg",
        "brao",
        "finvermv",
        "hwo",
        "ifsg",
        "kosmkv",
        "hwg",
        "hoai",
        "milog"
      ],
      "description": "The law identifier"
    },
    "article": {
      "type": [
        "string",
        "number"
      ],
      "description": "The article or paragraph number. Letter suffixes are supported and required for norms like \"356a\" (§356a BGB Widerrufsbutton), \"312k\", \"312j\"."
    }
  },
  "required": [
    "law",
    "article"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "law": {
      "type": "string"
    },
    "lawName": {
      "type": "string",
      "description": "Full German name of the statute"
    },
    "num": {
      "type": "string",
      "description": "Article/paragraph incl. suffix, e.g. \"356a\""
    },
    "unit": {
      "type": "string",
      "description": "\"Artikel\" (EU regulations) or \"Paragraf\" (German statutes)"
    },
    "title": {
      "type": "string"
    },
    "metadata": {
      "type": "object",
      "properties": {
        "chapter": {
          "type": [
            "string",
            "number",
            "null"
          ]
        },
        "chapterTitle": {
          "type": [
            "string",
            "null"
          ]
        },
        "scannerRelevant": {
          "type": [
            "array",
            "null"
          ],
          "description": "Scanner module ids this norm feeds, e.g. [\"widerruf_button\"]",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "text": {
      "type": "string",
      "description": "Full German text of the norm"
    },
    "error": {
      "type": "string",
      "description": "Set instead of the fields above when the norm was not found"
    }
  }
}
🟢list-laws

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

입력 스키마

{
  "type": "object",
  "properties": {}
}

출력 스키마

{
  "type": "object",
  "properties": {
    "laws": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Identifier to pass to search-law / get-article"
          },
          "name": {
            "type": "string",
            "description": "Short name, e.g. \"BDSG\""
          },
          "fullName": {
            "type": "string"
          },
          "articleCount": {
            "type": "number"
          },
          "unit": {
            "type": "string",
            "description": "\"Artikel\" or \"Paragraf\""
          }
        }
      }
    }
  }
}
🟢check-compliance(url)

🔑 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.

입력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "The website URL to scan (e.g. https://example.com)"
    }
  },
  "required": [
    "url"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "scanId": {
      "type": "string",
      "description": "Pass this to get-scan-status / get-scan-result"
    },
    "url": {
      "type": "string",
      "description": "Normalized URL that is being scanned"
    },
    "status": {
      "type": "string",
      "description": "\"pending\" right after the scan is queued"
    },
    "message": {
      "type": "string"
    },
    "nextStep": {
      "type": "string"
    },
    "hint": {
      "type": "string"
    },
    "error": {
      "type": "string",
      "description": "Set instead of scanId when the scan could not be started"
    },
    "details": {
      "type": "string"
    }
  }
}
🟢get-scan-status(scanId)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "scanId": {
      "type": "string",
      "description": "The scan ID returned by check-compliance"
    }
  },
  "required": [
    "scanId"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "scanId": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "description": "initializing | pending | crawling | scanning | completed | failed"
    },
    "modulesCompleted": {
      "type": "number"
    },
    "modulesRunning": {
      "type": "number"
    },
    "modulesTotal": {
      "type": "number"
    },
    "startedAt": {
      "type": "string",
      "description": "ISO timestamp"
    },
    "ready": {
      "type": "boolean",
      "description": "true once the scan is completed or failed"
    },
    "message": {
      "type": "string"
    },
    "error": {
      "type": "string"
    }
  }
}
🟢get-scan-result(scanId)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "scanId": {
      "type": "string",
      "description": "The scan ID returned by check-compliance"
    }
  },
  "required": [
    "scanId"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "scanId": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "description": "initializing | pending | crawling | scanning | completed | failed"
    },
    "score": {
      "type": "number",
      "description": "Compliance score 0–100 (completed scans only)"
    },
    "riskLevel": {
      "type": "string"
    },
    "modules": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "module": {
            "type": "string"
          },
          "score": {
            "type": "number"
          },
          "maxScore": {
            "type": "number"
          },
          "violationsCount": {
            "type": "number"
          },
          "status": {
            "type": "string"
          }
        }
      }
    },
    "violations": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "module": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "severity": {
            "type": "string"
          },
          "law": {
            "type": "string",
            "description": "Law and paragraph, e.g. \"BGB §356a\""
          },
          "bussgeldrahmen": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "amountEur": {
                "type": "number"
              },
              "paragraph": {
                "type": "string"
              },
              "currency": {
                "type": "string"
              }
            }
          },
          "noBussgeldReason": {
            "type": [
              "string",
              "null"
            ],
            "description": "Why no fine range applies, when bussgeldrahmen is null"
          },
          "fixSummary": {
            "type": "string"
          },
          "fixSteps": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    },
    "modulesCompleted": {
      "type": "number"
    },
    "modulesTotal": {
      "type": "number"
    },
    "startedAt": {
      "type": "string",
      "description": "ISO timestamp"
    },
    "completedAt": {
      "type": "string",
      "description": "ISO timestamp"
    },
    "scanReportUrl": {
      "type": "string",
      "description": "Human-readable report on dsgvo.pro"
    },
    "message": {
      "type": "string"
    },
    "error": {
      "type": "string"
    }
  }
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 6개
검증됨버전이 기록되지 않음도구 6개
검증됨버전이 기록되지 않음도구 6개