Writing Style Checker

Prose linter + AI-slop detector: weasel words, passive voice, hedging, and research-cited AI tells

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
77%
Naming quality
93%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~526Tokens (tool definitions)
~738 BTypical response size
Minimal attention impact (0.41% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "wsc": {
      "command": "npx",
      "args": [
        "wsc-mcp"
      ]
    }
  }
}

Runnable packages

npmwsc-mcp2.2.2stdio

Remote endpoints

https://wsc.theserverless.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢check_text(text, config, format)

Analyze text for writing style issues: weasel words, passive voice, duplicate words, long sentences, nominalizations, hedging, filler adverbs, and research-cited AI tells. Read-only and stateless — text is analyzed in memory on the hosted server and never stored. Returns a plain-text report with each issue's line and column, the matched text, surrounding context, and the reason for AI tells; texts over 100,000 characters return an error message. This hosted server has no filesystem access — the wsc-mcp npm package adds a check_file tool for local files. It only reports issues — to auto-remove duplicate words, follow up with fix_duplicates.

Input Schema

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "description": "The text to analyze for writing style issues"
    },
    "config": {
      "type": "object",
      "description": "Optional config to enable/disable detectors or add/remove word-list entries; same schema as .wscrc.json (https://wsc.theserverless.dev/schema.json)"
    },
    "format": {
      "type": "string",
      "enum": [
        "plain",
        "markdown"
      ],
      "description": "Set to \"markdown\" to mask code blocks, inline code, tables, and headings so they are not linted as prose; default \"plain\" lints everything"
    }
  },
  "required": [
    "text"
  ]
}
🟢fix_duplicates(text)

Remove duplicate adjacent words (case-insensitive, including across line breaks) and return the cleaned text plus the list of words that were removed. Read-only with no side effects: the fix is returned in the response, nothing is written anywhere. Use after check_text reports duplicate words; other issue types are report-only and have no auto-fix.

Input Schema

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "description": "The text to clean by removing duplicate adjacent words"
    }
  },
  "required": [
    "text"
  ]
}
🟢list_word_lists

Return every detector word/phrase list with its entry count, config key, and sample entries, plus a link to the full browsable library. Read-only, takes no parameters, and returns the same catalog for a given release. Use it to see what the detectors match before tuning a config for check_text; not needed for ordinary checking.

Input Schema

{
  "type": "object",
  "properties": {},
  "required": []
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools
verifiedversion not recorded3 tools