Skip to main content
Glama
README.md
# 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)

```bash
# Navigate to the project directory
cd E:\Projects\OSP\beaunifi

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

### Using pip

```bash
pip install -e .
```

## MCP Configuration

### Claude Code

Add to your Claude Code settings:

```json
{
  "mcpServers": {
    "beaunifi": {
      "command": "uv",
      "args": [
        "run",
        "--python",
        "python",
        "-m",
        "beaunifi.server"
      ],
      "cwd": "E:\\Projects\\OSP\\beaunifi"
    }
  }
}
```

Or use the provided config file:
```bash
# Copy the config to Claude Code directory
cp mcp-configs/claude-code.json ~/.claude/mcp-servers/beaunifi.json
```

### Cursor

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

```json
{
  "mcpServers": {
    "beaunifi": {
      "command": "uv",
      "args": [
        "run",
        "--python",
        "python",
        "-m",
        "beaunifi.server"
      ],
      "cwd": "E:\\Projects\\OSP\\beaunifi"
    }
  }
}
```

### Antigravity

Add to your Antigravity MCP config:

```json
{
  "name": "beaunifi",
  "transport": {
    "type": "stdio",
    "command": "uv",
    "args": ["run", "--python", "python", "-m", "beaunifi.server"],
    "cwd": "E:\\Projects\\OSP\\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

```python
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

```bash
# Run tests
uv run pytest

# Type checking
uv run mypy src/beaunifi

# Linting
uv run ruff check src/beaunifi
```

## License

MIT

TDQS

A3.7/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: beautify vs minify for JS and CSS are opposites, is_minified is a detector, and smart_process combines them into a workflow. No two tools overlap in function.

Naming Consistency4/5

Most tools follow a clear verb_noun pattern (beautify_js, minify_css), but is_minified uses an is_ prefix and smart_process uses an adjective_noun style. The deviation is minor and does not cause confusion.

Tool Count5/5

Six tools is well-scoped for a code formatting/minification server. Each tool earns its place, covering the two primary languages plus detection and a combined workflow.

Completeness4/5

The set covers beautify/minify for JS and CSS, detection, and an automated workflow, which is solid for the domain. Missing support for HTML or JSON formatting is a minor gap but not a critical failure.

Maintenance

ActivityInactive
ResponsivenessNo issues