# deslop-mcp
An MCP (Model Context Protocol) server that detects and removes AI-generated code slop patterns.
Works with **Cursor**, **Claude Desktop**, **Claude Code**, and any MCP-compatible client.
## What is "Slop"?
AI-generated code often includes patterns that hurt maintainability:
- **Comment slop**: Comments that restate what code does ("This function gets the user")
- **Verbose logging**: Entry/exit logs, debug statements left in production
- **Unnecessary error handling**: Try-catch that only logs and re-throws
- **Defensive overkill**: Redundant null checks in TypeScript
- **Async misuse**: `async` functions with no `await`
- **Unused imports**: Dead code from refactoring
## Installation
### Option 1: Clone from GitHub
```bash
git clone https://github.com/YOUR_USERNAME/deslop-mcp.git
cd deslop-mcp
npm install
npm run build
```
### Option 2: npm (if published)
```bash
npm install -g deslop-mcp
```
## Configuration
### For Cursor
Add to your Cursor MCP settings (`~/.cursor/mcp.json` or via Settings > MCP):
```json
{
"mcpServers": {
"deslop": {
"command": "node",
"args": ["/path/to/deslop-mcp/dist/index.js"]
}
}
}
```
### For Claude Desktop
Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):
```json
{
"mcpServers": {
"deslop": {
"command": "node",
"args": ["/path/to/deslop-mcp/dist/index.js"]
}
}
}
```
### For Claude Code
Add to your Claude Code MCP settings:
```json
{
"mcpServers": {
"deslop": {
"command": "node",
"args": ["/path/to/deslop-mcp/dist/index.js"]
}
}
}
```
## Tools
### `deslop_analyze`
Analyze code files for slop patterns.
```
deslop_analyze({ path: "./src" })
deslop_analyze({ path: "./src/utils/api.ts" })
```
Returns a detailed report with:
- Issues grouped by category
- Priority levels (high/medium/low)
- Line numbers for each issue
- Auto-fixable indicators
### `deslop_fix`
Automatically fix auto-fixable issues.
```
deslop_fix({ path: "./src" })
deslop_fix({ path: "./src", dryRun: true }) // Preview without changes
```
### `deslop_diff`
Analyze only changed files from git.
```
deslop_diff({}) // Unstaged changes
deslop_diff({ staged: true }) // Staged changes only
```
## Example Output
```markdown
# Deslop Analysis Report
## Summary
- 🔴 High Priority: 12 issues
- 🟡 Medium Priority: 5 issues
- 🔵 Low Priority: 2 issues
- 🔧 Auto-fixable: 10 issues
## src/services/userService.ts
### 🔴 Comment Slop (3)
- **Line 45**: Comment restates what code does instead of why
`// This function gets the user from the database`
*(auto-fixable)*
- **Line 78**: Commented-out code should be removed
`// const oldUser = await getOldUser(id);`
*(auto-fixable)*
### 🔴 Verbose Logging (2)
- **Line 23**: Debug/trace logging should be removed in production
`console.log("Entering getUserById");`
*(auto-fixable)*
```
## Supported Languages
- TypeScript (.ts, .tsx)
- JavaScript (.js, .jsx)
- Python (.py)
- Java (.java)
- Go (.go)
- Rust (.rs)
## Safety
The tool will **never** remove:
- Error logging that captures actual errors
- Comments explaining business logic or "why"
- License headers or copyright notices
- TODO comments with ticket references
## License
MIT