Skip to main content
Glama

check_css_browser_support

Check browser compatibility for CSS properties using MDN data to ensure cross-browser functionality and avoid implementation issues.

Instructions

Checks browser support for specific CSS properties using MDN data and provides detailed compatibility information.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
css_propertyYesCSS property name to check browser support for
include_experimentalNoInclude experimental/draft features in results

Implementation Reference

  • Main execution handler for the check_css_browser_support tool. Fetches MDN browser support data, generates recommendation, and returns JSON-formatted response with safety assessment.
    async (args: { css_property: string; include_experimental?: boolean }) => { try { const { css_property, include_experimental = false } = args; const supportInfo: BrowserSupportInfo = await fetchBrowserSupportFromMDN( css_property, include_experimental ); const result = { property: css_property, browser_support: supportInfo, recommendation: generateBrowserSupportRecommendation(supportInfo), safe_to_use: supportInfo.overall_support >= 80, }; return { content: [ { type: "text" as const, text: JSON.stringify(result, null, 2), }, ], }; } catch (error) { return { content: [ { type: "text" as const, text: JSON.stringify( { error: error instanceof Error ? error.message : "Unknown error", }, null, 2 ), }, ], }; } }
  • Zod input schema defining parameters: css_property (string, required) and include_experimental (boolean, optional).
    css_property: z .string() .describe("CSS property name to check browser support for"), include_experimental: z .boolean() .optional() .describe("Include experimental/draft features in results"), },
  • src/index.ts:171-224 (registration)
    MCP server.tool registration call for 'check_css_browser_support' tool, including name, description, schema, and handler function.
    server.tool( "check_css_browser_support", "Checks browser support for specific CSS properties using MDN data and provides detailed compatibility information.", { css_property: z .string() .describe("CSS property name to check browser support for"), include_experimental: z .boolean() .optional() .describe("Include experimental/draft features in results"), }, async (args: { css_property: string; include_experimental?: boolean }) => { try { const { css_property, include_experimental = false } = args; const supportInfo: BrowserSupportInfo = await fetchBrowserSupportFromMDN( css_property, include_experimental ); const result = { property: css_property, browser_support: supportInfo, recommendation: generateBrowserSupportRecommendation(supportInfo), safe_to_use: supportInfo.overall_support >= 80, }; return { content: [ { type: "text" as const, text: JSON.stringify(result, null, 2), }, ], }; } catch (error) { return { content: [ { type: "text" as const, text: JSON.stringify( { error: error instanceof Error ? error.message : "Unknown error", }, null, 2 ), }, ], }; } } );
  • Core helper function that fetches or simulates browser support data for a given CSS property from MDN sources, with caching and fallback logic.
    export async function fetchBrowserSupportFromMDN( cssProperty: string, includeExperimental: boolean = false ): Promise<BrowserSupportInfo> { try { const mdnData = await fetchMDNData(cssProperty); const supportInfo: BrowserSupportInfo = { overall_support: mdnData.browserSupport?.overall_support || getBrowserSupportPercentage(cssProperty), browsers: mdnData.browserSupport?.browsers || { chrome: { version: "90+", support: "full" }, firefox: { version: "88+", support: "full" }, safari: { version: "14+", support: "full" }, edge: { version: "90+", support: "full" }, }, experimental_features: includeExperimental ? getExperimentalFeatures(cssProperty) : [], }; return supportInfo; } catch { // Fallback to static data return { overall_support: getBrowserSupportPercentage(cssProperty), browsers: { chrome: { version: "90+", support: "full" }, firefox: { version: "88+", support: "full" }, safari: { version: "14+", support: "full" }, edge: { version: "90+", support: "full" }, }, experimental_features: includeExperimental ? getExperimentalFeatures(cssProperty) : [], }; } }
  • Helper function that generates human-readable recommendation text based on browser support percentage.
    export function generateBrowserSupportRecommendation(supportInfo: any): string { const { overall_support } = supportInfo; if (overall_support >= 95) { return 'Excellent browser support. Safe to use in production without fallbacks.'; } else if (overall_support >= 85) { return 'Good browser support. Consider fallbacks for legacy browsers if needed.'; } else if (overall_support >= 70) { return 'Moderate browser support. Provide fallbacks for older browsers.'; } else { return 'Limited browser support. Consider alternative approaches or polyfills.'; } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Luko248/css-first'

If you have feedback or need assistance with the MCP directory API, please join our Discord server