CookiePilot – cookie banner & Consent Mode v2
Add a GDPR cookie consent banner with Google Consent Mode v2 to any website, from the chat.
Should I use this
Quality & Safety
Findings (4)
- HIGH
- MEDIUMin get_install_snippet
- LOWin recommend_plan
- INFOin get_install_snippet
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"cookiepilot": {
"url": "https://mcp.cookiepilot.io/mcp"
}
}
}Remote endpoints
https://mcp.cookiepilot.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (9)
🟢analyze_site(url)
Fetches the public homepage of a website (no JavaScript, public addresses only) and returns its brand colours, fonts, platform (WordPress, WooCommerce, PrestaShop, Shoper, Shopify…), Google Tag Manager containers, consent tools already installed and detected trackers, plus suggested banner colours (WCAG-checked) and the recommended install method.
Input Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 3,
"maxLength": 2048,
"description": "Website address, e.g. https://example.com or example.com"
}
},
"required": [
"url"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢recommend_plan(monthly_pageviews, domains, locale)
Recommends the cheapest CookiePilot plan for the given monthly pageviews and number of domains, with current prices and limits of all plans, and a register link. monthly_pageviews is the traffic the user states for their site.
Input Schema
{
"type": "object",
"properties": {
"monthly_pageviews": {
"type": "integer",
"minimum": 0,
"maximum": 1000000000,
"description": "Monthly pageviews across all the user's sites, as stated by the user"
},
"domains": {
"type": "integer",
"minimum": 1,
"maximum": 1000,
"default": 1,
"description": "Number of websites (domains)"
},
"locale": {
"type": "string",
"maxLength": 10,
"description": "Language of the user (two-letter code): sets the language of the confirmation e-mail, the confirmation page and the CookiePilot panel, and the currency of prices (\"pl\" = PLN, any other = EUR). One of: en, pl, de, fr, es, it, nl, pt, sv, cs, ro, el, hu, sk, bg, hr, sl, et, lv, lt; others fall back to \"en\". Defaults to \"en\"."
}
},
"required": [
"monthly_pageviews"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_install_snippet(platform, locale, setup_token, hostname)
Step-by-step install instructions for a platform — HTML code (Consent Mode stub + banner script), the WordPress/WooCommerce plugin, the PrestaShop module, Google Tag Manager or Shoper. With a ready setup_token the code contains the real key of the account's domain; without it, YOUR_API_KEY is a placeholder and a register link is included.
Input Schema
{
"type": "object",
"properties": {
"platform": {
"type": "string",
"enum": [
"html",
"wordpress",
"woocommerce",
"prestashop",
"gtm",
"shoper"
],
"description": "Install method, usually recommendedInstallMethod from analyze_site"
},
"locale": {
"type": "string",
"maxLength": 10,
"description": "Language of the user (two-letter code): sets the language of the confirmation e-mail, the confirmation page and the CookiePilot panel, and the currency of prices (\"pl\" = PLN, any other = EUR). One of: en, pl, de, fr, es, it, nl, pt, sv, cs, ro, el, hu, sk, bg, hr, sl, et, lv, lt; others fall back to \"en\". Defaults to \"en\"."
},
"setup_token": {
"type": "string",
"minLength": 10,
"maxLength": 200,
"description": "setup_token returned by create_account"
},
"hostname": {
"type": "string",
"maxLength": 253,
"description": "Website hostname, e.g. example.com; defaults to the website given to create_account"
}
},
"required": [
"platform"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_account(email, organization_name, website, locale)
Starts a free CookiePilot sign-up for the user's own e-mail address and company, at the user's explicit request. CookiePilot e-mails a confirmation link to that address; no account exists until the address owner clicks it, sets a password and accepts the terms on CookiePilot's page. Returns a setup_token for the onboarding tools and a confirmation_code that the confirmation page also shows. The response is the same whether or not the address already has an account; an existing account holder receives a login link instead.
Input Schema
{
"type": "object",
"properties": {
"email": {
"type": "string",
"maxLength": 254,
"description": "The user's own e-mail address"
},
"organization_name": {
"type": "string",
"maxLength": 100,
"description": "The user's company or project name, plain text without web or e-mail addresses"
},
"website": {
"type": "string",
"maxLength": 253,
"description": "The website the banner is for, e.g. example.com"
},
"locale": {
"type": "string",
"maxLength": 10,
"description": "Language of the user (two-letter code): sets the language of the confirmation e-mail, the confirmation page and the CookiePilot panel, and the currency of prices (\"pl\" = PLN, any other = EUR). One of: en, pl, de, fr, es, it, nl, pt, sv, cs, ro, el, hu, sk, bg, hr, sl, et, lv, lt; others fall back to \"en\". Defaults to \"en\"."
}
},
"required": [
"email",
"organization_name"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_account_status(setup_token)
Returns pending_email (the user has not finished the confirmation page yet), ready (the account exists; the onboarding tools work with this setup_token for 24 hours) or expired.
Input Schema
{
"type": "object",
"properties": {
"setup_token": {
"type": "string",
"minLength": 10,
"maxLength": 200,
"description": "setup_token returned by create_account"
}
},
"required": [
"setup_token"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡add_domain(setup_token, hostname)
Adds the website to the confirmed account (setup_token must be ready). Defaults to the website given to create_account. An already added website is returned as is. The free plan includes one website.
Input Schema
{
"type": "object",
"properties": {
"setup_token": {
"type": "string",
"minLength": 10,
"maxLength": 200,
"description": "setup_token returned by create_account"
},
"hostname": {
"type": "string",
"maxLength": 253,
"description": "Website hostname, e.g. example.com; defaults to the website given to create_account"
}
},
"required": [
"setup_token"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪configure_banner(setup_token, hostname, colors, position, layout, ...)
Saves and publishes the banner look for a website on the confirmed account: colours (for example the suggested banner colours from a site analysis), position, layout, font and privacy policy URL. Returns a preview link to the CookiePilot panel.
Input Schema
{
"type": "object",
"properties": {
"setup_token": {
"type": "string",
"minLength": 10,
"maxLength": 200,
"description": "setup_token returned by create_account"
},
"hostname": {
"type": "string",
"maxLength": 253,
"description": "Website hostname, e.g. example.com; defaults to the website given to create_account"
},
"colors": {
"type": "object",
"properties": {
"primary": {
"type": "string",
"maxLength": 80
},
"primaryText": {
"type": "string",
"maxLength": 80
},
"background": {
"type": "string",
"maxLength": 80
},
"text": {
"type": "string",
"maxLength": 80
},
"border": {
"type": "string",
"maxLength": 80
},
"overlay": {
"type": "string",
"maxLength": 80
}
},
"additionalProperties": false,
"description": "CSS colours (hex or rgb/rgba); missing keys keep their current value"
},
"position": {
"type": "string",
"enum": [
"TOP",
"BOTTOM",
"CENTER"
]
},
"layout": {
"type": "string",
"enum": [
"BAR",
"BOX",
"MODAL"
]
},
"font_family": {
"type": "string",
"maxLength": 200,
"description": "e.g. \"Inter, sans-serif\""
},
"privacy_policy_url": {
"type": "string",
"maxLength": 2000,
"description": "Link to the site's privacy policy"
}
},
"required": [
"setup_token"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢verify_installation(setup_token, hostname)
Reports whether CookiePilot has seen its banner running on the website (verified) and, if not yet, whether the code is in the homepage HTML, with a hint for the user.
Input Schema
{
"type": "object",
"properties": {
"setup_token": {
"type": "string",
"minLength": 10,
"maxLength": 200,
"description": "setup_token returned by create_account"
},
"hostname": {
"type": "string",
"maxLength": 253,
"description": "Website hostname, e.g. example.com; defaults to the website given to create_account"
}
},
"required": [
"setup_token"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪start_checkout(setup_token, plan, period)
Returns a Stripe Checkout link for the Pro or Business plan on the confirmed account, for a user who chose a paid plan. Payment happens only on Stripe's page; the tool takes no card details.
Input Schema
{
"type": "object",
"properties": {
"setup_token": {
"type": "string",
"minLength": 10,
"maxLength": 200,
"description": "setup_token returned by create_account"
},
"plan": {
"type": "string",
"enum": [
"pro",
"business"
]
},
"period": {
"type": "string",
"enum": [
"monthly",
"yearly"
],
"default": "monthly"
}
},
"required": [
"setup_token",
"plan"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence