lexvibe
One-step legal compliance for vibe-coded apps: privacy, terms, cookie banner and EU AI Act check.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (6)
- HIGH
- MEDIUMin claim_app
- MEDIUMin get_claim_status
- MEDIUMin generate_policies
- INFOin claim_app
- INFOin get_claim_status
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"lexvibe": {
"command": "npx",
"args": [
"@lexvibe/mcp"
]
}
}
}Ausführbare Pakete
1.0.3stdioRemote-Endpunkte
https://golexvibe.com/api/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (10)
🟢check_website(url, appId)
Free legal-compliance check of a public website (no signup). Fetches the URL server-side and detects data processing relevant to compliance — analytics, marketing pixels, payments, generative AI, email collection, third-party sharing — then returns the legal documents and cookie-consent setup the site needs, whether the EU AI Act applies, and suggestedAnswers you can pass straight to generate_policies. Result contract: `fetched` is true only when the page HTML was actually read; when false, `fetchError` says why ("unreachable": the URL could not be resolved or connected; "blocked": the server answered with an error status) and the detected signals are NOT meaningful — report the check as inconclusive, not as clean. Run it again after adding any SDK, analytics, payment, auth or AI integration: when an appId is passed (or read from the installed LexVibe snippet) the result ALWAYS includes a `drift` key — status "in_sync", "outdated" (listing processing the hosted legal documents don't cover yet) or "unavailable" with a bounded `reason` (no-database, app-not-found, no-baseline, domain-mismatch, page-not-fetched) when the comparison could not be made; treat "unavailable" as unknown, never as in sync. Read-only.
Eingabe-Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 3,
"maxLength": 300,
"description": "Website URL or bare domain, e.g. https://myapp.com or myapp.com."
},
"appId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$",
"description": "Optional LexVibe app id of a claimed app. When provided (or when the page already carries the installed LexVibe snippet), the result includes a drift report comparing the current site against the baseline its legal documents were generated from."
}
},
"required": [
"url"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_store(url)
Free legal-compliance check of a mobile app from its PUBLIC App Store (apps.apple.com) or Google Play (play.google.com) listing URL — no repo or developer-account access needed. Follows the privacy-policy link the developer declared on the listing, analyzes that page, and returns detected data processing, compliance recommendations, whether the EU AI Act applies, and suggestedAnswers for generate_policies. Read-only.
Eingabe-Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 10,
"maxLength": 500,
"description": "App Store or Google Play listing URL, e.g. https://apps.apple.com/app/id123456789 or https://play.google.com/store/apps/details?id=com.example.app."
}
},
"required": [
"url"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢generate_policies(appName, entity, contactEmail, markets, locales, ...)
Generate the legal documents (privacy policy, terms of service and, if applicable, an AI disclosure) localized and tailored to the target markets (GDPR, UK GDPR, CCPA…). Returns Markdown drafts. Pass check_website's or check_store's suggestedAnswers as `answers` so the documents disclose the right processing. Anonymous remote generation is template-based and capped at 3 locales; AI-tailored, hosted and auto-updated documents require a LexVibe account (https://golexvibe.com).
Eingabe-Schema
{
"type": "object",
"properties": {
"appName": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Public / commercial name of the product."
},
"entity": {
"type": "string",
"maxLength": 300,
"description": "Data controller / legal entity responsible for the app."
},
"contactEmail": {
"type": "string",
"maxLength": 200,
"description": "Contact email for privacy requests and data-subject rights."
},
"markets": {
"type": "array",
"items": {
"type": "string",
"enum": [
"eu",
"uk",
"ch",
"us",
"ca",
"latam",
"apac",
"india",
"china",
"mena",
"africa",
"global"
]
},
"minItems": 1,
"maxItems": 12,
"description": "Regions where the app has users; determines the legal frameworks covered."
},
"locales": {
"type": "array",
"items": {
"type": "string",
"enum": [
"es",
"en",
"fr",
"de",
"it",
"pt",
"nl",
"ja",
"zh",
"ko",
"hi",
"ar"
]
},
"minItems": 1,
"maxItems": 3,
"description": "Document languages (max 3 for anonymous callers). Defaults to the languages suggested by the chosen markets."
},
"answers": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 2000
},
{
"type": "boolean"
},
{
"type": "array",
"items": {
"type": "string",
"maxLength": 200
}
}
]
},
"default": {},
"description": "Compliance flags; pass check_website's suggestedAnswers. Recognized keys: usesAnalytics, processesPayments, usesGenerativeAI, collectsEmails, sharesWithThirdParties, platformType."
}
},
"required": [
"appName",
"markets"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_ai_act(usesAI, interactsWithPeople, generatesContent, automatedDecisions, socialScoring, ...)
Classify a product's risk level under the EU AI Act — minimal, limited, high or prohibited — and return the applicable obligations, each with its compliance deadline (limited-risk transparency duties apply from Aug 2, 2026; Annex III high risk from Dec 2, 2027). The boolean parameters fall into three groups, all optional and defaulting to the safest 'not applicable' value: (1) transparency triggers — usesAI, interactsWithPeople, generatesContent, automatedDecisions; (2) the eight prohibited practices of art. 5 — socialScoring, realtimeBiometricPublic + realtimeBiometricLawEnforcement, emotionRecognitionWorkEducation, biometricCategorisationSensitive, untargetedFaceScraping, manipulativeOrExploitative, individualPredictivePolicing; (3) high-risk triggers — embeddedInRegulatedProduct, annexIII domains. Answer the boolean questions about what the system does; leave unknowns at their defaults, which never over-report risk. Read-only and instant.
Eingabe-Schema
{
"type": "object",
"properties": {
"usesAI": {
"type": "boolean",
"default": true,
"description": "Does the product use AI at all (LLM calls, recommendations, computer vision…)? false ⇒ minimal risk, the AI Act does not apply."
},
"interactsWithPeople": {
"type": "boolean",
"default": false,
"description": "Do people interact directly with the AI (chatbot, voice assistant…)? Triggers the art. 50 duty to disclose they are talking to an AI."
},
"generatesContent": {
"type": "boolean",
"default": false,
"description": "Does it generate text, images, audio or video shown to users? Triggers the art. 50 duty to label AI-generated content."
},
"automatedDecisions": {
"type": "boolean",
"default": false,
"description": "Does it make automated decisions with legal or similarly significant effects on people (credit, hiring, admissions…)? Adds GDPR art. 22 duties; high risk only if an Annex III domain applies."
},
"socialScoring": {
"type": "boolean",
"default": false,
"description": "Does it score people's social behavior or traits causing detrimental treatment in unrelated contexts, or disproportionate to the behavior (art. 5.1.c)? Prohibited. A seller rating or fitness points app is NOT this."
},
"realtimeBiometricPublic": {
"type": "boolean",
"default": false,
"description": "Real-time remote biometric identification in publicly accessible spaces (e.g. live face recognition)? High risk (Annex III biometrics) — prohibited only when combined with realtimeBiometricLawEnforcement."
},
"emotionRecognitionWorkEducation": {
"type": "boolean",
"default": false,
"description": "Does it infer emotions (frustration, attention, mood…) from employees at work or students in education, e.g. to flag disengaged staff or bored students (art. 5.1.f)? Prohibited. Emotion inference on end users of a public consumer product (not their employees/students) is NOT this."
},
"biometricCategorisationSensitive": {
"type": "boolean",
"default": false,
"description": "Does it use biometric data (face, voice, gait…) to infer sensitive attributes — race, political opinion, religion, trade-union membership, sexual orientation (art. 5.1.g)? Prohibited. Ordinary face-unlock or liveness checks that don't infer these attributes are NOT this."
},
"realtimeBiometricLawEnforcement": {
"type": "boolean",
"default": false,
"description": "Only if realtimeBiometricPublic: is it used FOR LAW ENFORCEMENT purposes? That combination is prohibited under art. 5.1.h and already in force; any other use of public real-time biometric ID is high risk instead. Without this the prohibition can never be reached."
},
"untargetedFaceScraping": {
"type": "boolean",
"default": false,
"description": "Does it untargetedly scrape facial images from the internet or CCTV footage to build or expand a face-recognition database (art. 5.1.e)? Prohibited. Matching a user's own consented selfie against their own ID photo is NOT this."
},
"manipulativeOrExploitative": {
"type": "boolean",
"default": false,
"description": "Does it use subliminal techniques beyond a person's consciousness, or exploit a known vulnerability (age, disability, specific social or economic situation) to materially distort behavior and cause harm — e.g. dark patterns targeting a diagnosed gambling addiction (art. 5.1.a-b)? Prohibited. Ordinary persuasive marketing or UX nudges aimed at the general population are NOT this."
},
"individualPredictivePolicing": {
"type": "boolean",
"default": false,
"description": "Predicting an individual's criminal risk based solely on profiling or personality traits (art. 5.1.d)? Prohibited."
},
"embeddedInRegulatedProduct": {
"type": "boolean",
"default": false,
"description": "Is the AI a safety component embedded in an Annex I regulated product (toys, machinery, medical devices…)? High risk via art. 6.1, deadline Aug 2, 2028."
},
"annexIII": {
"type": "array",
"items": {
"type": "string",
"enum": [
"biometrics",
"critical",
"education",
"employment",
"essential",
"law",
"migration",
"justice"
]
},
"default": [],
"description": "Annex III high-risk domains that apply. Only these exact values count; anything else is not Annex III and must be left out."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_install_snippet(appId, platform, accent)
Return what to install for a LexVibe app id. For web: the one-line <script> snippet (cookie banner with real script blocking + hosted policy links) to paste before </head>, plus a JSX variant for React/Next.js layouts. For iOS/Android: the hosted privacy-policy URL and the exact App Store Connect / Google Play Console fields to paste it into. No app id yet? Call claim_app to create one in the user's account.
Eingabe-Schema
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$",
"description": "LexVibe app id from the dashboard."
},
"platform": {
"type": "string",
"enum": [
"web",
"ios",
"android"
],
"default": "web",
"description": "Target platform. Defaults to web."
},
"accent": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{3,8}$",
"description": "Optional brand color for the banner, as a hex value like #4f46e5."
}
},
"required": [
"appId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡claim_app(url, appName, markets, answers, platform, ...)
Create a REAL LexVibe app in the user's account (replaces any YOUR_APP_ID placeholder). Returns a claim link: show it to the user so they can sign in and confirm — the link expires in 30 minutes. On confirmation LexVibe creates the app, scans the URL (if given), generates and hosts the legal documents. After the user confirms, call get_claim_status with the returned code to retrieve the real app id and install snippet. Provide at least `url` or `appName`.
Eingabe-Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 3,
"maxLength": 500,
"description": "Public URL of the app: a website URL, or an App Store / Google Play listing URL for a mobile-only product. LexVibe scans whichever kind is provided on confirmation. If you don't have a listing URL yet, set `platform` explicitly instead."
},
"appName": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "App / business name (required if no url is provided)."
},
"markets": {
"type": "array",
"items": {
"type": "string",
"enum": [
"eu",
"uk",
"ch",
"us",
"ca",
"latam",
"apac",
"india",
"china",
"mena",
"africa",
"global"
]
},
"maxItems": 12,
"description": "Regions where the app has users; each market pack cites its own frameworks: eu → GDPR/ePrivacy, uk → UK GDPR/PECR, us → CCPA/CPRA, ca → PIPEDA, latam → LGPD…; 'global' is NOT a union of the others — it only cites generic OECD international privacy best practices, for users outside every listed market. To cover several specific frameworks, list each market explicitly, e.g. ['eu', 'us', 'latam']. Defaults to [eu]."
},
"answers": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 2000
},
{
"type": "boolean"
},
{
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 30
}
]
},
"description": "Compliance flags you already know (pass check_website's suggestedAnswers): usesAnalytics, processesPayments, usesGenerativeAI, collectsEmails, sharesWithThirdParties, platformType, companyEntity, contactEmail…"
},
"platform": {
"type": "string",
"enum": [
"web",
"ios",
"android"
],
"description": "Target platform when there is no url to infer it from."
},
"aiAct": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 8
}
]
},
"description": "If you already ran check_ai_act for this product, pass the SAME answers object here. The EU AI Act classification is then saved against the app on confirmation and shown in the user's dashboard, instead of being lost when this conversation ends."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_claim_status(code)
Check whether the user has confirmed a claim created with claim_app. While the user hasn't confirmed yet it returns {status: 'pending'} — wait a few seconds and call again (the link expires in 30 minutes). Once claimed it returns the REAL app id, the install snippet and the hosted privacy-policy URL: replace any placeholder (YOUR_APP_ID) snippet with the real one.
Eingabe-Schema
{
"type": "object",
"properties": {
"code": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{16,64}$",
"description": "The claim code returned by claim_app."
}
},
"required": [
"code"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢lookup_framework(id)
Look up a privacy or AI law by id and get structured, primary-sourced facts: full name, jurisdiction, effective date, applicability threshold, the documents it requires, the rights it grants, its cookie-consent regime, whether it requires honouring Global Privacy Control, key articles, and a link to the OFFICIAL text (plus the supervisory authority). Use it to answer 'what does the TDPSA require?' or 'when does the EU AI Act apply?' with citations instead of guesses. Call list_frameworks first if you don't know the id. Read-only, instant, no signup.
Eingabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 2,
"maxLength": 40,
"description": "Framework id, e.g. \"gdpr\", \"eu-ai-act\", \"ccpa\", \"tdpsa\", \"lgpd\", \"pipl\", \"dpdp\", \"popia\". Get the full list from list_frameworks."
}
},
"required": [
"id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_frameworks(market, jurisdiction)
List every privacy and AI framework LexVibe generates documents against — 60 laws across 60+ jurisdictions, including GDPR, ePrivacy, the EU AI Act, UK GDPR and PECR, Swiss nFADP, CCPA/CPRA and 18 US state privacy laws modelled individually, PIPEDA and Quebec Law 25, LGPD and other LatAm regimes, APPI, PIPA, PDPA, Australia's Privacy Act, India's DPDP, China's PIPL, Saudi and UAE PDPL, POPIA and more. Each entry carries its id, jurisdiction, effective date and official-text URL. Optionally filter by market pack or by jurisdiction. Read-only, instant.
Eingabe-Schema
{
"type": "object",
"properties": {
"market": {
"type": "string",
"enum": [
"eu",
"uk",
"ch",
"us",
"ca",
"latam",
"apac",
"india",
"china",
"mena",
"africa",
"global"
],
"description": "Optional market pack to filter by (eu, uk, us, latam, apac…)."
},
"jurisdiction": {
"type": "string",
"minLength": 2,
"maxLength": 20,
"description": "Optional jurisdiction id to filter by, e.g. \"us-tx\", \"br\", \"eu\"."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢applicable_frameworks(markets)
Given the markets a product serves, return every framework that applies, the documents it must publish, the strictest cookie-consent regime across those markets, and whether a universal opt-out signal (Global Privacy Control) has to be honoured. This is the read-only version of what generate_policies uses internally, so the answer matches the documents LexVibe would actually produce. Use it to answer 'I sell to the EU and Texas — what do I need?'. Read-only, instant.
Eingabe-Schema
{
"type": "object",
"properties": {
"markets": {
"type": "array",
"items": {
"type": "string",
"enum": [
"eu",
"uk",
"ch",
"us",
"ca",
"latam",
"apac",
"india",
"china",
"mena",
"africa",
"global"
]
},
"minItems": 1,
"maxItems": 12,
"description": "Markets the product serves, e.g. [\"eu\", \"us\"]."
}
},
"required": [
"markets"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Nachweis