Endpoints: 28,729MCP servers: 18,414Payout addresses: 2,071Paid calls: 1,562Letters: 14Defects: 1,336counted 4 min ago
teppi

Server definition

Hash
sha256:76ecbc482d58d20829a48a94cce362e3ad759039f8621d07e9eec6f56d1ba1a6
What it is
What a remote MCP server returned when asked what it offers: 6 tools

The blob, as servednamed by its sha256

{ "instructions": "DSGVO.pro MCP — German digital-law compliance platform.\n\nFREE TOOLS (no API key; anonymous callers are capped at 30 requests/minute per IP):\n• search-law — full-text 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)\n• get-article — full text of a specific article/paragraph\n• list-laws — overview of all available laws\n\n🔑 GATED TOOLS (require API key):\n• check-compliance — starts a Playwright-driven scan of a real URL. Costs us money (browser + AI). Free tier: 3 scans/month.\n\nOnce a scan is started by an authenticated caller, get-scan-status and get-scan-result are open to anyone with the scanId — results are public per scan.\n\nHow to authenticate: get a key at https://dsgvo.pro/api-keys, then add to your MCP client config as HTTP header:\n \"headers\": { \"Authorization\": \"Bearer dsp_live_...\" }\n\nIf you call check-compliance without a key, the call comes back with isError:true and the same instructions in the text. No silent failures.", "tools": [ { "description": "🔑 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.", "inputSchema": { "properties": { "url": { "description": "The website URL to scan (e.g. https://example.com)", "type": "string" } }, "required": [ "url" ], "type": "object" }, "name": "check-compliance", "outputSchema": { "properties": { "details": { "type": "string" }, "error": { "description": "Set instead of scanId when the scan could not be started", "type": "string" }, "hint": { "type": "string" }, "message": { "type": "string" }, "nextStep": { "type": "string" }, "scanId": { "description": "Pass this to get-scan-status / get-scan-result", "type": "string" }, "status": { "description": "\"pending\" right after the scan is queued", "type": "string" }, "url": { "description": "Normalized URL that is being scanned", "type": "string" } }, "type": "object" } }, { "description": "Get the full German text of a specific article or paragraph from a law. Returns full text and metadata.", "inputSchema": { "properties": { "article": { "description": "The article or paragraph number. Letter suffixes are supported and required for norms like \"356a\" (§356a BGB Widerrufsbutton), \"312k\", \"312j\".", "type": [ "string", "number" ] }, "law": { "description": "The law identifier", "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" ], "type": "string" } }, "required": [ "law", "article" ], "type": "object" }, "name": "get-article", "outputSchema": { "properties": { "error": { "description": "Set instead of the fields above when the norm was not found", "type": "string" }, "law": { "type": "string" }, "lawName": { "description": "Full German name of the statute", "type": "string" }, "metadata": { "properties": { "chapter": { "type": [ "string", "number", "null" ] }, "chapterTitle": { "type": [ "string", "null" ] }, "scannerRelevant": { "description": "Scanner module ids this norm feeds, e.g. [\"widerruf_button\"]", "items": { "type": "string" }, "type": [ "array", "null" ] } }, "type": "object" }, "num": { "description": "Article/paragraph incl. suffix, e.g. \"356a\"", "type": "string" }, "text": { "description": "Full German text of the norm", "type": "string" }, "title": { "type": "string" }, "unit": { "description": "\"Artikel\" (EU regulations) or \"Paragraf\" (German statutes)", "type": "string" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "properties": { "scanId": { "description": "The scan ID returned by check-compliance", "type": "string" } }, "required": [ "scanId" ], "type": "object" }, "name": "get-scan-result", "outputSchema": { "properties": { "completedAt": { "description": "ISO timestamp", "type": "string" }, "error": { "type": "string" }, "message": { "type": "string" }, "modules": { "items": { "properties": { "maxScore": { "type": "number" }, "module": { "type": "string" }, "score": { "type": "number" }, "status": { "type": "string" }, "violationsCount": { "type": "number" } }, "type": "object" }, "type": "array" }, "modulesCompleted": { "type": "number" }, "modulesTotal": { "type": "number" }, "riskLevel": { "type": "string" }, "scanId": { "type": "string" }, "scanReportUrl": { "description": "Human-readable report on dsgvo.pro", "type": "string" }, "score": { "description": "Compliance score 0–100 (completed scans only)", "type": "number" }, "startedAt": { "description": "ISO timestamp", "type": "string" }, "status": { "description": "initializing | pending | crawling | scanning | completed | failed", "type": "string" }, "url": { "type": "string" }, "violations": { "items": { "properties": { "bussgeldrahmen": { "properties": { "amountEur": { "type": "number" }, "currency": { "type": "string" }, "paragraph": { "type": "string" } }, "type": [ "object", "null" ] }, "fixSteps": { "items": { "type": "string" }, "type": "array" }, "fixSummary": { "type": "string" }, "law": { "description": "Law and paragraph, e.g. \"BGB §356a\"", "type": "string" }, "module": { "type": "string" }, "noBussgeldReason": { "description": "Why no fine range applies, when bussgeldrahmen is null", "type": [ "string", "null" ] }, "severity": { "type": "string" }, "title": { "type": "string" } }, "type": "object" }, "type": "array" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "properties": { "scanId": { "description": "The scan ID returned by check-compliance", "type": "string" } }, "required": [ "scanId" ], "type": "object" }, "name": "get-scan-status", "outputSchema": { "properties": { "error": { "type": "string" }, "message": { "type": "string" }, "modulesCompleted": { "type": "number" }, "modulesRunning": { "type": "number" }, "modulesTotal": { "type": "number" }, "ready": { "description": "true once the scan is completed or failed", "type": "boolean" }, "scanId": { "type": "string" }, "startedAt": { "description": "ISO timestamp", "type": "string" }, "status": { "description": "initializing | pending | crawling | scanning | completed | failed", "type": "string" }, "url": { "type": "string" } }, "type": "object" } }, { "description": "List all available German/EU digital-law statutes with article/paragraph counts.", "inputSchema": { "properties": {}, "type": "object" }, "name": "list-laws", "outputSchema": { "properties": { "laws": { "items": { "properties": { "articleCount": { "type": "number" }, "fullName": { "type": "string" }, "id": { "description": "Identifier to pass to search-law / get-article", "type": "string" }, "name": { "description": "Short name, e.g. \"BDSG\"", "type": "string" }, "unit": { "description": "\"Artikel\" or \"Paragraf\"", "type": "string" } }, "type": "object" }, "type": "array" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "properties": { "law": { "description": "Optional: limit search to a specific law", "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" ], "type": "string" }, "query": { "description": "Search query text", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search-law", "outputSchema": { "properties": { "results": { "description": "Matching articles/paragraphs, max 20", "items": { "properties": { "excerpt": { "description": "Text excerpt around the match", "type": "string" }, "law": { "description": "Law identifier, e.g. \"bgb\"", "type": "string" }, "num": { "description": "Article/paragraph number", "type": "number" }, "suffix": { "description": "Letter suffix, e.g. \"a\" in §356a", "type": "string" }, "title": { "type": "string" } }, "type": "object" }, "type": "array" }, "totalMatches": { "description": "Total hits before the 20-item cap", "type": "number" } }, "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:76ecbc482d58d20829a48a94cce362e3ad759039f8621d07e9eec6f56d1ba1a6 | sha256sum