Atlas / MCP servers / dcadolph / slop-chop

slop-chopBLOCK

mcp/dcadolph/slop-chop

Strip AI tells from text: em-dashes, slop words, and stock phrases, in one deterministic local pass. CLI, GitHub Action, Obsidian plugin, and MCP server.

Verdict
BLOCK
Grade
D
Trust score
63 /100
Exposed tools
—
Transport
stdio
License
MIT
Stars
4
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

AI writing leaves fingerprints.

Chop the slop. Paste in text and get back something that reads like a person wrote it.

Try it without installing anything: slop-chop.com runs the same engine in your browser.

AI writing has patterns. It loves em-dashes, drops a semicolon into every other sentence, reaches for words like comprehensive and leverage, and clears its throat with openers like "In summary" or "Giving it to you honestly."

slop-chop removes those patterns in a single pass. You can also hand it your own list of things to cut, so the result reads like you instead of a chatbot.

Why

Cleaning this up by hand is tedious. Asking a model to "stop using em-dashes" works for about three sentences before it forgets. slop-chop applies the same cleanup rules every time.

How it works

There are two passes, and you can run either one on its own.

The first is a rules pass. It is fast and deterministic. It swaps characters, drops words you have flagged, rewrites stock phrases and words, runs your own patterns, fixes spelli

Read from source at commit c7bcb1f87fddOBSERVED · 2026-10-11
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code
claude mcp add slop-chop -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "slop-chop": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ]
    }
  }
}
03

Trust audit

BLOCKgrade D · trust 63/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)FAIL
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (3 observation(s))
Network
declared (3 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (23)

HIGHNetwork egress · net.tls_off · CWE-200, CWE-319
cmd/config/verify.go:15
var DefaultVerify = false
Why it matters. certificate verification is disabled
Fix. leave verification on
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
docs/TELLS.md:26
| `` | dropped |
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
docs/TELLS.md:27
| `` | dropped |
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
docs/TELLS.md:28
| `` | dropped |
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
docs/TELLS.md:41
| `` | dropped |
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
docs/TELLS.md:44
| `` | dropped |
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
MEDIUMInventory / provenance · inv.binary · CWE-1104
jetbrains/gradle/wrapper/gradle-wrapper.jar
gradle-wrapper.jar
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
sanitize/attack.go:44
"beacon":         "signal",
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
sanitize/profile.go:202
"a beacon of", "actionable insights", "at the forefront",
LOWInventory / provenance · inv.hidden_file · CWE-1104
.kibble.yml
.kibble.yml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.pre-commit-hooks.yaml
.pre-commit-hooks.yaml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
Makefile:133
( cd $$work && zip -qr "../../../dist/slop-chop-mcp_$(MCPB_VERSION)_$${os}_$${arch}.mcpb" manifest.json server ); \
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
e2e/README.md:20
`http://127.0.0.1:4173/index.html`.
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
e2e/helpers.js:5
const BASE = process.env.E2E_BASE_URL || "http://127.0.0.1:4173/index.html";
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
evaldata/harness/pre2022_test.go:302
if _, err := ollamaGenerate(c, "http://127.0.0.1:1", "nope", "hi"); err == nil {
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
rewrite/rewrite_test.go:193
c := &anthropicCompleter{model: "m", endpoint: "http://127.0.0.1:0", client: http.DefaultClient}
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
worker/README.md:18
curl -s -X POST http://127.0.0.1:8787/chop \
LOWNetwork egress · net.tls_off · CWE-200, CWE-319
cmd/cmd_voice_test.go:162
[]string{"fix", "--rewrite", "--verify=false", "--voice", path}, "a plain line"); err != nil {
Why it matters. certificate verification is disabled
Fix. leave verification on
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
docs/assets/app.js:116
const bin = atob(encoded.replaceAll("-", "+").replaceAll("_", "/"));
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
obsidian/main.js:105
const compressed = Uint8Array.from(atob(packed), (c) => c.charCodeAt(0));
LOWObfuscation / stealth · obf.homoglyph · CWE-506, CWE-94
sanitize/structural_test.go:91
{Name: "mixed script homoglyph", In: "The summаry looks fine to me.", WantRule: "structural:mixed-script", WantHit: true},
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
e2e/package.json
playwright
Why it matters. 1 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWInventory / provenance · mcp.no_tools_extracted · CWE-1104
server.json
Why it matters. the tool list is enumerated at runtime by tools/list, not declared in source
Fix. the page says so rather than showing an empty table

Gates applied: no_behavioural_pass.

Audited 2026-10-11 · audit v0.4.1 · source sha c7bcb1f87fddfull audit observations/trust-audit/mcp-server/dcadolph__slop-chop.json · Report an issue / request a re-scan
04

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-11c7bcb1f87fddBLOCKD63first audit
05

Questions

What is the slop-chop MCP server?

Strip AI tells from text: em-dashes, slop words, and stock phrases, in one deterministic local pass. CLI, GitHub Action, Obsidian plugin, and MCP server.

Is slop-chop safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (63/100) and found 6 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What credentials does slop-chop need?

No credential environment variables were found in its source, so it appears to need none.

How does slop-chop run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as slop-chop at 0.44.0.

How current is this page?

The grade is for one exact copy of the source (c7bcb1f87fdd), read on 2026-10-11. The repository is watched and re-audited when it changes.

Advertisement