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 hybrid MDN integration including context7 support.
β’ Glama Directory
Add to your MCP configuration:
Add to your MCP settings:
{
"mcpServers": {
"css-first": {
"command": "npx",
"args": ["-y", "@depthark/css-first"]
}
}
}Configure in your MCP settings:
{
"mcpServers": {
"css-first": {
"command": "npx",
"args": ["-y", "@depthark/css-first"]
}
}
}Add to your MCP configuration:
{
"mcpServers": {
"css-first": {
"command": "npx",
"args": ["-y", "@depthark/css-first"]
}
}
}Add the MCP server:
claude mcp add css-first npx -y @depthark/css-firstAdd config to your mcp_servers.toml:
[mcp_servers.css-first]
command = "npx"
args = ["-y", "@depthark/css-first"]After adding the configuration:
- Restart your MCP client
- 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"
- 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
- 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)
- Hybrid Data Sources: Primary context7 integration with MDN fallback
- Performance Caching: 1-hour intelligent caching for improved response times
- Real-time Browser Support: Accurate compatibility data from MDN
- Graceful Degradation: Fallback mechanisms ensure reliability
- 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
- 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
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 buildFor development/testing with local builds:
{
"mcpServers": {
"@depthark/css-first": {
"command": "node",
"args": ["/absolute/path/to/css-first/dist/cli.js"]
}
}
}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 solvepreferred_approach(optional): 'modern', 'compatible', or 'progressive'target_browsers(optional): Array of target browsers/versionsproject_context(optional): Project context (framework, existing CSS patterns, constraints) NEWinclude_analysis(optional): Include semantic analysis details in response NEW
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
}Response includes:
- Intelligently ranked CSS suggestions
- Framework-specific recommendations
- Semantic analysis breakdown (optional)
- Confidence scoring and intent detection
Checks browser support for specific CSS properties using MDN data.
Parameters:
css_property(string): CSS property name to checkinclude_experimental(optional boolean): Include experimental features
Example:
{
"css_property": "flexbox",
"include_experimental": false
}Retrieves comprehensive information about a CSS property from MDN documentation.
Parameters:
css_property(string): CSS property name to get details forinclude_examples(optional boolean): Include code examples
Example:
{
"css_property": "grid",
"include_examples": true
}Confirms user consent for using a specific CSS property and provides implementation guidance.
Parameters:
css_property(string): CSS property name user wants to useuser_consent(boolean): User consent to use this CSS propertyfallback_needed(optional boolean): Whether fallback solutions are needed
Example:
{
"css_property": "container-queries",
"user_consent": true,
"fallback_needed": true
}-
Semantic Intent Recognition: Advanced regex patterns analyze task descriptions to understand user intent (layout, animation, spacing, responsive, visual, interaction)
-
Project Context Analysis: Detects frameworks, CSS libraries, build tools, and constraints from project context string
-
Hybrid MDN Integration:
- Primary: Context7 tool for structured MDN data
- Fallback: Direct MDN API scraping
- Caching: 1-hour intelligent cache for performance
-
Intelligent Ranking: Scores suggestions based on:
- Intent match relevance
- Browser support level
- Framework compatibility
- User confidence multiplier
-
Context-Aware Recommendations: Provides framework-specific guidance and best practices
-
User Consent & Implementation: Consent-driven workflow with detailed implementation guidance
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"
# 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 lintsrc/
βββ 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 # Hybrid MDN client with context7 integration
β βββ 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
- 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
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
- 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
- Tailwind: Utility-first patterns, responsive prefixes
- Bootstrap: Grid system, utility classes
- Material-UI: Theme customization, sx props
- Chakra UI: Design system tokens
- 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
This MCP features automated CSS feature discovery using context7 MCP for MDN documentation. The system continuously discovers and integrates recent CSS features (2021-2025) with intelligent categorization.
- Faster Response Times: Pre-processed MDN data with intelligent caching
- Structured Information: Better parsing of CSS property details and browser support
- Reduced API Calls: Less reliance on direct MDN scraping
- Enhanced Reliability: Multi-layered fallback mechanisms ensure service continuity
- π€ 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
- 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
- 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
- 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
# Discover and integrate new CSS features from MDN
npm run update-features
# Run feature discovery (development)
npm run discover-featuresThe MCP automatically detects and uses context7 when available:
- Automatic Detection: Checks for context7 MCP in the environment
- Graceful Fallback: Falls back to direct MDN integration if context7 unavailable
- Performance Optimization: Uses caching and intelligent data processing
- Error Handling: Robust error handling with multiple fallback strategies
- Logical-First Approach: Automatically prioritizes logical CSS units and properties for internationalization
This MCP implements a logical-first approach to CSS suggestions, prioritizing writing-mode aware properties for better internationalization support.
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)
cqi,cqb(container query inline/block) βcqw,cqh(physical fallback)
inline-size,block-sizeβwidth,height(physical fallback)margin-inline,margin-blockβmargin-left/right,margin-top/bottompadding-inline,padding-blockβpadding-left/right,padding-top/bottomborder-inline,border-blockβborder-left/right,border-top/bottominset-inline,inset-blockβleft/right,top/bottom
@container (inline-size > 30cqi) {
.component {
gap: 2cqi;
}
}@container style(--theme: dark) {
.card {
background: var(--dark-bg);
}
}@container scroll-state(stuck: top) {
.header {
backdrop-filter: blur(10px);
}
}- 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
MIT