
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
An MCP server for CSS documentation from MDN and comprehensive CSS code analysis
An MCP (Model Context Protocol) server that provides up-to-date CSS documentation from MDN and comprehensive CSS code analysis.
Documentation & Compatibility:
"grid", "flexbox", or ":has""grid") and full paths ("Web/CSS/grid")CSS Analysis:
Install via the Claude Code CLI:
claude mcp add css -- npx -y css-mcp
Add to your MCP settings configuration:
{
"mcpServers": {
"css": {
"command": "npx",
"args": ["-y", "css-mcp"]
}
}
}
npm install -g css-mcp
Or use with npx:
npx css-mcp --self-test
get_docsFetch CSS documentation for any property, selector, function, or concept.
Parameters:
slug (string) - CSS feature name or MDN pathExamples:
// Simple slugs (auto-normalized)
get_docs({ slug: "grid" });
get_docs({ slug: ":has" });
get_docs({ slug: "flexbox" });
get_docs({ slug: "@media" });
get_docs({ slug: "::before" });
// Full MDN paths also work
get_docs({ slug: "Web/CSS/grid" });
get_docs({ slug: "en-US/docs/Web/CSS/border-radius" });
Returns:
{
"source": "mdn-doc",
"slug": "/en-US/docs/Web/CSS/grid",
"url": "https://developer.mozilla.org/en-US/docs/Web/CSS/grid/index.json",
"title": "grid",
"mdn_url": "/en-US/docs/Web/CSS/grid",
"summary": "The grid CSS property is a shorthand...",
"body": [
{
"type": "prose",
"title": "Syntax",
"content": "The **`grid`** property is a shorthand..."
}
]
}
get_browser_compatibilityFetch browser compatibility data for CSS features.
Parameters:
bcd_id (string) - Browser Compat Data ID (e.g., "css.properties.grid")Example:
get_browser_compatibility({ bcd_id: "css.properties.grid" });
get_browser_compatibility({ bcd_id: "css.selectors.has" });
analyze_cssAnalyze CSS code for quality, complexity, and design patterns. Returns curated summary by default (lightweight, ~1-2k tokens). Use summaryOnly: false for complete 150+ metrics (uses ~10k+ tokens).
Parameters:
css (string, required) - CSS code to analyzesummaryOnly (boolean, optional) - Return summary instead of full analysis. Default: trueExamples:
// Summary mode (default, lightweight)
analyze_css({
css: `
.container {
display: grid;
color: #3b82f6;
}
`
});
// Full analysis with all 150+ metrics
analyze_css({
css: "...",
summaryOnly: false
});
Returns (default summary):
{
"analysis": {
"stylesheet": {
"sourceLinesOfCode": 5,
"size": 72
},
"rules": { "total": 1 },
"selectors": {
"total": 1,
"averageComplexity": 1.0,
"maxComplexity": 1
},
"colors": {
"unique": 1,
"uniqueColors": ["#3b82f6"]
}
},
"note": "Summary metrics only. Use summaryOnly: false for complete 150+ metrics."
}
analyze_project_cssAnalyze all CSS files in a project. Finds CSS files recursively, combines them, and provides project-wide analysis. Framework-agnostic - works with built CSS from any framework (SvelteKit, React, Vue, etc.).
Returns curated summary metrics by default (lightweight, ~1-2k tokens). Use includeFullAnalysis: true for complete data (uses ~10k+ tokens).
Automatically excludes:
**/node_modules/****/*.min.cssParameters:
path (string, required) - File path, directory, or glob patternincludeFullAnalysis (boolean, optional) - Return full 150+ metrics instead of summary. Default: falseexclude (array of strings, optional) - Additional glob patterns to excludeExamples:
// Analyze all CSS in a directory (summary - default, lightweight)
analyze_project_css({ path: "dist" });
// Full analysis with all 150+ metrics (uses more tokens)
analyze_project_css({
path: "dist",
includeFullAnalysis: true
});
// Exclude additional patterns
analyze_project_css({
path: "dist",
exclude: ["**/vendor/**", "**/*.legacy.css"]
});
// Analyze specific file
analyze_project_css({ path: "public/styles.css" });
// Use glob patterns
analyze_project_css({ path: "dist/**/*.css" });
Returns (default summary):
{
"files": {
"total": 5,
"analyzed": 5,
"errors": 0,
"list": [
{ "path": "/path/to/style.css", "size": 2048 },
{ "path": "/path/to/theme.css", "size": 1024 }
]
},
"summary": {
"stylesheet": {
"sourceLinesOfCode": 450,
"size": 12800
},
"rules": { "total": 85 },
"selectors": {
"total": 120,
"averageComplexity": 1.4,
"maxComplexity": 5
},
"colors": {
"unique": 12,
"uniqueColors": ["#3b82f6", "#10b981", ...]
},
"fontSizes": {
"unique": 8,
"uniqueSizes": ["1rem", "1.5rem", ...]
}
},
"note": "Summary metrics only. Use includeFullAnalysis: true for complete data."
}
The server automatically:
~/.cache/css-mcp/cache.dbTo clear the cache:
rm -rf ~/.cache/css-mcp/
Verify the server is working correctly:
npm test
# or
css-mcp --self-test
# or
npx css-mcp --self-test
Expected output:
docs ok (simple slug): { input: 'grid', slug: '/en-US/docs/Web/CSS/grid', ... }
docs ok (pseudo-selector + markdown): { input: ':has', ... }
bcd ok: { bcd_id: 'css.properties.grid', has_compat: true, ... }
Once configured, you can ask Claude Code:
Documentation & Compatibility:
"Use the CSS MCP to get documentation for flexbox"
"What browser support does :has selector have?"
"Explain how CSS grid works"
CSS Analysis:
"Analyze this CSS and tell me what could be improved"
"What colors are used in my stylesheet?"
"Check the complexity of my selectors"
Project Analysis:
"Analyze all CSS in my dist folder"
"What's the total complexity of my project's CSS?"
"Show me all colors used across my entire project"
Claude will automatically use the MCP to fetch the latest MDN documentation and analyze CSS code.
# Clone the repository
git clone https://github.com/stolinski/css-mcp.git
cd css-mcp
# Install dependencies
npm install
# Link for local development
npm link
# Run tests
npm test
Caching:
Input Limits:
This usually means native modules need rebuilding:
npm rebuild better-sqlite3
Check cache directory permissions:
ls -la ~/.cache/css-mcp/
Should show cache.db, cache.db-shm, and cache.db-wal files.
This is an experimental MCP server for CSS documentation tooling, let's work on tools that make AI better at CSS
FAQs
An MCP server for CSS documentation from MDN and comprehensive CSS code analysis
We found that css-mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.