CSS SOTA
REMOTE · CSS-SOTA-MCP.LUSRODRI.WORKERS.DEV · SCANNED SEP 27
What CSS you can actually ship today, from live Baseline data and MDN browser-compat-data.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security46
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 6 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS enforcement could not be verified: the plaintext port answered with HTTP 405, which proves neither a plaintext path nor enforcement. View diagnostics → Unverified
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability66
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 1749 tokens (~291/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 7 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
How do I install the CSS SOTA MCP server?
CSS SOTA is a hosted endpoint at https://css-sota-mcp.lusrodri.workers.dev/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · css-sota-mcp.lusrodri.workers.dev
claude mcp add --transport http lusrodri-css-sota-mcp 'https://css-sota-mcp.lusrodri.workers.dev/mcp'
{
"mcpServers": {
"lusrodri-css-sota-mcp": {
"url": "https://css-sota-mcp.lusrodri.workers.dev/mcp"
}
}
} {
"servers": {
"lusrodri-css-sota-mcp": {
"type": "http",
"url": "https://css-sota-mcp.lusrodri.workers.dev/mcp"
}
}
} [mcp_servers.lusrodri-css-sota-mcp] url = "https://css-sota-mcp.lusrodri.workers.dev/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"lusrodri-css-sota-mcp": {
"type": "remote",
"url": "https://css-sota-mcp.lusrodri.workers.dev/mcp",
"enabled": true
}
}
} openclaw mcp add lusrodri-css-sota-mcp --url 'https://css-sota-mcp.lusrodri.workers.dev/mcp' --transport streamable-http
mcp_servers:
lusrodri-css-sota-mcp:
url: "https://css-sota-mcp.lusrodri.workers.dev/mcp" {
"McpServers": {
"lusrodri-css-sota-mcp": {
"Transport": "http",
"Url": "https://css-sota-mcp.lusrodri.workers.dev/mcp"
}
}
} assistant mcp add lusrodri-css-sota-mcp -t streamable-http -u 'https://css-sota-mcp.lusrodri.workers.dev/mcp'
{
"mcpServers": {
"lusrodri-css-sota-mcp": {
"type": "http",
"url": "https://css-sota-mcp.lusrodri.workers.dev/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 1 Sept 26 0
- Stability: 0.97 → pass security
- 31 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 26 Aug 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 11 Aug 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 3 Aug 26 0
- Stability: unverified → 0.03 ▲ functional
- 2 Aug 26 0
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 27 Sept 2026 · Probed https://css-sota-mcp.lusrodri.workers.dev/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=lusrodri.workers.dev | CN=WE1,O=Google Trust Services,C=US | 2 Aug 2026 | 31 Oct 2026 | ECDSA 256 | ECDSA-SHA256 | e0765bd94be260750eb2c816fd0bea84 |
| SANs: lusrodri.workers.dev, *.lusrodri.workers.dev | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of css-sota-mcp.lusrodri.workers.dev. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| dev. | present | 60074 | 8 | Verified |
| workers.dev. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | no-referrer |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://css-sota-mcp.lusrodri.workers.dev/mcp | Verified | 200 | |
| http (plaintext) | http://css-sota-mcp.lusrodri.workers.dev/mcp | Inconclusive | 405 |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
audit_css Audit CSS against browser targets ~369
Scan CSS source and report every feature in it that does not meet a browser support target. Targets are either a Baseline level ("baseline-widely", "baseline-newly") or an explicit browser list ("chrome 120, safari 17.4, firefox 128"). Reports the offending line, what is wrong (unsupported, too old, prefix-only, partial), and the minimum version that would work. Browserslist queries like "last 2 versions" are not supported. IMPORTANT when reading Baseline-level results: Baseline describes a whole feature, and a feature can be "Limited" because one part of it is not interoperable while the exact declaration you wrote works everywhere. "Cursor styles" is Limited, so `cursor: pointer` is reported — yet it only lacks iOS Safari, where a cursor is meaningless rather than broken. Each finding therefore also names the browsers missing that specific key, or says that the key ships everywhere and the status comes from elsewhere in the feature. Read that line before removing anything: a key that ships everywhere is still not proof the code works, since it may be inert without the parts that do not.
| Name | Type | Req | Description |
|---|---|---|---|
| include_passing | boolean | – | Also list the features that meet the target, not just the ones that fail. |
| source | string | yes | The CSS source to audit. Malformed CSS is tolerated and scanned best-effort. |
| target | string | – | Support target. Either a Baseline level ("baseline-widely", "baseline-newly") or a comma-separated browser list ("chrome 120, safari 17.4, firefox 128"). Known browsers: chrome, chrome_android, edge,… |
| Name | Type | Req | Description |
|---|---|---|---|
| failing | integer | yes | – |
| featuresChecked | integer | yes | – |
| findings | array | yes | – |
| target | string | yes | – |
| unknown | integer | yes | – |
No examples provided.
check_support Check CSS browser support ~242
Look up which browser versions support a CSS property, value, selector, at-rule or function, from MDN browser-compat-data bundled with this server (no network call). Give either a BCD key ("css.properties.anchor-name") or a property with an optional value ("display" + "grid"). Also reports vendor prefixes, partial implementations and the Baseline status of the feature the key belongs to.
| Name | Type | Req | Description |
|---|---|---|---|
| all_browsers | boolean | – | Include every browser in the dataset (Opera, Samsung Internet, WebView, IE) rather than only the seven that determine Baseline. |
| bcd_key | string | – | A browser-compat-data key, e.g. "css.properties.text-wrap-style", "css.selectors.has", "css.at-rules.container", "css.types.color.color-mix". Takes precedence over property/value. |
| property | string | – | A CSS property name, e.g. "display", "anchor-name". Used when bcd_key is absent. |
| value | string | – | A value for that property, e.g. "grid" for display. Falls back to the property's own support when the value is not tracked separately. |
| Name | Type | Req | Description |
|---|---|---|---|
| baseline | – | yes | – |
| deprecated | boolean | yes | – |
| experimental | boolean | yes | – |
| featureId | – | yes | – |
| key | – | yes | – |
| mdnUrl | – | yes | – |
| resolved | boolean | yes | – |
| spec | – | yes | – |
| suggestions | array | yes | – |
| support | object | yes | – |
No examples provided.
dont_make_me_think Don't Make Me Think ~294
UI/UX guidelines and a review of a page against them. mode="guidelines" returns the principles — Nielsen's 10 heuristics, Hick's and Fitts's laws, WCAG 2.2, neurodiversity-inclusive design, motion and microinteractions (including when Lottie or Rive are worth their bundle cost), SVG craft and animation, light-first theming, lightness and responsiveness — optionally filtered by topic. Read them BEFORE designing or building UI. mode="review" statically reviews supplied HTML and CSS, or a URL, and reports what violates which principle. The review reads source and does not render it, so it cannot measure computed contrast, real target sizes, or where focus lands — it catches what is visible in the markup, which is most of what actually goes wrong.
| Name | Type | Req | Description |
|---|---|---|---|
| css | string | – | CSS source to review. |
| html | string | – | HTML source to review. |
| mode | string | – | guidelines: return the principles to design against. review: check HTML/CSS or a URL against them. |
| topic | string | – | Restrict guidelines to one area. Omit for all of them. Ignored when mode is "review". |
| url | string | – | Page to fetch and review. Only the HTML and its inline styles are read — linked stylesheets are not followed, so pass `css` as well for a full review. |
| Name | Type | Req | Description |
|---|---|---|---|
| counts | object | yes | – |
| findings | array | yes | – |
| mode | string | yes | – |
| principles | array | yes | – |
| reviewed | array | yes | – |
| version | string | yes | – |
No examples provided.
get_feature Get CSS feature details ~150
Get everything known about one CSS feature: Baseline status and dates, the browser versions it shipped in, its description, spec links, Web Platform Tests scores, usage, and MDN reference prose. Accepts a web-features id ("container-queries") or a display name ("Container queries"). Use search_css_features first if you do not know the id.
| Name | Type | Req | Description |
|---|---|---|---|
| feature_id | string | yes | The web-features id, e.g. "anchor-positioning", "container-queries", "subgrid". A display name such as "Anchor positioning" also works. |
| include_mdn | boolean | – | Fetch MDN reference prose for the feature. Set false for a faster, terser answer. |
| Name | Type | Req | Description |
|---|---|---|---|
| baseline | – | yes | – |
| baselineHighDate | – | yes | – |
| baselineLowDate | – | yes | – |
| bcdKeys | array | yes | – |
| browsers | object | yes | – |
| caniuse | array | yes | – |
| description | – | yes | – |
| found | boolean | yes | – |
| id | string | yes | – |
| mdnUrl | – | yes | – |
| name | string | yes | – |
| spec | array | yes | – |
| suggestions | array | yes | – |
No examples provided.
search_css_features Search CSS features ~268
Search CSS features on the Web Platform Dashboard (webstatus.dev) by keyword, Baseline status, and the date range in which they reached Baseline. Use this to answer questions like "which CSS features for scroll animations are Baseline yet?" or "what limited-support CSS is there for anchoring?". Returns live Baseline data. For the browser versions a specific property shipped in, use check_support instead.
| Name | Type | Req | Description |
|---|---|---|---|
| baseline | string | – | Filter by Baseline status: "widely" (interoperable for 30+ months, safe to use), "newly" (interoperable across all major engines recently), or "limited" (not yet available across all major engines). |
| limit | integer | – | Maximum number of features to return. |
| query | string | – | Free-text search over feature names and descriptions, e.g. "container queries", "anchor", "scroll". Omit to list all CSS features matching the other filters. |
| since | string | – | Only features that became Baseline Newly available on or after this date (YYYY-MM-DD). Combined with `baseline`, this means "went Newly in this range AND is status X today". |
| until | string | – | Only features that became Baseline Newly available on or before this date (YYYY-MM-DD). |
| Name | Type | Req | Description |
|---|---|---|---|
| features | array | yes | – |
| query | string | yes | The dashboard query that was executed. |
| total | integer | – | Total matches upstream, across all pages. |
| truncated | boolean | yes | Whether more matches exist than were returned. |
No examples provided.
whats_new What's new in CSS ~200
List CSS features that crossed a Baseline threshold within a date range, newest first. Use this to answer "what CSS can I start using now?", to write release notes, or to catch up after time away. Defaults to the last 180 days. The date is when a feature became interoperable across browsers, which is usually well after it first shipped in one.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum number of features to return. |
| since | string | – | Start of the window (YYYY-MM-DD), inclusive. Defaults to 180 days before today. |
| transition | string | – | Which threshold was crossed in the window: "newly" for features that became interoperable across all major engines (the usual meaning of new), "widely" for those that reached the 30-month Widely avai… |
| until | string | – | End of the window (YYYY-MM-DD), inclusive. Defaults to today. |
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | yes | – |
| features | array | yes | – |
| since | string | yes | – |
| truncated | boolean | yes | – |
| until | string | yes | – |
No examples provided.
What is the CSS SOTA MCP server?
CSS SOTA is an MCP server listed in the public MCP registry as io.github.LuSrodri/css-sota-mcp. What CSS you can actually ship today, from live Baseline data and MDN browser-compat-data. This page covers its hosted endpoint (https://css-sota-mcp.lusrodri.workers.dev/mcp).
Is the CSS SOTA MCP server safe to use?
CSS SOTA scores 72 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the CSS SOTA MCP server expose?
CSS SOTA exposes 6 tools: search_css_features, whats_new, get_feature, check_support, audit_css, dont_make_me_think. Their descriptions and schemas cost roughly 1,523 tokens of context every time the server is loaded.
Does the CSS SOTA MCP server require authentication?
No. We connected to CSS SOTA without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the CSS SOTA MCP server still maintained?
CSS SOTA is still listed as active in the MCP registry. We last reached this channel on 27 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.