slop-cop

slop-cop

Detects and fixes LLM prose patterns in text, exposing tools for auditing and improving writing quality in MCP-compatible hosts.

Category
Visit Server

README

Slop Cop - MCP Server

An MCP server that detects and fixes LLM prose patterns in text. It exposes tools to Claude Code, Claude Desktop, and any MCP-compatible host.

Built on the detection engine and browser app slop-cop by awnist that highlights these patterns in real time.


Setup

Claude Code

claude mcp add slop-cop -- npx -y @0ju1c3/slop-cop@latest

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "slop-cop": {
      "command": "npx",
      "args": ["-y", "@0ju1c3/slop-cop@latest"]
    }
  }
}

Restart Claude Desktop after saving.

Prerequisites

  • Node.js 18+

Authentication

detect_slop runs entirely locally — no API key, no credentials.

fix_slop and detect_slop_full call the Anthropic API and require ANTHROPIC_API_KEY. Add it to your MCP server env config:

Claude Code:

claude mcp add slop-cop --env ANTHROPIC_API_KEY=sk-ant-... -- npx -y @0ju1c3/slop-cop@latest

Claude Desktop / other hosts:

{
  "mcpServers": {
    "slop-cop": {
      "command": "npx",
      "args": ["-y", "@0ju1c3/slop-cop@latest"],
      "env": { "ANTHROPIC_API_KEY": "sk-ant-..." }
    }
  }
}

Tools

detect_slop

Fast, instant detection using 36 regex and NLP rules. No API call, runs locally.

Use detect_slop on: "It is worth noting that this comprehensive solution
will fundamentally transform the landscape of modern development."

Returns a JSON array of violations:

[
  {
    "ruleId": "important-to-note",
    "startIndex": 0,
    "endIndex": 18,
    "matchedText": "It is worth noting",
    "ruleName": "\"It's Important to Note\"",
    "category": "rhetorical",
    "tip": "Delete the phrase and just say the thing."
  },
  {
    "ruleId": "elevated-register",
    "matchedText": "fundamentally transform",
    "suggestedChange": "",
    ...
  }
]

Best for: auditing prose, feeding violation data into a larger workflow, quick checks inside Claude Code sessions.


detect_slop_full

Runs all 36 client-side rules plus semantic analysis via the Anthropic API, catching the 12 patterns that require language understanding: sycophantic framing, throat-clearing, grandiose stakes, fractal summaries, and others.

Use detect_slop_full on: "And yes, I'll be honest — this challenge will
define the next era of computing for organizations that rise to meet it."

The LLM tier catches what regex can't:

  • false-vulnerability — "And yes, I'll be honest" (performative candour)
  • grandiose-stakes — "define the next era of computing" (inflated significance)

Best for: thorough audits of important prose before publishing.


fix_slop

Detects violations and fixes them in two phases:

Phase 1 — direct splices (instant, free): Violations with a known replacement are applied as exact character-position substitutions — "fosters" → "builds", "moving forward" → deleted, "utilize" → "use" — with no LLM call.

Phase 2 — targeted LLM rewrite (only if needed): Violations that require sentence restructuring (predicate adjectives, negation pivots) are rewritten paragraph-by-paragraph with rule-specific directives.

Use fix_slop on: "Ultimately, this transformative approach not only
streamlines workflows but also fosters a culture of innovation moving forward."

Returns: "This approach simplifies workflows and builds a culture of innovation."

Best for: cleaning up LLM-generated drafts before review, automating prose quality in content pipelines.


Use Cases

Passive quality gate in Claude Code

Add to your project's CLAUDE.md:

After generating any prose longer than 3 sentences, run detect_slop
on it and revise flagged violations before responding.

This makes slop detection automatic. Claude audits its own output before you see it.

Pre-publish audit

Before publishing a blog post, release notes, documentation, or other content generated with Claude's help:

Use detect_slop_full on the following draft: [paste text]

Content pipeline quality check

detect_slop returns structured JSON with ruleId, category, startIndex, endIndex, and suggestedChange. Any script or agent that generates text can pipe it through detect_slop and fail if violation density exceeds a threshold.

Inline editing

Ask Claude to run fix_slop on a specific paragraph you know sounds off. Phase 1 makes deterministic fixes; Phase 2 only fires if restructuring is needed.


Patterns Detected

Client-side — instant (36 rules)

Pattern What it catches
Overused Intensifier crucial, robust, pivotal, unprecedented, tapestry, nuanced, paradigm, leverage, delve, and ~15 more
Elevated Register utilize → use, commence → start, facilitate, endeavor, demonstrate, craft, moving forward
Filler Adverb Sentence-opening importantly, ultimately, essentially, fundamentally
"Almost" Hedge almost always, almost certainly, almost never
Era Opener In an era of…, In a world where…
Metaphor Crutch double-edged sword, game changer, north star, deep dive, paradigm shift, perfect storm
"It's Important to Note" it is important to note, it's worth noting, it should be noted
"Broader Implications" broader implications, wider implications
False Conclusion In conclusion, At the end of the day, To summarize, Moving forward
Connector Addiction Paragraph-opening Furthermore, Moreover, Additionally, However, That said
Unnecessary Contrast whereas, as opposed to, in contrast to, unlike
Em-Dash Pivot Excessive — and – pivots
Negation Pivot not X, but Y / not X — Y constructions
Colon Elaboration Short setup clause followed by long colon elaboration
Parenthetical Qualifier Long parentheticals; comma-bracketed hedges (of course, to be fair, admittedly)
Question-Then-Answer Rhetorical question immediately answered in the next sentence
Hedge Stack Multiple epistemic hedges in one sentence (perhaps, might, arguably, seemingly)
Staccato Burst Three or more consecutive short sentences for dramatic effect
Listicle Instinct Bullet or numbered lists with exactly 3, 5, or 7 items
"Serves As" Dodge serves as, stands as, acts as, functions as
"Not X. Not Y. Just Z." Consecutive negation sentences building to a reveal
Anaphora Abuse Three or more consecutive sentences with the same opener
Gerund Fragment Litany Consecutive short sentences starting with gerunds
"Here's the Kicker" Here's the thing, Here's the kicker, Here's where it gets interesting
Pedagogical Aside Let's break this down, Let's unpack, Think of it as
"Imagine a World Where" Hypothetical world-building openers
Listicle in a Trench Coat Prose disguising a list via The first…, The second…
Vague Attribution experts argue, studies show, research suggests, many believe
Bold-First Bullets Bullet items formatted **Term**: explanation
Unicode Decoration → used as a stylistic bullet or transition
"Despite Its Challenges" Despite these challenges, Despite its limitations
Invented Concept Label the [word] paradox/trap/vacuum/inversion/chasm — fake conceptual branding
Dramatic Fragment One-to-four-word standalone paragraph used for emphasis
Superficial Analysis , [participle] its/the/their/this [importance/role/significance] — empty summarizing phrase
False Range Hollow from X to Y constructions; doesn't emerge from nowhere
Triple Construction Exactly three parallel items: X, Y, and Z — the LLM default

Semantic — sentence-level (9 rules, via Claude Haiku)

Throat-Clearing Opener · Sycophantic Frame · Balanced Take · Unnecessary Elaboration · Empathy Performance · Pivot Paragraph · Grandiose Stakes · Historical Analogy Stack · False Vulnerability

Semantic — document-level (3 rules, via Claude Haiku)

Dead Metaphor · One-Point Dilution · Fractal Summaries


How It Works

Detection runs in two tiers:

Client-side (36 rules): Regex, structural analysis, and NLP via compromise. Runs entirely locally. It's instant, requires no API calls, and costs nothing.

Semantic (12 rules): API call to claude-haiku-4-5-20251001. Only runs when you call detect_slop_full or when fix_slop needs to restructure a sentence that a direct splice can't fix.

fix_slop applies all deterministic string splices first, at no cost, then calls the LLM only for violations that require sentence restructuring. Many texts are fully fixed in Phase 1 alone.

AI Detection Flow

detect_slop_full and fix_slop call an LLM in two steps:

MCP sampling first. The server calls sampling/createMessage to ask the MCP host to run a model on its behalf, as the MCP spec defines. Claude Code and Claude Desktop don't currently implement this; both return -32601: Method not found. The attempt is kept for forward compatibility with compliant hosts.

Direct Anthropic API as fallback. When sampling fails, the server calls the Anthropic API directly with claude-haiku-4-5-20251001 using ANTHROPIC_API_KEY. If the key is not set, the tool returns a clear error.


Building from Source

git clone https://github.com/0ju1c3/slop-cop
cd slop-cop
npm install
npm run build   # compiles TypeScript → build/

To use the local build instead of the npm package:

Claude Code:

claude mcp add slop-cop -- node /path/to/slop-cop/build/index.js

Claude Desktop:

{
  "mcpServers": {
    "slop-cop": {
      "command": "node",
      "args": ["/path/to/slop-cop/build/index.js"]
    }
  }
}

License

MIT — see LICENSE.

Detection engine derived from slop-cop by awnist, MIT licensed.

Pattern taxonomy based on LLM_PROSE_TELLS.md, Wikipedia: Signs of AI Writing, and tropes.md.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured