Skip to main content
AllMCPs
BrowseBestCategoriesStackCompareToolsGuidesBlog Log in Submit MCP

Stay in the loop

Get new MCP servers and top picks in your inbox.

AllMCPs

The open directory for discovering and installing Model Context Protocol servers.

Explore

  • Browse servers
  • Best MCP servers
  • Categories
  • MCP clients
  • Agent prompts
  • Stack Builder
  • Compare servers
  • Tags index
  • Submit a server
  • Pricing

Learn

  • Guides hub
  • What is MCP?
  • Install guide
  • Troubleshooting
  • Security
  • Blog
  • Blog RSS

Tools

  • All tools
  • Config generator
  • Config validator
  • MCP playground
  • OpenAPI β†’ MCP
  • Badge generator

For agents

  • API docs
  • Trust & traffic
  • llms.txt β†— (opens in a new tab)
  • Catalog JSON β†— (opens in a new tab)
  • Remote MCP β†— (opens in a new tab)

Company

  • About
  • Contact
  • X (@AllMCPs) β†— (opens in a new tab)
  • GitHub β†— (opens in a new tab)
  • Terms
  • Privacy
AllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistAllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on Buildlist
Β© 2026 Jackalope Digital LLC. All rights reserved.
  1. Home
  2. πŸ’» Developer Tools
  3. CSS SOTA
C
Health: Not checked yetWe have not completed a health check for this listing yet.Last checked 8/11/2026, 12:05:59 AM

CSS SOTA

Enrichment pendingWe haven’t run our AI enrichment pass on this listing yet, so the overview, use cases, and FAQ below may be sparse or missing. We work through the catalog over time β€” check back soon.
View RepositoryVisit Website

What CSS you can actually ship today, from live Baseline data and MDN browser-compat-data.

Quick Install

Automated & IDE Setup

Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β€” or use 1-click editor setup below.

Add to CursorAdd to VS Code
Manual Client & Custom JSON ConfigExpand JSON β–Ύ

Install Config Generator

Choose your client
claude_desktop_config.json
{
  "mcpServers": {
    "css-sota": {
      "command": "npx",
      "args": [
        "-y",
        "css-sota"
      ]
    }
  }
}

πŸ’‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)

Install Directory Badge Claim listing AlternativesπŸ’» More in Developer Tools

Documentation Overview

css-sota-mcp

An MCP server that answers what CSS you can actually ship today β€” from live Baseline data and MDN browser-compat-data, not from a model's training set.

Agents are confidently wrong about browser support. They will tell you anchor-name is fine, or that :has() needs a polyfill, depending on when their weights were frozen. This server replaces the guess with the current answer.

  • Endpoint β€” https://css-sota-mcp.lusrodri.workers.dev/mcp (Streamable HTTP, no auth)
  • Docs β€” css-sota-mcp.pages.dev
  • Registry β€” io.github.LuSrodri/css-sota-mcp, listed in the official MCP Registry

Tools

ToolAnswersSource
search_css_features"Which features exist for this, and are they safe yet?"webstatus.dev
whats_new"What can I start using that I couldn't before?"webstatus.dev
get_feature"Tell me everything about this one feature."webstatus.dev + mdn/content
check_support"Which browser versions support this exactly?"bundled browser-compat-data
audit_css"Does this stylesheet work for my users?"bundled browser-compat-data
dont_make_me_think"How should this UI be designed β€” and is this page any good?"bundled UX guidelines

check_support and audit_css answer with no network call at all β€” the data they need is compiled into the Worker.

dont_make_me_think

Named after Steve Krug's rule: a page should be self-evident. Two modes.

mode: "guidelines" returns the principles to design against β€” Nielsen's 10 heuristics, Hick's and Fitts's laws, WCAG 2.2, neurodiversity-inclusive design, motion and microinteractions (including when Lottie or Rive earn their bundle cost), SVG craft and animation, light-first theming, lightness, responsiveness. Filter with topic. The knowledge base is mcp/src/data/ux-guidelines.json; every principle carries its rationale, actionable rules and a source.

mode: "review" checks HTML and CSS β€” or a fetched url β€” and reports what violates which principle, with the line and the evidence.

It reads source; it does not render it. A Worker has no layout engine, so the review cannot measure computed contrast, real target sizes, or where focus actually lands. It catches what is visible in the markup: missing alt, blocked zoom, animation with no reduced-motion path, a removed focus ring, a dark-only palette, vague link text, a nav past Hick's range. A clean result is a floor, not a pass, and the tool says so in its own output.

audit_css targets

Two target styles, because they answer different questions:

  • A Baseline level β€” baseline-widely, baseline-newly. Asks "is this interoperable enough to ship?", judged against web-features' Baseline status.
  • An explicit browser list β€” chrome 120, safari 17.4, firefox 128. Asks "does this work for my users?", judged against per-browser versions.

Browserslist queries (last 2 versions, >0.5%) are not accepted. Resolving them needs usage data this server does not carry, and approximating them would produce confidently wrong audits β€” exactly the failure mode the server exists to fix. The tool says so rather than guessing.

Connect

Terminal
claude mcp add --scope user --transport http css-sota https://css-sota-mcp.lusrodri.workers.dev/mcp

--scope user registers it once for every project on the machine. Leave it out and the server is added to the current project only.

Claude Desktop

Remote servers go in through Connectors, not through claude_desktop_config.json β€” that file only takes local stdio servers. Open Settings β†’ Connectors β†’ Add custom connector and paste:

Code
https://css-sota-mcp.lusrodri.workers.dev/mcp

The endpoint is unauthenticated, so the connector asks for no client id and no secret.

Cloudflare AI Playground

Open playground.ai.cloudflare.com, paste the endpoint into the MCP server field, and connect. The six tools appear immediately.

MCP Inspector
Terminal
npx @modelcontextprotocol/inspector@latest

Set transport to Streamable HTTP and connect to the endpoint.

Limits on the hosted endpoint

The endpoint is public and unauthenticated on purpose: every tool is read-only over public datasets, so there is nothing to protect from disclosure. What is worth protecting is the account's request budget and the server's standing with the upstreams it proxies.

LimitValueOn exceeding
Requests per client IP120 / minute, per Cloudflare location429 with Retry-After: 60
Request body1 MB413
audit_css source400 000 charactersschema validation error

120/minute is sized against real usage rather than a round number: an agent working through a task calls a handful of tools per turn, so a burst of twenty is unremarkable and 120 leaves room for a shared address running several clients.

Cloudflare's own guidance prefers keying rate limits on a user or tenant id rather than an IP, since an IP can be shared behind NAT or a privacy relay. This endpoint has no authentication and so no such id; the limit is set generously enough that the trade is a fair one.

If you expect sustained traffic above this, run your own instance β€” the whole thing is one Worker and deploys in a minute.

Layout

Code
mcp/       The MCP server β€” a Cloudflare Worker
landing/   Documentation site β€” Vite, on Cloudflare Pages

What the landing page serves to crawlers

The docs site is how an agent finds this server without being told about it, so it publishes more than HTML:

PathWhat it is
/robots.txtOpen to everything, with a Content Signals line granting search, ai-input and ai-train
/sitemap.xmlGenerated at build time, so lastmod is the deploy date rather than a hand-edited lie
/llms.txtThe endpoint, the six tools and the Baseline vocabulary, as Markdown
/llms-full.txtThe whole reference β€” tools, targets, limits, data sources β€” in one file
/404.htmlIts presence is the point: without it Pages answers every unknown path with the home page under a 200, which is how /robots.txt used to return HTML
/og.pngThe social card, 1200Γ—630

Two things the page does not do are worth stating, because both were true until recently. The endpoint URL is no longer injected only by script β€” it is in the markup, so anything that reads the HTML without executing it still learns the one fact the page exists to convey. And the Worker origin now carries a Link: …; rel="canonical" header pointing at the docs site, so the two hostnames describing this server do not compete to be the one that gets cited.

The page makes no third-party requests. The three typefaces are served from this origin, pinned in landing/public/fonts/ and declared in landing/src/fonts.css β€” latin subsets only, and one file per family where upstream is variable. They came from fonts.googleapis.com until that stylesheet turned out to be the longest pole in the page's largest contentful paint: render-blocking, on another host, and itself a hop to a third host for the files. Regenerate them with landing/scripts/fetch-fonts.js; it is deliberately not a build step, since refetching on every build would put a third party back in the critical path one level down.

How the data is put together

@mdn/browser-compat-data unpacks to ~20 MB, far past a Worker's bundle budget. At build time mcp/scripts/build-data.js extracts the CSS slice of it plus the web-features catalog, drops every field the server never reads, and encodes per-browser support positionally. The result is about 1 MB of JSON β€” 120 KB gzipped β€” which ships inside the Worker.

The generated files are gitignored. Every build, test and deploy regenerates them, so the data always matches whatever version npm resolved.

Two details worth knowing, both found the hard way:

  • web-features encodes Baseline as "high" / "low" / false, while api.webstatus.dev and all Baseline documentation say widely / newly / limited. The build normalises to the latter so the two halves of the server never disagree.
  • MDN reorganised its CSS reference under Web/CSS/Reference/…. Compat data records the slug a page had when the entry was written, so building a raw GitHub path from mdn_url 404s. get_feature resolves the canonical slug through MDN first, then reads the source.

Development

Terminal
npm install

npm run dev --workspace mcp        # wrangler dev on :8787
npm test --workspace mcp           # vitest
npm run typecheck                  # both workspaces

node mcp/scripts/smoke.js          # real MCP protocol call against :8787
node mcp/scripts/smoke.js <url>    # ...or against a deployment

smoke.js speaks the 2025-era Streamable HTTP flow β€” the same one the AI Playground and MCP Inspector use β€” so a passing run means those clients will work too.

Deploy

Pushing to main deploys both. Cloudflare builds from this repo directly β€” no API token is stored in GitHub, and Cloudflare issues its own build credential.

TargetProductRootBuildDeploy
WorkerWorkers Buildsmcpnpm run build:datanpx wrangler deploy
LandingPages Git integrationlandingnpm run buildoutput dist

The Worker's build command is not optional: mcp/src/data/generated/ is gitignored, and src/data/index.ts imports it statically, so a build that skips it fails to bundle.

Because the two are independent products, neither waits for the other. .github/workflows/verify.yml covers that gap β€” it smoke-tests the live endpoint on a schedule and on demand.

Publishing to the registry

server.json is the registry's record of this server. Because the server is remote, it carries a remotes entry pointing at the Worker rather than a packages one β€” there is no artifact to install, and so no package-ownership marker to place anywhere.

.github/workflows/publish-mcp.yml republishes it on a v* tag:

bash
git tag v0.2.0 && git push origin v0.2.0

The tag sets the version, so server.json's own value is only a fallback for a manual workflow_dispatch run. The job authenticates with OIDC β€” proving it runs in this repository is what grants the io.github.LuSrodri/* namespace β€” so there is no token stored in GitHub, matching how the rest of this repo deploys.

It deliberately does not run on every push. The registry record points at a URL, not at a build, so it stays correct across deploys; only a metadata change needs a new version.

Previewing a pull request

Every push to a PR branch uploads a Worker version and builds the landing site, each reachable before merge:

URL
Worker, by branchhttps://<branch-with-dashes>-css-sota-mcp.lusrodri.workers.dev/mcp
Worker, by versionhttps://<version-prefix>-css-sota-mcp.lusrodri.workers.dev/mcp
Landinghttps://<deployment-id>.css-sota-mcp.pages.dev

The branch alias is the useful one β€” it stays put as you push. A branch named fix/thing becomes fix-thing-css-sota-mcp.lusrodri.workers.dev. Point the AI Playground or MCP Inspector at it to try a PR's server for real; node mcp/scripts/smoke.js <url>/mcp works against it too.

A landing preview calls its own branch's Worker, not production. landing/vite.config.ts derives the alias from CF_PAGES_BRANCH at build time, so a PR touching both halves is previewed as a matched pair. Without this the preview would show a new front end against the old server β€” green preview, broken on merge. An explicit VITE_MCP_ORIGIN still wins, and production builds fall through to the default.

The alias is derived rather than looked up, so a mismatch points the demo at a URL that 404s. That fails visibly: the endpoint is printed on the page and the hero reports it could not reach the server. The Pages build log prints the wiring on every preview build.

One caveat remains: no automatic PR comment. Cloudflare normally posts the preview links on the pull request; this account cannot enable that (12044: This account does not have access to Workers Previews). The URLs work β€” you construct them from the branch name.

To deploy by hand instead:

Terminal
npm run deploy --workspace mcp      # Worker
npm run deploy --workspace landing  # Pages

Both need Cloudflare credentials β€” either wrangler login, or CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID in the environment. Note that wrangler login needs a real terminal; in a non-interactive shell it refuses and asks for the token variable instead.

Account prerequisites

Cloudflare gates Workers behind these, and the errors only surface at deploy time:

  • Workers enabled on the account. Until the Workers & Pages dashboard has been opened once, every Workers API call fails with 10034: You need to verify your email address to use Workers β€” which is misleading, since a verified email does not clear it. Opening the page does.
  • A workers.dev subdomain, if you want a *.workers.dev URL. Absent one, the API answers 10007.
  • The Cloudflare GitHub App installed, for Git-based deploys. Without it the repository connection API answers 8000008, regardless of account permissions.

Built with

MCP TypeScript SDK v2 Β· Cloudflare Workers Β· webstatus.dev Β· @mdn/browser-compat-data Β· web-features

The server uses createMcpHandler, which returns a web-standard { fetch } object and serves requests statelessly β€” so there is no Durable Object, no KV, and no session affinity. Any isolate can answer any request.

License

MIT

Related MCP Servers

View all in Developer Tools View all alternatives
  • Mcp Server logoMcp Server

    MCP Server for ThoughtSpot - provides OAuth authentication and tools for querying data

    πŸ’» Developer Tools0 views
    Compare vs Mcp Server β†’
  • A
    Ai Netcafe

    Compare LLM cost & latency on one prompt, translate PDF keeping layout, cited research, make PPTX

    πŸ’» Developer Tools0 views
    Compare vs Ai Netcafe β†’
  • World Monitor logoWorld Monitor

    Live global intelligence: real-time markets, conflicts, country risk, chokepoints, energy. 39 tools.

    πŸ’» Developer Tools1 views
    Compare vs World Monitor β†’
  • Claude Task Master logoClaude Task Master

    AI-powered task management system for AI-driven development. Features PRD parsing, task expansion, multi-provider support (Claude, OpenAI, Gemini, Perplexity, xAI), and selective tool loading for optimized context usage.

    πŸ’» Developer Tools7 views
    Compare vs Claude Task Master β†’

Frequently Asked Questions about CSS SOTA

Add the following block to your claude_desktop_config.json under mcpServers: "mcpServers": { "css-sota": { "command": "npx", "args": ["-y", "CSS SOTA"] } }

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewCSS SOTA AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/css-sota?style=directory)](https://allmcps.com/mcp/css-sota)
HTML Embed
<a href="https://allmcps.com/mcp/css-sota"><img src="https://allmcps.com/api/badge/css-sota?style=directory" alt="CSS SOTA on AllMCPs" /></a>

Technical Specs & Signals

CategoryπŸ’»Developer Tools
More technical detailsExpand β–Ύ
TransportSTDIO
RuntimeNode.js
Views0
Unique ViewsTotal visits recorded for this listing page on AllMCPs.
Installs0
Installs & Copy ActionsTotal times users copied install commands or configuration snippets for this server.
27Quality signal: Emerging Β· 27/100How this signal is calculated β–Ύ
Server availabilityNot measured

Not scored for repo-hosted servers β€” we can't reach the running server, only its GitHub page. Hosted MCP endpoints are health-checked live.

Verified ownership8/20
Documentation & tools11/30
Adoption & activity1/15
Community engagement0/10

A guidance signal from public completeness & health data β€” not a user rating. New listings start lower and rise as they add docs, get verified, and grow adoption. Signals we can't observe for a listing are skipped, not counted against it.

β˜… FeaturedMoxie Docs MCP logo

Moxie Docs MCP

MCP & Agent Skills for Automated Documentation, and codebase conventions + context

Explore Server β†’

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge.

Free dofollow backlink: after claiming, verify your product site and place a dofollow AllMCPs badge β€” we recheck it stays live.

Claim & get free dofollow

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.

Explore more

More in πŸ’» Developer Tools β†’Best MCP servers for Developers β†’Alternatives to CSS SOTA β†’Install in Claude DesktopInstall in CursorInstall in VS Code