PrivacyPill
GDPR cookie banners with Consent Mode v2, plus a free scan of what loads before consent.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"privacypill": {
"url": "https://privacy-pill-consent-studio.lovable.app/mcp"
}
}
}リモートエンドポイント
https://privacy-pill-consent-studio.lovable.app/mcpstreamable-httpできること
ツール一覧
ツール(9)
🟢pre_consent_scan(url)
Free, no sign-in: fetch a public page as a first-time visitor and report which trackers (GA4, Google Ads, Meta Pixel, TikTok, LinkedIn, Hotjar…) and cookies load before the visitor consents, which ones wait, which other sites the page contacts (e.g. Google Fonts), and how to fix it. Static check of the HTML and headers (no JavaScript runs). Limited to 10 checks per hour per visitor.
入力スキーマ
{
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 3,
"maxLength": 2048,
"description": "Public page to check, e.g. https://example.com"
}
},
"required": [
"url"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_account
Show the signed-in PrivacyPill account: number of sites, licenses (Free, Pro, Lifetime) and limits.
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_sites
List the domains (sites) on the PrivacyPill account with their plan, site key and last scan score.
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_site(site_id)
Get one site with its full cookie banner settings (layout, colours, categories, Consent Mode, languages).
入力スキーマ
{
"type": "object",
"properties": {
"site_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "Site id from list_sites or create_site."
}
},
"required": [
"site_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟡create_site(domain, name, design, license_id)
Add a domain to PrivacyPill and create its cookie banner. Returns the site, its banner settings and the embed snippet. The free plan includes one site.
入力スキーマ
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"minLength": 3,
"maxLength": 253,
"description": "Bare domain such as example.com (no https://)."
},
"name": {
"description": "Friendly name shown in the dashboard.",
"type": "string",
"maxLength": 80
},
"design": {
"description": "Optional starting banner settings; see configure_banner for the fields.",
"type": "object",
"properties": {
"preset": {
"description": "Apply a built-in colour preset (see GET /presets).",
"type": "string",
"enum": [
"mint",
"slate",
"paper",
"lagoon",
"sand",
"contrast"
]
},
"layout": {
"type": "string",
"enum": [
"pill",
"bar",
"modal",
"corner"
]
},
"side": {
"type": "string",
"enum": [
"left",
"right"
]
},
"theme": {
"type": "object",
"properties": {
"bg": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"fg": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"accent": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"accentFg": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"border": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"radius": {
"type": "number",
"minimum": 0,
"maximum": 40
},
"btnRadius": {
"type": "number",
"minimum": 0,
"maximum": 999
},
"font": {
"type": "string",
"maxLength": 160,
"pattern": "^[\\w\\s,'\"\\-.]+$"
},
"size": {
"type": "number",
"minimum": 12,
"maximum": 18
},
"shadow": {
"type": "boolean"
},
"buttons": {
"type": "string",
"enum": [
"outline",
"soft",
"text"
]
}
}
},
"equal": {
"description": "Give Accept and Reject equal visual weight.",
"type": "boolean"
},
"reopen": {
"description": "Show a small button to reopen preferences.",
"type": "boolean"
},
"categories": {
"type": "object",
"properties": {
"analytics": {
"type": "boolean"
},
"marketing": {
"type": "boolean"
},
"functional": {
"type": "boolean"
}
}
},
"services": {
"type": "object",
"propertyNames": {
"type": "string",
"enum": [
"necessary",
"analytics",
"marketing",
"functional"
]
},
"additionalProperties": {
"maxItems": 40,
"type": "array",
"items": {
"type": "string",
"maxLength": 120
}
}
},
"gcm": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"wait": {
"type": "number",
"minimum": 0,
"maximum": 5000
},
"redact": {
"type": "boolean"
},
"passthrough": {
"type": "boolean"
}
}
},
"languages": {
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"enum": [
"en",
"de",
"fr",
"nl",
"es",
"it"
]
}
},
"defaultLang": {
"type": "string",
"enum": [
"en",
"de",
"fr",
"nl",
"es",
"it"
]
},
"autoLang": {
"type": "boolean"
},
"overrides": {
"type": "object",
"propertyNames": {
"type": "string",
"enum": [
"en",
"de",
"fr",
"nl",
"es",
"it"
]
},
"additionalProperties": {
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 120
},
"body": {
"type": "string",
"maxLength": 600
},
"accept": {
"type": "string",
"maxLength": 40
},
"reject": {
"type": "string",
"maxLength": 40
},
"customize": {
"type": "string",
"maxLength": 40
}
}
}
},
"policyUrl": {
"type": "string",
"maxLength": 500
},
"expiryDays": {
"type": "integer",
"minimum": 1,
"maximum": 395
},
"reloadOnWithdraw": {
"type": "boolean"
}
},
"additionalProperties": false
},
"license_id": {
"description": "Attach a Pro or Lifetime license from get_account.",
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"domain"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟡configure_banner(site_id, design, name, domain, geo_targeting, ...)
Update a site's cookie banner: layout (pill, bar, modal, corner), colours or preset, categories, services, Google Consent Mode v2, languages and wording. Only the fields you pass change. Pro sites can also switch geo-targeting and monthly rescans.
入力スキーマ
{
"type": "object",
"properties": {
"site_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "Site id from list_sites or create_site."
},
"design": {
"description": "Banner fields to change; nested objects merge.",
"type": "object",
"properties": {
"preset": {
"description": "Apply a built-in colour preset (see GET /presets).",
"type": "string",
"enum": [
"mint",
"slate",
"paper",
"lagoon",
"sand",
"contrast"
]
},
"layout": {
"type": "string",
"enum": [
"pill",
"bar",
"modal",
"corner"
]
},
"side": {
"type": "string",
"enum": [
"left",
"right"
]
},
"theme": {
"type": "object",
"properties": {
"bg": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"fg": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"accent": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"accentFg": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"border": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"radius": {
"type": "number",
"minimum": 0,
"maximum": 40
},
"btnRadius": {
"type": "number",
"minimum": 0,
"maximum": 999
},
"font": {
"type": "string",
"maxLength": 160,
"pattern": "^[\\w\\s,'\"\\-.]+$"
},
"size": {
"type": "number",
"minimum": 12,
"maximum": 18
},
"shadow": {
"type": "boolean"
},
"buttons": {
"type": "string",
"enum": [
"outline",
"soft",
"text"
]
}
}
},
"equal": {
"description": "Give Accept and Reject equal visual weight.",
"type": "boolean"
},
"reopen": {
"description": "Show a small button to reopen preferences.",
"type": "boolean"
},
"categories": {
"type": "object",
"properties": {
"analytics": {
"type": "boolean"
},
"marketing": {
"type": "boolean"
},
"functional": {
"type": "boolean"
}
}
},
"services": {
"type": "object",
"propertyNames": {
"type": "string",
"enum": [
"necessary",
"analytics",
"marketing",
"functional"
]
},
"additionalProperties": {
"maxItems": 40,
"type": "array",
"items": {
"type": "string",
"maxLength": 120
}
}
},
"gcm": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"wait": {
"type": "number",
"minimum": 0,
"maximum": 5000
},
"redact": {
"type": "boolean"
},
"passthrough": {
"type": "boolean"
}
}
},
"languages": {
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"enum": [
"en",
"de",
"fr",
"nl",
"es",
"it"
]
}
},
"defaultLang": {
"type": "string",
"enum": [
"en",
"de",
"fr",
"nl",
"es",
"it"
]
},
"autoLang": {
"type": "boolean"
},
"overrides": {
"type": "object",
"propertyNames": {
"type": "string",
"enum": [
"en",
"de",
"fr",
"nl",
"es",
"it"
]
},
"additionalProperties": {
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 120
},
"body": {
"type": "string",
"maxLength": 600
},
"accept": {
"type": "string",
"maxLength": 40
},
"reject": {
"type": "string",
"maxLength": 40
},
"customize": {
"type": "string",
"maxLength": 40
}
}
}
},
"policyUrl": {
"type": "string",
"maxLength": 500
},
"expiryDays": {
"type": "integer",
"minimum": 1,
"maximum": 395
},
"reloadOnWithdraw": {
"type": "boolean"
}
},
"additionalProperties": false
},
"name": {
"type": "string",
"maxLength": 80
},
"domain": {
"description": "Change the domain (bare domain).",
"type": "string",
"minLength": 3,
"maxLength": 253
},
"geo_targeting": {
"description": "Pro: only show the banner where consent law applies.",
"type": "boolean"
},
"monthly_rescan": {
"description": "Pro: rescan the site automatically every month.",
"type": "boolean"
}
},
"required": [
"site_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_embed_snippet(site_id)
Get the one-line PrivacyPill embed (with Consent Mode fallback) for a site, plus install steps for HTML, Google Tag Manager, WordPress, Shopify and Webflow.
入力スキーマ
{
"type": "object",
"properties": {
"site_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "Site id from list_sites or create_site."
}
},
"required": [
"site_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢run_compliance_scan(url, site_id, apply)
Scan a public web page for trackers (GA4, Google Ads, GTM, Meta Pixel, Hotjar, TikTok, LinkedIn…), cookies and Consent Mode setup, and get a 0–100 compliance score. Scans of your own domains are saved; apply=true adds the detected services to that site's banner.
入力スキーマ
{
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 3,
"maxLength": 2048,
"description": "Page URL, e.g. https://example.com"
},
"site_id": {
"description": "Save the scan to this site (otherwise matched by domain).",
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"apply": {
"description": "Add detected services and cookie names to the site's banner.",
"type": "boolean"
}
},
"required": [
"url"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_banner_presets
List the built-in banner colour presets and the allowed layouts, languages and categories.
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}コミュニティ
エビデンス