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

A
Description quality
94%
Schema completeness
98%
Naming quality
98%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (4)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'get_install_snippet' description contains placeholder textin get_install_snippet
  • LOWTool 'recommend_plan' description lacks action verbin recommend_plan
  • INFOTool description contains placeholder or incomplete textin get_install_snippet

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,263Tokens (tool definitions)
~1.8 KBTypical response size
Moderate attention impact (1.77% of 128k context)

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-http

What it can do

Tool inventory

Tools (9)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded9 tools