CSS MCP Server
Universal CSS Analysis and Documentation MCP Server. Analyze any CSS with ~150 derived metrics (built on ~78 CSSMetrics fields plus selector/property counters) for complexity, specificity, and quality.
Features
- CSS Analysis: ~150 derived metrics (78
CSSMetricsfields plus selector/property counters) for CSS complexity, specificity, and quality - MDN Documentation: Fetch CSS property docs from MDN Web Docs
- Browser Compatibility: Check cross-browser support for CSS properties
- Project Analysis: Analyze all CSS files in a project
Installation
# Using uv
uv pip install css-mcp
# Using pip
pip install css-mcp
Usage
Start Server
# Via CLI
css-mcp
# Via Python module
python -m css_mcp.server
Environment Variables
| Variable | Default | Description |
|---|---|---|
CSS_MCP_HTTP_PORT |
3050 | Server port |
CSS_MCP_HTTP_HOST |
localhost | Server host |
CSS_MCP_DEBUG |
false | Inherited Oneiric debug flag; sets the field on CSSMCPSettings but has no local behavioral effect (no code path in css_mcp/ reads settings.debug yet). Wire-up is tracked as a follow-up. |
Available Tools
| Tool | Description |
|---|---|
analyze_css |
Full CSS analysis with ~150 derived metrics |
analyze_css_summary |
Quick CSS summary (faster) |
get_docs |
MDN documentation for CSS properties |
get_browser_compatibility |
Check browser support for properties |
search_properties |
Search for CSS properties |
get_properties_by_category |
Get properties by category |
analyze_project_css |
Analyze all CSS in a project |
list_capabilities |
List available capabilities |
health_check |
Check server health |
Programmatic Usage
Use the analyzer directly in Python for any CSS:
Example: Analyze Any CSS
from css_mcp.analyzer import CSSAnalyzer
# Analyze any CSS content
analyzer = CSSAnalyzer()
metrics = analyzer.analyze(css_content)
# Get complexity score
print(f"Complexity: {metrics.complexity_score}/100")
# Get optimization suggestions
suggestions = analyzer.get_suggestions()
Metrics
The analyzer provides ~150 derived metrics (built from 78 CSSMetrics fields plus selector and property counters), including:
Basic Metrics
- Total rules, selectors, properties
- File size (bytes, gzipped)
- Lines of code
Selector Metrics
- ID, class, element, universal selectors
- Pseudo-classes and pseudo-elements
- Combinators (descendant, child, sibling)
- Selector depth
Specificity Metrics
- Average, min, max specificity
- High specificity rules
- Specificity distribution
Property Metrics
- Unique properties
- Category distribution (layout, typography, etc.)
- Vendor prefixes
!importantusage- CSS custom properties
Quality Metrics
- Duplicate selectors
- Duplicate properties
- Empty rules
- Complexity score
- Efficiency scores
Browser Compatibility
Built-in compatibility data for common CSS properties across:
- Chrome
- Firefox
- Safari
- Edge
Development
# Install dev dependencies
uv sync --group dev
# Run tests
pytest
# Type check
mypy css_mcp
# Lint
ruff check css_mcp
Installation via Bodai Marketplace
The css plugin is published through the Bodai marketplace. Add the marketplace, install the plugin, and the css-mcp HTTP server becomes available as mcp__css__* tools alongside three slash commands (/css-audit-project, /css-analyze, /css-check-compat). The plugin manifest lives at .claude-plugin/plugin.json and the server is registered in the colocated .mcp.json at http://localhost:3050/mcp — start the css-mcp server first, then run claude plugin install css --marketplace bodai-plugins from a fresh session.
License
BSD-3-Clause
Metadata
Release files for css-mcp 0.5.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| css_mcp-0.5.2.tar.gz | 834.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| css_mcp-0.5.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 868.5 kB
Release files / css_mcp-0.5.2.tar.gz
| Download URL | css_mcp-0.5.2.tar.gz |
|---|---|
| Size | 834.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c71fe907145fecc0b20df1eebc1c62bb3641eea0a7cb308659f813b3fb383b3a
|
|
BLAKE2b-256 checksum How to use checksums |
b9b35997955cff3b8ea8dc5445eb913bea6323fa31a4dfc17d6360e3e6352fde
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / css_mcp-0.5.2-py3-none-any.whl
| Download URL | css_mcp-0.5.2-py3-none-any.whl |
|---|---|
| Size | 33.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dffcacd59bbe642b4ce919daf61ed86726956aa05f30aabae919d9813cc8a40b
|
|
BLAKE2b-256 checksum How to use checksums |
fef9056ee67b61911bdc28625a8749803222d26c29b51c22ff3e8894b19cae92
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|