Deslop MCP Server
# 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
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: deslop_analyze examines all code files for slop patterns, deslop_diff focuses on changed files from git diff, and deslop_fix performs automated fixes. There is no overlap in functionality, making it easy for an agent to select the appropriate tool based on the task.
All tool names follow a consistent 'deslop_' prefix with a descriptive suffix (analyze, diff, fix), using snake_case uniformly. This predictable pattern enhances readability and reduces confusion for agents.
With 3 tools, the server is well-scoped for its purpose of analyzing and fixing AI-generated slop in code. Each tool serves a distinct role in the workflow (analysis, diff analysis, fixing), and there are no extraneous or missing tools for this focused domain.
The tool set provides complete coverage for the slop analysis domain: deslop_analyze for initial assessment, deslop_diff for incremental changes, and deslop_fix for remediation. This covers the core lifecycle from detection to correction without any apparent gaps.