Skip to main content
Glama

browser-compat-mcp-server

Server Details

Browser compatibility and Baseline status for any web feature — offline, from bundled MDN data.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
cyanheads/browser-compat-mcp-server
GitHub Stars
0
Server Listing
browser-compat-mcp-server

TDQS

A4.4/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a distinct role: search features by keyword, retrieve a full record, check baseline safety, compare against browserslist targets, and list reference vocabulary. The slight overlap between check_baseline and get_feature is resolved by check_baseline being a batch safety summary and get_feature being a single detailed record.

Naming Consistency5/5

All tools follow the browsercompat_<verb>_<object> pattern with snake_case: check_baseline, compare_support, get_feature, list_reference, search_features. This is highly predictable and consistent.

Tool Count5/5

Five tools is well-scoped for a read-only browser compatibility server. Each tool covers a clear functional need without redundancy or bloat.

Completeness5/5

The tool set covers the full query workflow: discover features (search), retrieve details (get), evaluate shipping safety (check), compare against target environments (compare), and learn valid inputs (list). No obvious gaps exist for the stated purpose.

Available Tools

5 tools
browsercompat_check_baselineBrowsercompat Check BaselineA
Read-onlyIdempotent
Inspect

Check whether web features are safe to ship: Baseline state and the date it crossed, the browser and version that limits support, whether the feature is deprecated or discouraged, and the share of tracked global traffic that requiring it would exclude. Accepts up to 20 BCD keys or web-features ids in one call.

ParametersJSON Schema
NameRequiredDescriptionDefault
resolveNoWhen true, fall back to the search index and accept its single unambiguous top hit for each entry. Off by default so a typo returns a miss you can correct.
featuresYesUp to 20 entries, each a browser-compat-data key such as css.selectors.has or a web-features id such as has, 1 to 200 characters. An empty or longer entry is rejected against this schema; a whitespace-only entry returns invalid_feature_input. Call browsercompat_search_features first for any entry whose key you do not already know.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
resultsNoOne result per requested feature. A miss is a result, not a failure.
totalCountNoNumber of results returned.
attributionNoRequired attribution for the caniuse-derived usage figures in this response.
data_versionNoVintage of each bundled dataset behind this answer.
unresolvedNoticeNoNames the entries that did not resolve and how to find the right key.
all_widely_availableNoTrue only when every entry resolved and reports Baseline widely. A single miss forces false. Deprecation and discouragement do not enter this answer.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false, and idempotentHint=true. The description adds useful behavioral detail beyond those annotations by specifying exactly what the check returns: Baseline state, date crossed, limiting browser/version, deprecation/discouragement, and traffic exclusion share. It does not contradict the annotations.

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 deliver the core purpose, the output fields, and the key input constraint with no filler. The most important information is front-loaded, and every clause earns its place.

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 detailed input schema and an output schema present, the description does not need to explain return formats. It provides the purpose, the nature of the results, the batch limit, and the key-types accepted, making it complete enough for correct invocation and selection.

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 description coverage is 100%, so the schema already fully documents both parameters, including the resolve fallback behavior and the features array constraints. The description restates the batch size and key types but does not add 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 uses a specific verb ('Check whether web features are safe to ship') and enumerates the concrete outputs: Baseline state, crossing date, limiting browser/version, deprecation status, and excluded traffic share. This clearly distinguishes it from sibling tools like browsercompat_get_feature or browsercompat_search_features by its batch Baseline-assessment focus.

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?

The description gives clear context: use this when you need Baseline safety data for web features, and it states the batch limit of 20 keys. It does not explicitly name sibling alternatives or say when *not* to use this tool, but the purpose is unambiguous enough for an agent to select it appropriately.

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

browsercompat_compare_supportBrowsercompat Compare SupportA
Read-onlyIdempotent
Inspect

Compute whether a set of web features clears an explicit browserslist target query. Returns a per-feature verdict, the target browser and version that fails, the share of tracked traffic the targets cover, and unchecked_targets for every resolved target browser with no compatibility data. A feature is never reported as clearing a target the server could not evaluate.

ParametersJSON Schema
NameRequiredDescriptionDefault
resolveNoWhen true, fall back to the search index and accept its single unambiguous top hit for each entry. Off by default so a typo returns a miss you can correct rather than a confident answer about the wrong feature.
targetsYesA browserslist query, for example "defaults" or "> 0.5%, last 2 versions", 1 to 500 characters. Required: with no query browserslist would read config from the process working directory rather than from your project.
featuresYesUp to 20 entries, each a browser-compat-data key such as css.selectors.has or a web-features id such as has, 1 to 200 characters. An empty or longer entry is rejected against this schema; a whitespace-only entry returns invalid_feature_input. Call browsercompat_search_features first for any entry whose key you do not already know.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
resultsNoPer-feature verdicts against the resolved targets.
all_clearNoTrue only when every feature clears and unchecked_targets is empty.
query_echoNoThe targets query as the server parsed it.
totalCountNoNumber of feature results returned.
attributionNoRequired attribution for the caniuse-derived coverage figures in this response.
data_versionNoVintage of each bundled dataset behind this answer.
uncheckedNoticeNoNames the target agents that were not evaluated and their combined usage share.
targets_resolvedNoEvery browserslist token that was evaluated.
unchecked_targetsNoEvery target the server declined to claim a verdict for, with the reason.
target_coverage_percentNoShare of tracked global traffic the evaluated targets cover.
unchecked_coverage_percentNoShare of tracked global traffic the unevaluated targets cover.

TDQS

A4.1/5.0
Behavior5/5

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

Beyond the read-only/idempotent annotations, the description discloses non-obvious behavior: per-feature verdicts, the failing target browser and version, traffic-share coverage, unchecked_targets for resolved browsers without data, and the guarantee that unevaluable targets are never reported as cleared. This is exactly the behavioral context an agent needs.

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 dense sentences: action first, then return value highlights, then a one-sentence safety caveat. There is no filler, and the most important scoping information is front-loaded.

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?

For a tool with a rich input schema, annotations, and an output schema, the description adds the critical caveat about unevaluable targets and summarizes the return shape. An agent has everything needed to invoke the tool correctly.

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 description coverage is 100%, so the baseline is 3. The description reinforces the meaning of targets ('explicit browserslist target query') and features ('set of web features'), but it does not add parameter format or syntax details beyond what the input schema already documents.

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

Purpose4/5

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

The description opens with a specific verb and resource: it 'compute[s] whether a set of web features clears an explicit browserslist target query'. This clearly identifies the tool as an evaluation/verdict tool, though it never names sibling tools such as browsercompat_check_baseline to make the boundary explicit.

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

Usage Guidelines3/5

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

Usage context is implied by the focus on an explicit browserslist query and the required targets parameter, but the description gives no direct when-to-use/when-not-to-use guidance or alternative tool names. An agent comparing against sibling tools must infer when this tool is the right choice.

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

browsercompat_get_featureBrowsercompat Get FeatureA
Read-onlyIdempotent
Inspect

Get the compatibility record for one web feature: Baseline state and the date it crossed, deprecation and standards status, per-browser version added and removed with flags, vendor prefixes and partial-implementation notes, and the MDN and specification links. Accepts a BCD key such as css.selectors.has or a web-features id such as has; the response echoes which one it matched. An unresolved feature returns found: false with guidance rather than an error.

ParametersJSON Schema
NameRequiredDescriptionDefault
featureYesA browser-compat-data key such as css.selectors.has, or a web-features id such as has, 1 to 200 characters. An empty or longer string is rejected against this schema; a whitespace-only string returns invalid_feature_input. Call browsercompat_search_features first if you do not already know the key.
resolveNoWhen true, fall back to the search index and accept its single unambiguous top hit. Off by default so a typo returns a miss you can correct rather than a confident answer about the wrong feature.
include_runtimesNoAdd the bun, deno, nodejs, and oculus rows to support. Leave off for browser ship decisions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNoweb-features display name for the feature.
errorNoPresent when the call failed. Absent on success.
foundNoTrue when the feature string resolved to a tracked entry.
statusNoStandards status for the resolved key. Absent for webextensions keys, which record none, and when the id spans more than one key.
mdn_urlNoMDN reference page for the resolved key.
outcomeNofound when per-feature data was returned, no_compat_data when the entry is tracked but owns no browser-compat-data keys, miss when nothing matched.
supportNoOne row per reported browser. Absent when the id spans more than one browser-compat-data key.
baselineNoBaseline state for the resolved key, or the feature rollup when a web-features id resolved to more than one key.
guidanceNoWhat to do next on a miss or with no compat data.
spec_urlsNoSpecification URLs for the resolved key, always an array.
compat_keysNoPresent when the web-features id spans more than one browser-compat-data key. Call this tool again with one of them for the per-browser fields.
descriptionNoweb-features description, or the browser-compat-data description with tags stripped.
resolved_asNoHow the feature string was matched, or null on a miss.
data_versionNoVintage of each bundled dataset behind this answer.
limiting_browserNoAmong the Baseline core browsers, the one requiring the newest release. Absent until every core browser has shipped a resolvable version.
runtimesExcludedNoNotes that the feature carries server-runtime or XR data that was left out.
baselineNotMappedNoExplains why a resolved key carries no Baseline state.

TDQS

A4/5.0
Behavior4/5

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

Beyond the readOnly and idempotent annotations, the description clearly discloses important runtime behavior: an unresolved feature returns found: false with guidance rather than throwing an error, and the response echoes which identifier form matched. This tells the agent what to expect on both success and miss paths.

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 cover the output contents, accepted input forms, and error-like miss behavior in a front-loaded order. There is no filler or repetition of schema details; every sentence earns its place.

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?

The description is complete for a read-only single-feature lookup tool: it states the return contents, input conventions, example identifiers, and unresolved-key behavior. Parameter semantics are fully covered by the input schema, and return structure is covered by the output schema, so nothing needed to call the tool correctly is missing.

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?

Input schema coverage is 100%, so the schema already documents the parameters. The description adds real value on top by explaining accepted identifier formats (BCD key vs web-features id) with concrete examples and noting that the response echoes which one matched. This helps an agent construct the feature argument correctly.

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

Purpose4/5

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

The description names a specific verb and resource ('Get the compatibility record for one web feature') and enumerates exactly what the record contains. It does not explicitly differentiate itself from the sibling tools such as browsercompat_check_baseline or browsercompat_compare_support, but the singular 'one web feature' scope makes the core purpose unmistakable.

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

Usage Guidelines3/5

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

The description implies when to use it: when you need a full compatibility record for a single web feature. It also gives behavioral context about unresolved keys and accepted identifier forms, but it never explicitly says when not to use it or names alternatives like browsercompat_compare_support or browsercompat_list_reference.

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

browsercompat_list_referenceBrowsercompat List ReferenceA
Read-onlyIdempotent
Inspect

Enumerate the reference vocabulary this server uses: BCD namespaces, BCD browser ids, browserslist agent ids and their BCD counterparts, Baseline states, web-features groups, and ECMAScript snapshots. Use it to build valid inputs for the other tools and to see which target browsers can be evaluated.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYesWhich vocabulary to list: bcd_namespaces for the 12 top-level browser-compat-data namespaces, bcd_browsers for the 17 tracked browsers, browserslist_agents for the 19 browserslist ids mapped to browser-compat-data browsers, baseline_states for the 4 Baseline states, groups for the 103 web-features groups, or snapshots for the 11 ECMAScript snapshots.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
topicNoThe topic that was listed.
entriesNoEvery entry in the requested vocabulary.
attributionNoRequired attribution for the caniuse-derived usage figures in this response.
data_versionNoVintage of each bundled dataset behind this answer.

TDQS

A4.1/5.0
Behavior3/5

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

The annotations already cover read-only, idempotent, and non-open-world behavior. The description adds only that this is an enumeration tool and hints at its use for building inputs, which is more usage guidance than behavioral disclosure. It does not contradict annotations, but it also doesn't add significant behavioral detail beyond 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?

The description is two sentences: the first lists the vocabulary categories, the second explains the use case. Every word earns its place, and it is front-loaded with the action and resource.

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 output schema, rich annotations, and fully documented parameter, the description covers the tool's purpose, usage, and relation to other tools. Nothing an agent needs to invoke this tool correctly is missing.

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 description coverage is 100% and the topic parameter has a full enum with descriptions for each value. The description adds no parameter-specific meaning beyond the general point that the result is used to build valid inputs, so baseline 3 applies.

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 states a specific verb ('Enumerate') and resource ('reference vocabulary'), and then names the exact categories: BCD namespaces, browser ids, browserslist agents, Baseline states, groups, and snapshots. This clearly distinguishes it from siblings like check_baseline or get_feature, which operate on individual data rather than listing the vocabulary.

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 says to use this tool to build valid inputs for the other tools and to see which target browsers can be evaluated. This gives clear when-to-use context, but it does not name specific sibling alternatives or state when not to use it.

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

browsercompat_search_featuresBrowsercompat Search FeaturesA
Read-onlyIdempotent
Inspect

Find web features by plain name or keyword when the canonical key is unknown, across CSS, JavaScript, HTML, Web APIs, SVG, MathML, WebAssembly, and HTTP headers. Returns ranked matches with the BCD key, the web-features id, the Baseline state, a one-line support summary, and which field matched. Feed a result key into browsercompat_get_feature for the full record.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results to return, from 1 to 50.
queryYesPlain-language name or keyword, for example "container query" or "fromAsync".
baselineNoRestrict results to one Baseline state.
namespaceNoRestrict results to one top-level browser-compat-data namespace.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoThe limit that was applied.
errorNoPresent when the call failed. Absent on success.
shownNoNumber of results returned.
resultsNoRanked matches, best first. An empty array is a successful search with no hits.
truncatedNoTrue when matches exceeded limit.
totalCountNoMatches before the display cap was applied.
data_versionNoVintage of each bundled dataset behind this answer.
noMatchNoticeNoHow to broaden a search that matched nothing.
appliedFiltersNoFilters the server applied to this search.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare this as read-only and idempotent, so the safety profile is covered. The description adds behavioral detail by stating results are 'ranked matches' and enumerating exactly what each match includes, which goes beyond the structured annotations.

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 earning its place: purpose and scope, output contents, and handoff to the sibling tool. The most important decision signal, 'canonical key is unknown,' is front-loaded.

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?

The description is complete for a search tool with a rich output schema and fully documented parameters. It covers what the tool does, what it returns, and how to continue the workflow with browsercompat_get_feature, leaving no critical gap for an agent.

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 description coverage is 100%, so the input schema already documents query, limit, baseline, and namespace. The description reinforces that query is a plain-language name or keyword, but it does not add meaningful parameter semantics 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 states a specific verb and resource: 'Find web features by plain name or keyword when the canonical key is unknown.' It clearly distinguishes itself from browsercompat_get_feature, which is the exact-key lookup, and lists the covered technology areas and return fields.

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 defines when to use this tool: when the canonical key is unknown. It also routes the caller to browsercompat_get_feature for the full record, giving a clear alternative action after search results are returned.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • First observedbrowsercompat_check_baseline
    • First observedbrowsercompat_compare_support
    • First observedbrowsercompat_get_feature
    • First observedbrowsercompat_list_reference
    • First observedbrowsercompat_search_features

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    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.
    2
    MIT
  • A
    license
    Not graded
    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.
    50 npm
    333
    ISC
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.