Skip to main content
Glama

CSS SOTA

Server Details

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

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
LuSrodri/css-sota-mcp
GitHub Stars
0
Server Listing
css-sota-mcp

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.5/5 across 6 of 6 tools scored.

Server CoherenceA
Disambiguation4/5

Most tools have clearly distinct purposes: audit_css checks a stylesheet, check_support looks up browser versions for a specific feature, search_css_features finds features by keyword, and whats_new lists recent Baseline crossings. However, check_support and get_feature both provide browser support info, and get_feature also includes shipped versions, which could cause an agent to pick the wrong one for a quick lookup.

Naming Consistency4/5

All tool names use lowercase snake_case, which is consistent. Most follow a verb_noun pattern (audit_css, check_support, get_feature, search_css_features), but 'dont_make_me_think' is an idiomatic phrase and 'whats_new' is a question-like phrase, breaking the strict verb_noun consistency.

Tool Count5/5

With 6 tools, the server is well-scoped for its purpose of providing CSS support and Baseline information. Each tool covers a distinct aspect (auditing, lookup, search, news, deep-dive, and UX review), and none feels redundant or missing within the stated domain.

Completeness5/5

The tool set provides a complete workflow: audit a stylesheet, check specific support, search for features, get detailed feature info, and see what's new. There are no obvious gaps for a CSS support and Baseline status server, and the additional UI/UX review tool expands coverage without creating dead ends.

Available Tools

6 tools
audit_cssAudit CSS against browser targetsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesThe CSS source to audit. Malformed CSS is tolerated and scanned best-effort.
targetNoSupport 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, firefox, firefox_android, safari, safari_ios, opera, opera_android, samsunginternet_android, webview_android, ie.baseline-widely
include_passingNoAlso list the features that meet the target, not just the ones that fail.

Output Schema

ParametersJSON Schema
NameRequiredDescription
targetYes
failingYes
unknownYes
findingsYes
featuresCheckedYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already mark this as read-only, and the description adds substantial behavioral detail: it reports the offending line, error type, and minimum working version. It also warns about the Baseline 'Limited' nuance and instructs the agent to read the browsers-missing line before removing anything, which is critical for correct use.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but front-loaded with the core action, then progresses through target syntax, output details, and a crucial interpretation warning. Each sentence contributes necessary context, though it could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a rich description, good schema coverage, and an output schema present, the tool is fully specified for an agent to invoke it correctly. It even includes a subtle caveat about interpreting Baseline 'Limited' status that could otherwise lead to false confidence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All parameters already have schema descriptions (100% coverage), so the baseline is 3. The description adds value by explaining the exact target syntax and clarifying that malformed CSS is tolerated for the source parameter, which goes beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Scan CSS source and report every feature...' which clearly identifies a verb, resource, and output. It distinguishes from sibling tools by focusing on auditing an entire CSS source against browser targets rather than querying individual features.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states accepted target formats and calls out that Browserslist queries are not supported. However, it does not name alternative tools for when a user might prefer checking a single feature, so it falls short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_supportCheck CSS browser supportA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueNoA value for that property, e.g. "grid" for display. Falls back to the property's own support when the value is not tracked separately.
bcd_keyNoA 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.
propertyNoA CSS property name, e.g. "display", "anchor-name". Used when bcd_key is absent.
all_browsersNoInclude every browser in the dataset (Opera, Samsung Internet, WebView, IE) rather than only the seven that determine Baseline.

Output Schema

ParametersJSON Schema
NameRequiredDescription
keyYes
specYes
mdnUrlYes
supportYes
baselineYes
resolvedYes
featureIdYes
deprecatedYes
suggestionsYes
experimentalYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, and the description reinforces a safe local read by stating 'no network call' and 'bundled with this server'. It also discloses output characteristics (vendor prefixes, partial implementations, Baseline status). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each carrying essential information: purpose, input modes, and output extras. No redundant phrases.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description doesn't need to detail return structure. It covers data source, input modes, precedence, and key output categories, making it complete for a lookup tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions already cover all four parameters (100% coverage), so baseline is 3. The description adds meaningful relational semantics: bcd_key takes precedence over property/value, and value falls back to property support. This elevates it above the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb phrase 'Look up which browser versions support' with a clear resource (MDN browser-compat-data), and enumerates the queryable entities (CSS property, value, selector, at-rule, function). This clearly distinguishes it from sibling tools like search_css_features or audit_css.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the two input modes (BCD key or property/value) and the precedence relationship. It does not explicitly contrast with sibling tools, but the scope is clear enough that an agent would know when to invoke it for support lookups.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dont_make_me_thinkDon't Make Me ThinkA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cssNoCSS source to review.
urlNoPage 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.
htmlNoHTML source to review.
modeNoguidelines: return the principles to design against. review: check HTML/CSS or a URL against them.guidelines
topicNoRestrict guidelines to one area. Omit for all of them. Ignored when mode is "review".

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
countsYes
versionYes
findingsYes
reviewedYes
principlesYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description transparently discloses that review is static, does not render the page, cannot measure computed contrast, real target sizes, or focus placement, and that linked stylesheets are not followed. These limitations are exactly the kind of behavioral context that matters for correct invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than typical but every clause adds value. It front-loads the core purpose and then details mode differences and limitations. A slight trimming of parenthetical examples could improve conciseness, but the structure remains logical and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (two modes, five parameters, output schema), the description covers what each mode returns, how to filter, and what the static review can and cannot detect. With no output schema details provided, the description adequately explains behavior without needing to list return fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the schema already covers all parameters, the description adds crucial semantics: mode='guidelines' vs 'review', topic is ignored in review mode, and url only reads HTML and inline styles, requiring css to be passed separately. This goes beyond the schema's prose and meaningfully improves parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states dual functions: returning UI/UX principles (guidelines mode) and reviewing HTML/CSS/URL against them (review mode). It names specific resources and behavior, and naturally distinguishes itself from CSS-feature siblings like audit_css or check_support by focusing on UX principles and page review.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use each mode: 'Read them BEFORE designing or building UI' for guidelines and 'statically reviews supplied HTML and CSS, or a URL' for review. It also advises passing css along with url for full coverage. It lacks an explicit 'when not to use' or alternative tool mention, but the context is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_featureGet CSS feature detailsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
feature_idYesThe web-features id, e.g. "anchor-positioning", "container-queries", "subgrid". A display name such as "Anchor positioning" also works.
include_mdnNoFetch MDN reference prose for the feature. Set false for a faster, terser answer.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
specYes
foundYes
mdnUrlYes
bcdKeysYes
caniuseYes
baselineYes
browsersYes
descriptionYes
suggestionsYes
baselineLowDateYes
baselineHighDateYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, ensuring the agent knows this is a safe read operation. The description adds the dual input forms (id or display name) and lists return categories, but these are already covered by the schema and output schema. It discloses no side effects or unexpected behaviors beyond what structured fields provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core purpose and no filler. The second sentence efficiently explains input format and provides referral guidance, making every word earned.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 100% schema coverage, presence of readOnly annotation, and an output schema, the description is fully adequate. It covers purpose, input format, and usage guidance without unnecessary repetition, leaving no critical gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already fully documents both parameters (feature_id and include_mdn) with descriptions, examples, and defaults. The description does not add any parameter meaning beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the verb 'Get' and resource 'one CSS feature' while enumerating exact data returned (Baseline status, browser versions, spec links, etc.). It clearly distinguishes this tool from the sibling search_css_features, as it targets a single known feature rather than searching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs 'Use search_css_features first if you do not know the id,' providing a clear alternative for a common scenario. It also implies this tool is for comprehensive detail retrieval on a single feature, contrasting with the search tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_css_featuresSearch CSS featuresA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of features to return.
queryNoFree-text search over feature names and descriptions, e.g. "container queries", "anchor", "scroll". Omit to list all CSS features matching the other filters.
sinceNoOnly 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".
untilNoOnly features that became Baseline Newly available on or before this date (YYYY-MM-DD).
baselineNoFilter 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).

Output Schema

ParametersJSON Schema
NameRequiredDescription
queryYesThe dashboard query that was executed.
totalNoTotal matches upstream, across all pages.
featuresYes
truncatedYesWhether more matches exist than were returned.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and open-world behavior. The description adds 'Returns live Baseline data,' which clarifies the data source is real-time and not cached, and clarifies the meaning of Baseline through examples. This goes beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences: purpose, usage examples, and alternative. No wasted words; information is front-loaded and directly relevant to tool selection and invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 5 parameters, read-only/open-world annotations, and presence of an output schema, the description covers the essential aspects: what it does, when to use it, the live-data nature, and an explicit alternative. It does not need to explain return values since an output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage of parameter descriptions, so the schema does the heavy lifting. The description only summarizes the filter dimensions (keyword, baseline status, date range) without adding new syntax or format details beyond what the schema already specifies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches CSS features on the Web Platform Dashboard with specific filters (keyword, Baseline status, date range). It distinguishes itself from check_support by explicitly naming that sibling for version-specific queries, and it provides concrete example questions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly describes when to use this tool ('Use this to answer questions like...') and points to an alternative (check_support) for a different use case. This gives clear guidance on tool selection among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whats_newWhat's new in CSSA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of features to return.
sinceNoStart of the window (YYYY-MM-DD), inclusive. Defaults to 180 days before today.
untilNoEnd of the window (YYYY-MM-DD), inclusive. Defaults to today.
transitionNoWhich 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 available mark, or "any" for both.newly

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
sinceYes
untilYes
featuresYes
truncatedYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations indicate a read-only operation, and the description adds valuable behavioral context beyond that: it mentions the default window, ordering (newest first), and the semantic that the date is the interop date rather than first-ship date. This helps set expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, with the first stating the action, the second giving usage, and the third providing default behavior and a key semantic caveat. Every sentence earns its place and there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple nature of the tool, the comprehensive schema, annotations, and the presence of an output schema, the description fully covers purpose, usage, and an important nuance. It does not need to explain return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with all parameters described in detail. The description reinforces the date-range and threshold concepts but does not need to restate parameter specifics. It meets the baseline for adequate semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'List CSS features that crossed a Baseline threshold within a date range, newest first.' It specifies a distinct verb and resource plus a date-range scope, which differentiates it from siblings like check_support and search_css_features.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly names use cases: 'to answer "what CSS can I start using now?", to write release notes, or to catch up after time away.' This provides clear context, though it does not explicitly name alternative tools for other scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    Enables checking web feature compatibility with Baseline standards, analyzing HTML, CSS, and JavaScript code to provide detailed reports on Baseline status, browser support, and recommendations.
    Last updated
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    Provides up-to-date CSS documentation and browser compatibility data from MDN through natural language queries. Features intelligent caching and supports all CSS properties, selectors, functions, and concepts with automatic normalization.
    Last updated
    30
    332
    ISC
  • A
    license
    A
    quality
    D
    maintenance
    Provides intelligent CSS/JS feature compatibility checking with configurable browser targets, polyfill support, and smart project scanning. Enables developers to automatically detect browser compatibility issues and get actionable remediation steps with build tool configurations.
    Last updated
    5
    25
    3
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.