Skip to main content
Glama

CSS First

An advanced MCP (Model Context Protocol) server that provides intelligent, context-aware CSS-first solutions for UI implementation tasks. Features semantic analysis, framework detection, and intelligent ranking with direct MDN integration.

โ€ข Glama Directory

Setup

Add to your MCP configuration:

Cursor

Add to your MCP settings:

{ "mcpServers": { "css-first": { "command": "npx", "args": ["-y", "@depthark/css-first"] } } }

Windsurf

Configure in your MCP settings:

{ "mcpServers": { "css-first": { "command": "npx", "args": ["-y", "@depthark/css-first"] } } }

GitHub Copilot / VS Code

Add to your MCP configuration:

{ "mcpServers": { "css-first": { "command": "npx", "args": ["-y", "@depthark/css-first"] } } }

Claude Code CLI

Add the MCP server:

claude mcp add css-first npx -y @depthark/css-first

Codex

Add config to your mcp_servers.toml:

[mcp_servers.css-first] command = "npx" args = ["-y", "@depthark/css-first"]

Related MCP server: McpDocServer

Usage

After adding the configuration:

  1. Restart your MCP client

  2. Ask CSS questions like:

    • "Create a responsive card layout"

    • "Center a div vertically and horizontally"

    • "Add dark mode support"

    • "Make a sticky header"

    • "Create organic rounded corners with corner-shape"

    • "Design modern buttons with superellipse curves"

๐Ÿš€ Key Features

Intelligent Analysis

  • Semantic Intent Recognition: Understands user intent through advanced pattern matching (layout, animation, spacing, etc.)

  • Confidence Scoring: Provides transparency with confidence levels for suggestions

  • Context-Aware Keywords: Enhanced keyword extraction with semantic understanding

Project Context Awareness

  • Framework Detection: Automatically detects React, Vue, Angular, Svelte projects

  • CSS Framework Recognition: Supports Tailwind, Bootstrap, Material-UI, Chakra UI

  • Build Tool Integration: Recognizes Webpack, Vite, Parcel, Rollup environments

  • Constraint Analysis: Understands project constraints (performance, accessibility, responsive)

Enhanced MDN Integration

  • Direct MDN Parsing: Pulls property data straight from MDN pages

  • Performance Caching: 1-hour intelligent caching for improved response times

  • Real-time Browser Support: Compatibility data derived from MDN content

Intelligent Ranking

  • Relevance Scoring: Suggestions ranked by intent match, browser support, and framework compatibility

  • Category-Prioritized Search: Focuses on most relevant CSS feature categories

  • Framework-Specific Recommendations: Tailored advice for your tech stack

User Experience

  • Consent-Driven Workflow: User approval required before property recommendations

  • Detailed Analysis: Optional semantic analysis breakdown for transparency

  • Implementation Guidance: Framework-specific best practices and code examples

Development Installation

For contributors and advanced users who want to modify the source:

git clone https://github.com/luko248/css-first cd css-first pnpm install pnpm run build

Development Usage

For development/testing with local builds:

{ "mcpServers": { "@depthark/css-first": { "command": "node", "args": ["/absolute/path/to/css-first/dist/cli.js"] } } }

Available Tools

1. suggest_css_solution โญ

Enhanced CSS-first solution suggester with semantic analysis, context awareness, and intelligent ranking.

Parameters:

  • task_description (string): Description of the UI task or problem to solve

  • preferred_approach (optional): 'modern', 'compatible', or 'progressive'

  • target_browsers (optional): Array of target browsers/versions

  • project_context (optional): Project context (framework, existing CSS patterns, constraints) NEW

  • include_analysis (optional): Include semantic analysis details in response NEW

  • baseline (optional): CSS Baseline availability filter: "Widely Available", "Newly Available", "Limited Availability", "Experimental" NEW

  • max_suggestions (optional): Limit number of suggestions (default 3)

  • response_detail (optional): "compact" (default) or "full" response fields

    • compact returns minimal fields (property, description, support_level, baseline, overall_support, mdn_url)

Examples:

Basic Usage:

{ "task_description": "I need to center a div horizontally and vertically", "preferred_approach": "modern" }

With Project Context:

{ "task_description": "Create a responsive card layout with hover animations", "preferred_approach": "modern", "project_context": "React project using Tailwind CSS, targeting Chrome 90+, performance-critical", "include_analysis": true }

With Baseline Filter:

{ "task_description": "Create a tooltip", "baseline": "Experimental" }

Full Response Fields:

{ "task_description": "Create a tooltip", "response_detail": "full", "max_suggestions": 5 }

Response includes:

  • Intelligently ranked CSS suggestions

  • Framework-specific recommendations

  • Semantic analysis breakdown (optional)

  • Confidence scoring and intent detection

  • Baseline availability labels with emoji color tags

  • Support level derived from MDN browser data

  • Compact responses by default to reduce token usage

2. check_css_browser_support

Checks browser support for specific CSS properties using MDN data.

Parameters:

  • css_property (string): CSS property name to check

  • include_experimental (optional boolean): Include experimental features

Example:

{ "css_property": "flexbox", "include_experimental": false }

3. get_css_property_details

Retrieves comprehensive information about a CSS property from MDN documentation.

Parameters:

  • css_property (string): CSS property name to get details for

  • include_examples (optional boolean): Include code examples

Example:

{ "css_property": "grid", "include_examples": true }

4. confirm_css_property_usage

Confirms user consent for using a specific CSS property and provides implementation guidance.

Parameters:

  • css_property (string): CSS property name user wants to use

  • user_consent (boolean): User consent to use this CSS property

  • fallback_needed (optional boolean): Whether fallback solutions are needed

Example:

{ "css_property": "container-queries", "user_consent": true, "fallback_needed": true }

๐Ÿง  How It Works

Intelligent Analysis Pipeline

  1. Semantic Intent Recognition: Advanced regex patterns analyze task descriptions to understand user intent (layout, animation, spacing, responsive, visual, interaction)

  2. Project Context Analysis: Detects frameworks, CSS libraries, build tools, and constraints from project context string

  3. MDN Integration:

    • Direct MDN parsing for property details and support data

    • Caching: 1-hour intelligent cache for performance

  4. Intelligent Ranking: Scores suggestions based on:

    • Intent match relevance

    • Browser support level

    • Framework compatibility

    • User confidence multiplier

  5. Context-Aware Recommendations: Provides framework-specific guidance and best practices

  6. User Consent & Implementation: Consent-driven workflow with detailed implementation guidance

Example Analysis Flow

Input: "Create a responsive navigation menu with smooth animations" โ†“ Intent Detection: layout + responsive + animation (85% confidence) โ†“ Context: React + Tailwind detected โ†“ Ranked Suggestions: 1. Flexbox layout (95% support) + CSS transitions 2. CSS Grid (92% support) + transform animations 3. Container queries (75% support) with fallbacks โ†“ Framework Recommendations: "Use Tailwind's responsive prefixes", "Consider React transition components"

Development

# Install dependencies pnpm install # Build for development pnpm run build:tsc # Watch for changes pnpm run dev # Build for production pnpm run build # Run tests pnpm test # Lint code pnpm run lint

๐Ÿ“ Project Structure

src/ โ”œโ”€โ”€ index.ts # Main MCP server with enhanced tools โ”œโ”€โ”€ services/ โ”‚ โ”œโ”€โ”€ mdnApi.ts # Legacy API exports and backwards compatibility โ”‚ โ””โ”€โ”€ css/ โ”‚ โ”œโ”€โ”€ index.ts # CSS services entry point โ”‚ โ”œโ”€โ”€ types.ts # TypeScript interfaces and enums โ”‚ โ”œโ”€โ”€ mdnClient.ts # MDN client and parser โ”‚ โ”œโ”€โ”€ suggestions.ts # Semantic analysis and intelligent ranking โ”‚ โ”œโ”€โ”€ guidance.ts # Implementation guidance and recommendations โ”‚ โ”œโ”€โ”€ contextAnalyzer.ts # Project context detection and analysis โ”‚ โ””โ”€โ”€ features/ # Modular CSS feature definitions โ”‚ โ”œโ”€โ”€ index.ts # Feature registry and exports โ”‚ โ”œโ”€โ”€ animation/ # Animation and transition features โ”‚ โ”œโ”€โ”€ layout/ # Flexbox, Grid, positioning features โ”‚ โ”‚ โ”œโ”€โ”€ flexbox/ # Dedicated flexbox module โ”‚ โ”‚ โ””โ”€โ”€ grid/ # Dedicated grid module โ”‚ โ”œโ”€โ”€ logical/ # Logical properties and values โ”‚ โ”œโ”€โ”€ logical-spacing/# Logical spacing and sizing โ”‚ โ”œโ”€โ”€ responsive/ # Responsive design features โ”‚ โ”œโ”€โ”€ visual/ # Visual effects and styling โ”‚ โ”œโ”€โ”€ interaction/ # User interaction states โ”‚ โ”œโ”€โ”€ positioning/ # CSS positioning features โ”‚ โ””โ”€โ”€ display/ # Display and layout modes

Key Architecture Benefits

  • Modular Design: Each CSS category has dedicated modules for maintainability

  • Semantic Analysis: Intent recognition and confidence scoring for accuracy

  • Context Awareness: Framework and project constraint detection

  • Performance Optimized: Intelligent caching and ranked results

  • Extensible: Easy to add new frameworks, patterns, and CSS features

๐ŸŽฏ CSS Feature Coverage

Intelligent Categories

The enhanced system provides context-aware suggestions across:

  • Layout ๐Ÿ—๏ธ: Flexbox, Grid, positioning, display modes

  • Animation โœจ: CSS animations, transitions, transforms

  • Responsive ๐Ÿ“ฑ: Container queries, media queries, viewport units

  • Visual ๐ŸŽจ: Shadows, gradients, borders, effects

  • Interaction ๐Ÿ–ฑ๏ธ: Hover states, focus, active, disabled

  • Logical Properties ๐Ÿ“: Writing-mode aware spacing and sizing

  • Typography ๐Ÿ“: Font properties, text alignment, spacing

  • Positioning ๐Ÿ“: Static, relative, absolute, fixed, sticky

Supported Feature Catalog

Logical Spacing

  • Logical Spacing Properties

  • Modern CSS Units

Layout (Flexbox)

  • Flexbox

Layout (Grid)

  • CSS Grid

  • CSS Subgrid

Animation

  • CSS Transitions

  • CSS Animations

  • CSS @starting-style

  • CSS interpolate-size

  • CSS Scroll Timeline

  • CSS View Timeline

  • CSS Animation Timeline

  • CSS Animation Range

  • CSS View Timeline Inset

  • CSS Timeline Scope

  • CSS View Transitions

Visual

  • CSS Gradients

  • CSS Transforms

  • Logical Border Properties

  • CSS Overflow

  • CSS Overflow Clip

  • CSS Overscroll Behavior

  • CSS Corner Shape

  • CSS -webkit-box-reflect

Responsive

  • Media Queries

Interaction

  • CSS Scroll Snap

  • Modern CSS Carousel with Pseudo-Elements

Selectors

  • Basic Selectors

  • Attribute Selectors

  • State Pseudo-classes

  • Structural Pseudo-classes

  • Modern Selectors

  • Pseudo-elements

  • Form Validation Selectors

Logical

  • CSS if() Function

Positioning

  • CSS Anchor Positioning

  • Anchor Positioning with Container Queries

  • Anchor Name

  • Position Anchor

  • Position Area

  • Position Try Properties

  • Position Visibility

  • Position Try At-Rule

  • Anchor Functions

Display

  • CSS Display Property

  • Display Contents

  • Flexbox Display

  • Grid Display

  • Inline Display Values

  • Block Display Values

  • Table Display Values

  • Display None

  • List Item Display

  • Flow Root Display

  • Subgrid Display

Modern: Container & Queries

  • CSS Container Queries

  • CSS Container Style Queries

  • CSS Container Scroll State Queries

  • CSS Anchor Positioning

  • Anchor Positioning with Container Queries

  • Expanded Range Syntax

Modern: Layout & Sizing

  • CSS Subgrid

  • CSS Masonry Layout

  • CSS Grid Lanes (Masonry)

  • CSS Sizing Properties

  • Flexbox gap Property

  • Enhanced Logical Properties

  • Mobile Viewport Heights

  • Stretch Sizing Keyword

  • CSS aspect-ratio

  • CSS Nesting

Modern: Color & Visual

  • CSS color-mix() Function

  • CSS color-contrast() Function

  • CSS accent-color

  • CSS color-scheme

  • CSS light-dark() Function

  • Enhanced Light-Dark Theme System

  • CSS backdrop-filter

  • CSS conic-gradient

  • CSS image-set() Function

  • Enhanced Text Decoration

  • Enhanced font-variant Properties

  • Text Box Trim

Modern: Motion & Transitions

  • Scroll-driven Animations

  • Scroll-triggered Animations

  • CSS View Transitions

  • View Transition Group Property

  • Scoped View Transitions

Modern: Interaction & UI Patterns

  • CSS Carousel with Modern Pseudo-Elements

  • Scroll-Driven Carousel Animations

  • CSS-Only Form Validation

  • CSS-Only Modal/Dialog

  • CSS-Only Tabs/Accordion

  • CSS-Only Navigation Patterns

  • CSS-Only Loading/Skeleton

  • Popover API

  • Invoker Commands

  • Interest Invokers

  • Scroll Target Group

  • Dialog Light Dismiss

Modern: Media & Environment

  • Enhanced prefers-* Media Queries

  • CSS forced-colors Media Query

  • CSS env() Function

  • CSS scroll-behavior

  • CSS overscroll-behavior

Modern: Functions & Syntax

  • CSS Enhanced Math Functions

  • CSS if() Conditional Function

  • CSS Custom Functions (@function)

  • CSS shape() Function

  • Advanced attr() Function

  • Tree Counting Functions

  • Customizable Select Element

Framework-Specific Features

  • React: Component-scoped styling, CSS-in-JS patterns

  • Vue: Scoped styles, transition components

  • Angular: ViewEncapsulation, Material Design integration

  • Svelte: Built-in scoped styling, reactive CSS

CSS Framework Integration

  • Tailwind: Utility-first patterns, responsive prefixes

  • Bootstrap: Grid system, utility classes

  • Material-UI: Theme customization, sx props

  • Chakra UI: Design system tokens

๐Ÿ“Š Enhanced Browser Support Levels

  • Excellent (95%+): โœ… Safe for production use

  • Good (85%+): โš ๏ธ Consider fallbacks for legacy browsers

  • Moderate (70%+): โšก Use with caution and provide fallbacks

  • Limited (<70%): ๐Ÿ”„ Consider alternative approaches

  • Experimental (varies): ๐Ÿงช Cutting-edge features with progressive enhancement

โœ… CSS Baseline Availability

When you pass the baseline parameter, responses include an emoji tag per suggestion:

  • ๐ŸŸข Widely Available: broadly supported and safe for most production usage

  • ๐Ÿ”ต Newly Available: recently supported, validate target browsers

  • ๐ŸŸก Limited Availability: spotty support; use progressive enhancement

  • ๐ŸŸฃ Experimental: likely behind flags or drafts; only for experiments

๐Ÿ”ง Automated Feature Discovery

This MCP features automated CSS feature discovery using MDN documentation. The system continuously discovers and integrates recent CSS features (2021-2025) with intelligent categorization.

Automated Feature Discovery

  • ๐Ÿค– Auto-Discovery: Automatically finds and categorizes new CSS features from MDN

  • ๐Ÿ“Š Intelligent Categorization: Uses semantic analysis to categorize features by type

  • ๐Ÿ”„ Continuous Updates: Built-in mechanisms for ongoing feature maintenance

  • ๐Ÿ“ˆ Browser Support Analysis: Automatic extraction of compatibility information

Recently Integrated Features (2021-2025)

๐Ÿ†• Major CSS Features Added

  • Container Queries (2022): Element-based responsive design with logical units (cqi, cqb) and style/scroll queries

  • CSS Nesting (2023): Native CSS nesting without preprocessors

  • :has() Pseudo-class (2022): Parent selection based on children

  • Dynamic Viewport Units (2022-2023): Complete logical viewport units (dvi, dvb, svi, svb, lvi, lvb) with physical fallbacks

  • color-mix() Function (2021-2024): Advanced color mixing in different color spaces

  • Scroll-driven Animations (2023-2024): Animations driven by scroll progress

  • CSS Cascade Layers (2022): Better style organization with @layer

  • Subgrid (2021-2023): Grid items participating in parent grid

  • aspect-ratio Property (2021): Native aspect ratio control

  • Enhanced Math Functions (2021-2023): clamp(), round(), trigonometric functions

๐Ÿ“ฑ Responsive & Modern Layout

  • CSS Anchor Positioning (2024): Position elements relative to other elements

  • View Transitions (2023-2024): Smooth page/view transitions

  • Enhanced Logical Properties: Complete writing-mode aware spacing, sizing, and positioning

  • Container Style Queries: Query container's computed style values

  • Container Scroll State Queries: Query container's scroll state

  • Masonry Layout (Experimental): Pinterest-style layouts

๐ŸŽจ Visual & Color Enhancements

  • accent-color: Customize form control colors

  • color-scheme: Light/dark mode indication

  • light-dark() Function: Theme-aware color values

  • backdrop-filter: Glass morphism effects

  • conic-gradient: Conical gradients for complex designs

  • corner-shape (Experimental): Superellipse curves for organic, Apple-like rounded corners

Automated Update Commands

# Discover and integrate new CSS features from MDN npm run update-features # Run feature discovery (development) npm run discover-features

MDN Setup

  • Uses direct MDN parsing with caching and structured extraction

  • No external MCP dependencies required for documentation lookups

๐ŸŒ Logical Units & Internationalization

This MCP implements a logical-first approach to CSS suggestions, prioritizing writing-mode aware properties for better internationalization support.

Logical Units Priority System

Viewport Units (Logical Preferred)

  • dvi, dvb (dynamic viewport inline/block) โ†’ dvw, dvh (physical fallback)

  • svi, svb (small viewport inline/block) โ†’ svw, svh (physical fallback)

  • lvi, lvb (large viewport inline/block) โ†’ lvw, lvh (physical fallback)

Container Query Units (Logical Preferred)

  • cqi, cqb (container query inline/block) โ†’ cqw, cqh (physical fallback)

CSS Properties (Logical Preferred)

  • inline-size, block-size โ†’ width, height (physical fallback)

  • margin-inline, margin-block โ†’ margin-left/right, margin-top/bottom

  • padding-inline, padding-block โ†’ padding-left/right, padding-top/bottom

  • border-inline, border-block โ†’ border-left/right, border-top/bottom

  • inset-inline, inset-block โ†’ left/right, top/bottom

Advanced Container Queries

Size-based Container Queries (Enhanced)

@container (inline-size > 30cqi) { .component { gap: 2cqi; } }

Style Queries (NEW)

@container style(--theme: dark) { .card { background: var(--dark-bg); } }

Scroll State Queries (NEW)

@container scroll-state(stuck: top) { .header { backdrop-filter: blur(10px); } }

Writing-Mode Awareness

  • RTL Language Support: Logical properties automatically adapt to right-to-left languages

  • Vertical Writing Modes: Properties work correctly with writing-mode: vertical-rl

  • International Compatibility: Suggestions prioritize globally compatible approaches

License

MIT

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