Start freeDashboard
Documentation

MCP for AI assistants

The Model Context Protocol (MCP) lets an AI assistant work with Cookiemark for you. Ask in plain words which sites have problems, what changed since the last scan or how many visitors said yes, and the assistant looks it up. It comes with every paid site.

What you can ask

  • Which of my sites set cookies before a visitor agrees, and what should I fix first?
  • Scan all client sites and give me a short report per client, for our monthly meeting.
  • Did any new cookies turn up on shop.example.com since the last scan? Who sets them?
  • How many visitors accepted the banner on example.com last month, and from which countries?
  • A visitor sent consent ID 1b4e28ba-2fa1-41d2-883f-0016d3cca427. What did they agree to, and when?
  • Compare the accept rates of all my sites and tell me which banner does worst.
  • Check the Tag Manager container of example.com and fix the tags that run before consent.

The assistant reads your sites, scans and consent log through the tools below. It can start a scan or publish a site only when you ask it to, and good clients ask you to confirm first.

Connect

You need a key. An owner or admin makes one under Settings, API keys. It starts with cmk_; we show it once, so copy it straight away. The server lives at:

https://cookiemark.com/mcp

Claude Code

claude mcp add --transport http cookiemark https://cookiemark.com/mcp \
  --header "Authorization: Bearer cmk_..."

Cursor, Windsurf and other clients with a settings file

{
  "mcpServers": {
    "cookiemark": {
      "url": "https://cookiemark.com/mcp",
      "headers": { "Authorization": "Bearer cmk_..." }
    }
  }
}

Claude Desktop

Add Cookiemark to claude_desktop_config.json through the small mcp-remote bridge, which needs Node.js:

{
  "mcpServers": {
    "cookiemark": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://cookiemark.com/mcp", "--header", "Authorization: Bearer cmk_..."]
    }
  }
}

Restart Claude Desktop, and Cookiemark appears among its tools.

The tools

ToolWhat it does
list_sitesEvery site with whether its banner is live and a summary of its latest scan.Reads
get_scan_reportThe latest scan of a site: problems and how to fix them, the checks, every cookie, and the tracking IDs found.Reads
find_new_cookiesCookies the latest scan found that are not on the cookie list yet, with a suggested category.Reads
consent_statsHow visitors answered over a number of days: accepted, rejected, own choice, the accept rate and the top countries.Reads
get_consent_logThe choices on a site, newest first, for a period you choose.Reads
find_consentEvery choice under one consent ID, to answer a visitor who asks what they agreed to.Reads
start_scanStarts a new scan of a site. One scan per site every ten minutes.Changes
publish_siteMakes the current draft of a site live.Changes
gtm_checkChecks consent in the site's Google Tag Manager container and lists what is wrong.Reads
gtm_prepare_fixPuts the fix in a new Tag Manager workspace you can preview. Nothing goes live.Changes
gtm_publish_fixPublishes the waiting fix and starts a scan to check it.Changes

Every tool that takes a site accepts its domain, such as example.com, or its ID from list_sites.

Keys and safety

  • A key belongs to one organisation and sees only its sites.
  • The assistant cannot change texts, design or the cookie list. You do that in the dashboard.
  • A key may make 120 requests a minute. Revoke it under Settings, API keys, and the assistant loses access at once.
  • Treat the key like a password: anyone with it can read your consent log.

For developers

The server speaks MCP over Streamable HTTP without sessions: POST one JSON-RPC message or a batch to /mcp with the key as a Bearer token, and every request gets a JSON answer. It supports protocol versions 2025-06-18, 2025-03-26 and 2024-11-05. Tools that read carry readOnlyHint; publish_site carries destructiveHint.