_ registry / mcp streamable-http · checked 1h ago

csscreme

https://csscreme.com

Registry code: 452040a0b5872604

api record

CSS Crème gives a coding agent a real design system before it writes UI. Free, no account, no key. Typical flow: search_themes -> get_design_md -> follow its rules while building -> get_theme_tokens or get_install_command to install. If a DESIGN.md is already in the repo, call verify_design_md with its Fingerprint line first; a stale copy is worse than none. get_agent_rules returns a block for CLAUDE.md / AGENTS.md so the rules apply every session. Every contrast ratio in a DESIGN.md is computed, not asserted; if a pair fails WCAG AA the file says so.

endpoint
https://csscreme.com/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is csscreme live?
Yes — it answered the hub's last check (checked 1h ago). It answered 100% of checks over the last 30 days.
Is csscreme free to use?
Yes — the hub reached it with no key and no payment.
What tools does csscreme have?
13 tools: get_design_md_for_url, get_design_md, get_install_command, verify_design_md, get_agent_rules, get_theme_tokens, decode_site, decode_url, ….
Is csscreme safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 99.1%· all time 99.1%

latency
347ms

last good check

priced tools
0

of 13 tools

_ answered our checks, 90 days 447 checks · signed record
  • degraded → live
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • live → degraded· timeout after 20000ms
_ what it is for
used for
  • search design systems
  • get design system details
  • install ui components
  • verify design system integrity
  • understand css features
takes → gives
text, web pages → text, data, code
tools
12 reads
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 13 tools
5 open 8 never probed 5 of 13 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • css_feature reads open 10h ago

    Answers two questions about a modern CSS feature with data instead of recall. First, its Baseline status (widely available, newly available, or limited availability), the date, and which core browsers lack it, read from the open web-features dataset at build time. Second, how many of CSS Crème's curated, decoded showcase sites ship it, which ones, how many of them guard it with @supports, and the exact @supports conditions they test. Also returns a fallback note where we have one, any name the feature has shipped under before (an agent that learned the old name will otherwise write it), and the documented limits that catch people out, each cited to the page it was read on. Call it before writing CSS that uses container queries, :has(), anchor positioning, @scope, view transitions, oklch(), color-mix(), light-dark(), subgrid, scroll-driven animations, @property, text-wrap and similar, so the CSS you write is accurate for today rather than for your training date. With no feature given it returns the Ship Gap: features that are safe and mostly ignored, and features that are early and shipped anyway.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "feature": {
          "type": "string",
          "description": "A web-features id or a plain name: \"container-queries\", \"has\", \":has()\", \"anchor positioning\", \"oklch\", \"subgrid\", \"@scope\". Omit for the whole Ship Gap summary."
        }
      }
    }
    arguments 9 lines
  • list_themes reads open 10h ago

    Browse the full catalogue of curated themes and templates. Use when the user wants to see options rather than search for one.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "kind": {
          "enum": [
            "any",
            "theme",
            "template"
          ],
          "type": "string"
        },
        "mode": {
          "enum": [
            "any",
            "light",
            "dark"
          ],
          "type": "string"
        }
      }
    }
    arguments 21 lines
  • search_themes reads open 1h ago

    Find a design system by describing what you are building ("dark developer tool", "calm fintech dashboard", "playful consumer app"). Returns matching themes with their DESIGN.md URL and shadcn install command. Call this first when the user has no design system defined.

    mcp-tool

    {
      "type": "object",
      "required": [
        "query"
      ],
      "properties": {
        "kind": {
          "enum": [
            "any",
            "theme",
            "template"
          ],
          "type": "string",
          "description": "Curated palette theme, full page template, or either. Default any."
        },
        "mode": {
          "enum": [
            "any",
            "light",
            "dark"
          ],
          "type": "string",
          "description": "Preferred light or dark. Default any."
        },
        "limit": {
          "type": "integer",
          "maximum": 25,
          "minimum": 1,
          "description": "Max results, 1-25. Default 8."
        },
        "query": {
          "type": "string",
          "description": "Free text: mood, industry, colour, or use case."
        }
      }
    }
    arguments 36 lines
  • get_scene_embed open 21h ago

    Returns paste-ready code for a CSS Crème Scene: an interactive 3D meadow (four seasons, dandelion clocks, or a garden of peonies, white roses, lilies, irises, hydrangeas, tulips or daffodils, at any hour) grown by code in the browser, with no models or images to load. Give it the `roles` (and optionally `colors`) from a decode_url result and the three flowers take that site's declared colours, each with its source named; or pass a `palette` of hex values. It reads no URL itself. Returns the <creme-scene> element, an iframe, a full-screen link and the licence line. Free to embed with the visible credit.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "mode": {
          "enum": [
            "inline",
            "background"
          ],
          "type": "string",
          "description": "background sits the scene behind a section's own content."
        },
        "time": {
          "type": "number",
          "maximum": 24,
          "minimum": 0,
          "description": "Hour of the day, 0 to 24. 9 is morning, 18.5 golden hour, 22 night. Default 16.2."
        },
        "roles": {
          "type": "object",
          "description": "The roles object from decode_url (primary, accent and so on). The flowers take its strongest declared colours."
        },
        "colors": {
          "type": "array",
          "description": "Optional: the colors array from decode_url, used when roles alone hold fewer than three strong colours."
        },
        "season": {
          "enum": [
            "spring",
            "summer",
            "autumn",
            "winter",
            "dandelion",
            "peony",
            "rose",
            "lily",
            "iris",
            "hydrangea",
            "tulip",
            "daffodil"
          ],
          "type": "string",
          "description": "Default summer."
        },
        "palette": {
          "type": "object",
          "description": "Optional explicit colours: { a, b, c, grass, sky, light } as #hex. Wins over roles."
        }
      }
    }
    arguments 49 lines
  • how_to_use reads open 10h ago

    Explains where a DESIGN.md belongs for a given coding agent (Claude Code, Cursor, v0, Codex, Lovable) so the design rules apply to every session rather than one message.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "tool": {
          "type": "string",
          "description": "claude-code | cursor | v0 | codex | lovable"
        }
      }
    }
    arguments 9 lines
  • get_design_md_for_url reads unknown never probed

    Read the stylesheets of a public site and return a full DESIGN.md: semantic roles with the token each came from, measured WCAG contrast pairs, the tokens the site itself declares (framework internals counted separately), font families, the type scale with the ratio between steps, colour frequency, gradients, corner radii, spacing, an elevation ladder of shadows, breakpoints, the z-index ladder, interaction-state rule counts, motion, and whether a dark theme is declared. This is the artefact to hand a coding agent before it writes UI that should match a site. It reads declared CSS and does not execute JavaScript, so it reports what the stylesheets say rather than what the page renders.

    mcp-tool

    {
      "type": "object",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "Absolute public http(s) URL of the page to read."
        },
        "maxAge": {
          "type": "integer",
          "maximum": 3600,
          "minimum": 0,
          "description": "How old a reused read may be, in seconds. Default 600; 0 reads the site now. A reused read keeps its own fetchedAt and says cache.hit: true."
        }
      }
    }
    arguments 18 lines
  • get_design_md reads unknown never probed

    Fetch the full DESIGN.md for one theme: semantic colour roles, the complete shadcn token set in light and dark, typography, radius, spacing, MEASURED WCAG contrast ratios, and numbered rules the generated UI must follow. Read this before writing any UI. Save it at the repo root as DESIGN.md so it applies to every session.

    mcp-tool

    {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Theme or template id, e.g. \"deep-ocean\". Get ids from search_themes or list_themes."
        }
      }
    }
    arguments 12 lines
  • get_install_command reads unknown never probed

    Return the exact `npx shadcn@latest add <url>` command that installs one theme into a shadcn/ui project, plus the registry URL it reads. Use when the user says "install it" and you already know the id.

    mcp-tool

    {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Theme or template id."
        }
      }
    }
    arguments 12 lines
  • verify_design_md reads unknown never probed

    Every DESIGN.md carries a Fingerprint line. Pass the id and that fingerprint; the server answers whether the copy matches the current token set, and if not, returns the current tokens so the agent can update the file instead of following a stale one. Call this at the start of a session when a DESIGN.md is already in the repo.

    mcp-tool

    {
      "type": "object",
      "required": [
        "id",
        "fingerprint"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Theme or template id from the DESIGN.md Source line."
        },
        "fingerprint": {
          "type": "string",
          "description": "The value from the DESIGN.md Fingerprint line, e.g. \"fnv1a-9c2a41d7\"."
        }
      }
    }
    arguments 17 lines
  • get_agent_rules reads unknown 4h ago

    Return a short standing-instructions block that makes every future session read DESIGN.md before touching UI. Paste it whole into CLAUDE.md, AGENTS.md or .cursor/rules/design.mdc. It points at the DESIGN.md rather than restating it, and carries the token fingerprint so drift is detectable.

    mcp-tool

    {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Theme or template id."
        }
      }
    }
    arguments 12 lines
  • get_theme_tokens reads unknown 1h ago

    Get the shadcn/ui registry item (OKLCH tokens, light and dark) plus the paste-ready CSS variables for one theme, and the one-line command that installs it for real. Use after get_design_md when you are ready to write the tokens into globals.css.

    mcp-tool

    {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Theme or template id."
        },
        "format": {
          "enum": [
            "registry",
            "css",
            "both"
          ],
          "type": "string",
          "description": "Default both."
        }
      }
    }
    arguments 21 lines
  • decode_site reads unknown 4h ago

    Read a sample of pages from one site (from its sitemap.xml, or the homepage links when there is no sitemap) and report what is CONSISTENT across them: which declared tokens, colours, font stacks, radii and spacing values appear on every page read, and which appear on only some. One page shows what a page uses; a design system is a claim about consistency, and only a sample can test it. Returns counts and the pages actually read, never a score. Use when the user asks whether a site is really on a system, or wants the system rather than one page of it.

    mcp-tool

    {
      "type": "object",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "Absolute public http(s) URL anywhere on the site."
        },
        "pages": {
          "type": "integer",
          "maximum": 8,
          "minimum": 2,
          "description": "How many pages to read, 2 to 8. Default 5."
        },
        "maxAge": {
          "type": "integer",
          "maximum": 3600,
          "minimum": 0,
          "description": "How old a reused read may be, in seconds. Default 600; 0 reads the site now. A reused read keeps its own fetchedAt and says cache.hit: true."
        }
      }
    }
    arguments 24 lines
  • decode_url reads unknown 4h ago

    Fetch a public site's HTML and stylesheets and return what its CSS declares: named custom properties that look like design tokens, the colours it uses most, its font stacks, border radii, spacing values, and the framework it appears to be built with. Also returns a "drop" report: roughly how many words a web-to-markdown reader would carry away from this page, against the design decisions it would discard, because markdown is defined by throwing the design layer away. It reads CSS and does not render the page, so it reports a confidence ("tokens" when named properties were found, "derived" when only compiled CSS was available) and flags a JavaScript shell rather than pretending every site is equally legible. It obeys the site's robots.txt for CSSCremeBot: a disallowed path is refused with ROBOTS_DENIED, which a retry will not change. A bot challenge, a parked or for-sale domain, or a host's default page is refused with NOT_THE_SITE and the evidence, rather than measured as if it were the site. Every error starts with its code and a retry verdict (never, later, with-changes). A read is reused for up to maxAge seconds (default 600, 0 for fresh), and every result carries `work`: the requests it made of the site. Use when the user wants to match a site that is not in the catalogue, or has fetched a page as markdown and needs what that markdown lost.

    mcp-tool

    {
      "type": "object",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "Absolute public http(s) URL of the page to read."
        },
        "expect": {
          "type": "string",
          "description": "Optional brand hex, like #635BFF. The json response then carries `expect`: the nearest value the site declares (a token when it has any, else a literal), its CIE76 distance, and whether that is within the same-colour tolerance, near, or different. A distance, not a grade."
        },
        "format": {
          "enum": [
            "json",
            "md",
            "tokens",
            "css",
            "tailwind",
            "registry",
            "agents",
            "aliases",
            "figma"
          ],
          "type": "string",
          "description": "Default json (the measurement). Or one artefact from the same read: md (DESIGN.md), tokens (W3C DTCG tokens.json with the site's declared names by scope), css (globals.css: shadcn variables, Tailwind v4 @theme, the declared block), tailwind (v4 and v3 shapes), registry (a shadcn registry item: npx shadcn add <url>), agents (an agents.md rules block), aliases (every resolved value mapped back to the declared names that produce it, with scope), figma (a script for Figma's use_figma tool that creates a Variables collection with Light and Dark modes, built from the same mapper the CSS Crème plugin runs)."
        },
        "maxAge": {
          "type": "integer",
          "maximum": 3600,
          "minimum": 0,
          "description": "How old a reused read may be, in seconds. Default 600; 0 reads the site now. A reused read keeps its own fetchedAt and says cache.hit: true."
        },
        "expectSpec": {
          "type": "object",
          "description": "Optional brand spec to check field by field, for example {\"primary\":\"#635BFF\",\"bg\":\"#FFFFFF\",\"font\":\"Inter\",\"heading\":\"Sohne\",\"radius\":\"8px\",\"base\":\"16px\",\"spacing\":\"4px\",\"darkMode\":true,\"tokens\":{\"--brand\":\"#635BFF\"}}. The json response then carries `compliance`: per field a verdict (match, near, different, not-declared), what it was compared against, and the value found. not-declared means the site gives nothing to compare; it is never filled with the nearest guess."
        }
      }
    }
    arguments 41 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 452040a0b5872604.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/452040a0b5872604/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/452040a0b5872604/badge.svg)](https://brick.blue/agent/452040a0b5872604?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.