MCP 서버

lexvibe

io.github.marcosnovo/lexvibe
법률 및 컴플라이언스 공개 · 연결 가능 MCP 2025-11-25

이 MCP로 할 수 있는 일

Checks privacy and AI compliance requirements, evaluates websites and app listings, and generates localized legal policy documents.

applicable_frameworks
Which laws apply to my 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.
읽기 전용
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['markets'], 'properties': {'markets': {'type': 'array', 'items': {'enum': ['eu', 'uk', 'ch', 'us', 'ca', 'latam', 'apac', 'india', 'china', 'mena', 'africa', 'global'], 'type': 'string'}, 'maxItems': 12, 'minItems': 1, 'description': 'Markets the product serves, e.g. ["eu", "us"].'}}, 'additionalProperties': False}
check_ai_act
Classify EU AI Act risk
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.
읽기 전용
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'usesAI': {'type': 'boolean', 'default': True, 'description': 'Does the product use AI at all (LLM calls, recommendations, computer visionâ\x80¦)? false â\x87\x92 minimal risk, the AI Act does not apply.'}, 'annexIII': {'type': 'array', 'items': {'enum': ['biometrics', 'critical', 'education', 'employment', 'essential', 'law', 'migration', 'justice'], 'type': 'string'}, '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.'}, '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."}, '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â\x80¦)? Adds GDPR art. 22 duties; high risk only if an Annex III domain applies.'}, 'interactsWithPeople': {'type': 'boolean', 'default': False, 'description': 'Do people interact directly with the AI (chatbot, voice assistantâ\x80¦)? Triggers the art. 50 duty to disclose they are talking to an AI.'}, '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."}, '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) â\x80\x94 prohibited only when combined with realtimeBiometricLawEnforcement.'}, 'embeddedInRegulatedProduct': {'type': 'boolean', 'default': False, 'description': 'Is the AI a safety component embedded in an Annex I regulated product (toys, machinery, medical devicesâ\x80¦)? High risk via art. 6.1, deadline Aug 2, 2028.'}, '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 â\x80\x94 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."}, 'emotionRecognitionWorkEducation': {'type': 'boolean', 'default': False, 'description': 'Does it infer emotions (frustration, attention, moodâ\x80¦) 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.'}, '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.'}, 'biometricCategorisationSensitive': {'type': 'boolean', 'default': False, 'description': "Does it use biometric data (face, voice, gaitâ\x80¦) to infer sensitive attributes â\x80\x94 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."}}, 'additionalProperties': False}
check_store
Check app-store listing compliance
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.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'maxLength': 500, 'minLength': 10, '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.'}}, 'additionalProperties': False}
check_website
Check website compliance
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.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'maxLength': 300, 'minLength': 3, '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.'}}, 'additionalProperties': False}
claim_app
Claim a real LexVibe app
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`.
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'url': {'type': 'string', 'maxLength': 500, 'minLength': 3, '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."}, 'aiAct': {'type': 'object', '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': {'anyOf': [{'type': 'boolean'}, {'type': 'array', 'items': {'type': 'string', 'maxLength': 60}, 'maxItems': 8}]}}, 'answers': {'type': 'object', 'description': "Compliance flags you already know (pass check_website's suggestedAnswers): usesAnalytics, processesPayments, usesGenerativeAI, collectsEmails, sharesWithThirdParties, platformType, companyEntity, contactEmailâ\x80¦", 'additionalProperties': {'anyOf': [{'type': 'string', 'maxLength': 2000}, {'type': 'boolean'}, {'type': 'array', 'items': {'type': 'string', 'maxLength': 200}, 'maxItems': 30}]}}, 'appName': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'App / business name (required if no url is provided).'}, 'markets': {'type': 'array', 'items': {'enum': ['eu', 'uk', 'ch', 'us', 'ca', 'latam', 'apac', 'india', 'china', 'mena', 'africa', 'global'], 'type': 'string'}, 'maxItems': 12, 'description': "Regions where the app has users; each market pack cites its own frameworks: eu â\x86\x92 GDPR/ePrivacy, uk â\x86\x92 UK GDPR/PECR, us â\x86\x92 CCPA/CPRA, ca â\x86\x92 PIPEDA, latam â\x86\x92 LGPDâ\x80¦; 'global' is NOT a union of the others â\x80\x94 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]."}, 'platform': {'enum': ['web', 'ios', 'android'], 'type': 'string', 'description': 'Target platform when there is no url to infer it from.'}}, 'additionalProperties': False}
generate_policies
Generate legal documents
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).
읽기 전용
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['appName', 'markets'], 'properties': {'entity': {'type': 'string', 'maxLength': 300, 'description': 'Data controller / legal entity responsible for the app.'}, 'answers': {'type': 'object', 'default': {}, 'description': "Compliance flags; pass check_website's suggestedAnswers. Recognized keys: usesAnalytics, processesPayments, usesGenerativeAI, collectsEmails, sharesWithThirdParties, platformType.", 'additionalProperties': {'anyOf': [{'type': 'string', 'maxLength': 2000}, {'type': 'boolean'}, {'type': 'array', 'items': {'type': 'string', 'maxLength': 200}}]}}, 'appName': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Public / commercial name of the product.'}, 'locales': {'type': 'array', 'items': {'enum': ['es', 'en', 'fr', 'de', 'it', 'pt', 'nl', 'ja', 'zh', 'ko', 'hi', 'ar'], 'type': 'string'}, 'maxItems': 3, 'minItems': 1, 'description': 'Document languages (max 3 for anonymous callers). Defaults to the languages suggested by the chosen markets.'}, 'markets': {'type': 'array', 'items': {'enum': ['eu', 'uk', 'ch', 'us', 'ca', 'latam', 'apac', 'india', 'china', 'mena', 'africa', 'global'], 'type': 'string'}, 'maxItems': 12, 'minItems': 1, 'description': 'Regions where the app has users; determines the legal frameworks covered.'}, 'contactEmail': {'type': 'string', 'maxLength': 200, 'description': 'Contact email for privacy requests and data-subject rights.'}}, 'additionalProperties': False}
get_claim_status
Get claim status
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.
읽기 전용
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['code'], 'properties': {'code': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]{16,64}$', 'description': 'The claim code returned by claim_app.'}}, 'additionalProperties': False}
get_install_snippet
Get install snippet
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.
읽기 전용
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['appId'], 'properties': {'appId': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]{1,80}$', 'description': 'LexVibe app id from the dashboard.'}, 'accent': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{3,8}$', 'description': 'Optional brand color for the banner, as a hex value like #4f46e5.'}, 'platform': {'enum': ['web', 'ios', 'android'], 'type': 'string', 'default': 'web', 'description': 'Target platform. Defaults to web.'}}, 'additionalProperties': False}
list_frameworks
List the frameworks LexVibe tracks
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.
읽기 전용
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'market': {'enum': ['eu', 'uk', 'ch', 'us', 'ca', 'latam', 'apac', 'india', 'china', 'mena', 'africa', 'global'], 'type': 'string', 'description': 'Optional market pack to filter by (eu, uk, us, latam, apacâ\x80¦).'}, 'jurisdiction': {'type': 'string', 'maxLength': 20, 'minLength': 2, 'description': 'Optional jurisdiction id to filter by, e.g. "us-tx", "br", "eu".'}}, 'additionalProperties': False}
lookup_framework
Look up a privacy or AI framework
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.
읽기 전용
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 40, 'minLength': 2, 'description': 'Framework id, e.g. "gdpr", "eu-ai-act", "ccpa", "tdpsa", "lgpd", "pipl", "dpdp", "popia". Get the full list from list_frameworks.'}}, 'additionalProperties': False}
추가됨
applicable_frameworks
2026년 9월 17일 12:43 PM
추가됨
list_frameworks
2026년 9월 17일 12:43 PM
추가됨
lookup_framework
2026년 9월 17일 12:43 PM
추가됨
get_claim_status
2026년 9월 17일 12:43 PM
추가됨
claim_app
2026년 9월 17일 12:43 PM
추가됨
get_install_snippet
2026년 9월 17일 12:43 PM
추가됨
check_ai_act
2026년 9월 17일 12:43 PM
추가됨
generate_policies
2026년 9월 17일 12:43 PM
추가됨
check_store
2026년 9월 17일 12:43 PM
추가됨
check_website
2026년 9월 17일 12:43 PM