JavaScript/CSS 美化压缩 MCP 服务器

一个智能美化与压缩 JavaScript 和 CSS 代码的 MCP 服务器,可自动检测压缩代码并在编辑后恢复压缩格式。

  • by hussainbiedouh
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 hussainbiedouh/beaunifi

使用说明

Beaunifi

An MCP (Model Context Protocol) server that intelligently beautifies and minifies JavaScript and CSS files. It can detect if a file is minified and automatically beautify it before processing, then re-minify it afterward.

Features

  • 🔧 Beautify JS/CSS code for easier editing
  • 📦 Minify JS/CSS code for production
  • 🧠 Auto-detect minified files and handle them intelligently
  • 🔁 Workflow mode: Beautify → Edit → Minify (automatic)
  • 🔌 MCP Compatible: Works with Claude Code, Cursor, Antigravity, and more

Installation

Using UV (Recommended)

# Navigate to the project directory
git clone https://github.com/hussainbiedouh/beaunifi.git
cd beaunifi

# Create virtual environment and install dependencies
uv venv
uv pip install -e ".[dev]"

Using pip

pip install -e .

MCP Configuration

Claude Code

Add to your Claude Code settings:

{
  "mcpServers": {
    "beaunifi": {
      "command": "uv",
      "args": [
        "run",
        "--python",
        "python",
        "-m",
        "beaunifi.server"
      ],
      "cwd": "C:\\path\\to\\beaunifi"
    }
  }
}

Or use the provided config file:

# Copy the config to Claude Code directory
cp mcp-configs/claude-code.json ~/.claude/mcp-servers/beaunifi.json

OpenCode

OpenCode nests servers under mcp.servers in ~/.config/opencode/opencode.jsonc:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "servers": {
      "beaunifi": {
        "type": "local",
        "command": [
          "C:\\path\\to\\beaunifi\\.venv\\Scripts\\python.exe",
          "-m",
          "beaunifi.server"
        ],
        "cwd": "C:\\path\\to\\beaunifi",
        "environment": {
          "PYTHONIOENCODING": "utf-8"
        }
      }
    }
  }
}

Or use the provided config file:

cp mcp-configs/opencode.json ~/.config/opencode/opencode.jsonc

Every client expects a different key, so the same file will not work across all of them. mcp-client-config has the full table and what each failure mode looks like.

Cursor

Add to your Cursor settings (~/.cursor/mcp.json):

{
  "mcpServers": {
    "beaunifi": {
      "command": "uv",
      "args": [
        "run",
        "--python",
        "python",
        "-m",
        "beaunifi.server"
      ],
      "cwd": "C:\\path\\to\\beaunifi"
    }
  }
}

Antigravity

Add to your Antigravity MCP config:

{
  "name": "beaunifi",
  "transport": {
    "type": "stdio",
    "command": "uv",
    "args": ["run", "--python", "python", "-m", "beaunifi.server"],
    "cwd": "C:\\path\\to\\beaunifi"
  }
}

Available Tools

1. beautify_js

Beautify JavaScript code

Parameters:

  • code (string): JavaScript code to beautify
  • indent_size (number, optional): Indentation size (default: 2)

2. minify_js

Minify JavaScript code

Parameters:

  • code (string): JavaScript code to minify

3. beautify_css

Beautify CSS code

Parameters:

  • code (string): CSS code to beautify
  • indent_size (number, optional): Indentation size (default: 2)

4. minify_css

Minify CSS code

Parameters:

  • code (string): CSS code to minify

5. is_minified

Check if code appears to be minified

Parameters:

  • code (string): Code to check
  • file_type (string): Either "js" or "css"

6. smart_process

Smart workflow: auto-detect minification, beautify if needed, and re-minify

Parameters:

  • code (string): Code to process
  • file_type (string): Either "js" or "css"
  • action (string): Action to perform ("read", "edit", or "write")
  • modifications (string, optional): Modifications to apply (for "edit" action)

Usage Examples

Direct Python Usage

from beaunifi.utils import beautify_js, minify_js, is_minified

# Check if code is minified
code = "function test(){return 1}"
if is_minified(code, "js"):
    pretty = beautify_js(code)
    # ... make edits ...
    final = minify_js(pretty)

MCP Tool Usage

When using with an MCP client:

"Please beautify this minified JS file: [code]"
"Minify this CSS for production: [code]"
"Smart process this file - detect if minified and handle appropriately: [code]"

Smart Process Workflow

The smart_process tool provides an intelligent workflow:

  1. Detect if the code is minified
  2. Beautify if minified (for easier editing)
  3. Perform the requested action (read/edit)
  4. Re-minify if the original was minified

This is perfect for AI assistants that need to edit minified files without losing the minification.

Development

# Run tests
uv run pytest

# Type checking
uv run mypy src/beaunifi

# Linting
uv run ruff check src/beaunifi

License

MIT