Writing Style Checker
概要
作者による説明(英語の原文)
Prose linter + AI-slop detector: weasel words, passive voice, hedging, and research-cited AI tells
PopNx MCPの3つの柱
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
- 利用者の声iレビューはまだありませんレビューは今後のステップで、アカウント機能と一緒に始まります
- 私たちの基本チェックi1項目中1項目に合格公開情報からチェック。コードはまだスキャンしていません
- 利用状況iとても新しい↓ 75/週 · ★ –
できること
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
- 接続方法: パソコンでもクラウドでも
- トランスポート: stdio, Streamable HTTP
- カテゴリ: 検索・AIの記憶
インストール
使っているAIアプリを選んで、設定をコピーしてください。
インストールの前に
- 基本チェック:1項目中1項目に合格
- 作者のサーバーで動きます。あなたが頼んだ内容は、作者のサーバーを通ります。
- レジストリには、入力が必要なキーは載っていません。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
ウェブ、デスクトップ、モバイルのClaudeで使えます:
- Settings → Connectors を開く
- Add custom connector を押す
- 下のアドレスを貼り付けて Add を押す
- サインインを求められたら、作者のサービスにサインインする
https://wsc.theserverless.dev/mcpまたは、パソコンで動かす
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"wsc": {
"command": "npx",
"args": [
"-y",
"wsc-mcp"
]
}
}
}ターミナルでこれを実行します
claude mcp add --transport http wsc https://wsc.theserverless.dev/mcpまたは、パソコンで動かす
claude mcp add wsc -- npx -y wsc-mcpまたは、設定を自分でコピーする
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"wsc": {
"url": "https://wsc.theserverless.dev/mcp"
}
}
}または、パソコンで動かす
または、設定を自分でコピーする
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"wsc": {
"command": "npx",
"args": [
"-y",
"wsc-mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
または、設定を自分でコピーする
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"wsc": {
"type": "http",
"url": "https://wsc.theserverless.dev/mcp"
}
}
}または、パソコンで動かす
または、設定を自分でコピーする
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"wsc": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"wsc-mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
ChatGPTがつなげるのは、インターネット上のサーバーだけです:
- ウェブ版のChatGPTを開き → Settings → Connectors (Apps)
- Create または Add を押す(プランによっては、先に Advanced で Developer mode をオンにする必要があります)
- 下のアドレスを貼り付け、名前を付けて保存する
- サインインを求められたら、作者のサービスにサインインする
https://wsc.theserverless.dev/mcpメニューの名前は、プランや時期によって少し違うことがあります。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
できること
このサーバーのツール一覧はまだ読み取っていません。エンドポイントは順番にチェックしています。
基本チェックi
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月9日にチェック
- ✓ 合格
作者とリポジトリが一致
レジストリ名は、リポジトリを所有するGitHubアカウント theserverlessdev で確認済みです
- … 未チェック
今もメンテナンスされている
このリポジトリはまだGitHubから読み取っていません
- … 未チェック
ライセンスがある
このリポジトリはまだGitHubから読み取っていません
- … 未チェック
エンドポイントが応答する
まだチェックしていません。エンドポイントは順番にチェックしています
- … 未チェック
OAuthでサインイン
まだチェックしていません。エンドポイントは順番にチェックしています
- … 未チェック
ツールの説明に隠れた指示がない
まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります
検索・AIの記憶のほかのサーバーとの比較i
- このカテゴリのほかの5745件のうち0%よりスターが多い
- このカテゴリのほかの5745件のうち22%より最近レジストリに公開
- 基本チェックの結果が、このカテゴリのほかの5745件のうち100%と同じかそれ以上
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
よくある質問
Writing Style Checkerは安全ですか?
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
どんなキーやコードが必要ですか?
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
パソコンで動きますか、それともクラウドですか?
どちらでも使えます。パソコンにインストールしても、クラウド版につないでもかまいません。
今もメンテナンスされていますか?
GitHubリポジトリの最終更新は–、最新バージョン(2.2.2)がレジストリに届いたのは4 か月前です。
どのアプリで使えますか?
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
代わりに使えるものは?
同じカテゴリには:Context7, Codebase Memory, Exa
代わりの候補
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Exa
Connect AI agents to Exa for web search, content fetching, and multi-step research.
作者のREADME
READMEを開く
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Writing Style Checker
A prose linter and AI-slop detector. WSC finds AI tells — words, phrases, and sentence structures overrepresented in AI-generated text, each flag backed by a published corpus study. It also catches classic writing issues: weasel words, passive voice, duplicate words, long sentences, nominalizations, hedging, and filler adverbs. Available as a web editor, HTTP API, MCP server, CLI, and GitHub Action.
[Live: wsc.theserverless.dev](https://wsc.theserverless.dev)
Features
- Web Editor - Real-time highlighting with inline fix buttons for all 8 detectors
- HTTP API - POST text with optional config, retrieve structured JSON responses
- MCP Server (Remote) - Connect AI assistants via Streamable HTTP transport
- MCP Server (Local) - Stdio-based server via
wsc-mcpon npm - CLI - Check files from the command line via
wsc-lint - GitHub Action - Run checks in CI with
::warningannotations - Configurable - Customize detectors with
.wscrc.jsonfiles
What WSC is (and isn't)
WSC flags patterns that research on AI-generated text finds overrepresented, and cites a source for every flag. It does not, and cannot, prove authorship. Classifier-based detectors carry a documented false-accusation risk: a Stanford study found that seven of them misflagged 61% of essays written by non-native English speakers. WSC avoids that trap by design — every flag is a specific, explainable edit that improves the text no matter who, or what, wrote it.
Detection Rules
| Detector | Items | Description |
|---|---|---|
| Weasel Words | 95 words/phrases | Vague terms like "very", "basically", "arguably", "numerous" |
| Passive Voice | 260 irregular verbs | Auxiliary verbs + past participles (regular -ed + irregular) |
| Duplicate Words | — | Adjacent repeated words across whitespace, case-insensitive |
| Long Sentences | threshold: 30 words | Sentences exceeding a configurable word count |
| Nominalizations | 245 word pairs | Nouns replaceable with verbs ("utilization" → "use") |
| Hedging | 100 phrases | Phrases that weaken assertions ("I think", "it seems") |
| Filler Adverbs | 139 words | Adverbs adding emphasis without substance ("totally", "utterly") |
| AI Tells | 98 words (+111 inflected forms) + 83 phrases + 12 structural patterns | Words, phrases, and sentence constructions overrepresented in AI-generated text (delve, rich tapestry, It's not just X — it's Y) |
Word lists sourced from Matt Might's shell scripts and expanded with additional entries. AI tells draw on published corpus studies: Kobak et al. 2025 (Science Advances), Juzek & Ward 2025 (COLING), Liang et al. 2024 (Stanford), and Reinhart et al. 2025 (PNAS). Wikipedia's editor-maintained Signs of AI writing catalogue and AI-detection vendor reports round out the sources.
Configuration
Create a .wscrc.json to customize detectors. All tools (API, MCP, CLI) support it.
{
"$schema": "https://wsc.theserverless.dev/schema.json", "ignore": ["CHANGELOG.md", "docs/vendor/**"], "detectors": { "weaselWords": { "enabled": true, "add": ["synergy", "leverage"], "remove": ["very"] }, "longSentences": { "maxWords": 25 }, "adverbs": { "enabled": false } } }
Every field is optional. Missing fields use defaults. JSON Schema provides autocompletion in VS Code.
ignore is an array of glob patterns relative to the working directory. The GitHub Action uses the repository root. The CLI adds these patterns to its built-in **/node_modules/** and **/.git/** skips, together with the Action exclude input and the CLI --ignore flag.
API Usage
POST /api/check
Analyze text for writing style issues. Accepts optional config object.
curl -X POST https://wsc.theserverless.dev/api/check \
-H "Content-Type: application/json" \ -d '{"text":"The code was written very quickly."}'
Response:
{
"summary": { "total": 2, "weaselWords": 1, "passiveVoice": 1, "duplicateWords": 0, "longSentences": 0, "nominalizations": 0, "hedging": 0, "adverbs": 0 }, "issues": { "weaselWords": [{ "word": "very", "index": 21, "line": 1, "column": 22, "context": "..." }], "passiveVoice": [{ "phrase": "was written", "index": 9, "line": 1, "column": 10, "context": "..." }], "duplicateWords": [], "longSentences": [], "nominalizations": [], "hedging": [], "adverbs": [] }, "meta": { "characterCount": 34, "wordCount": 6, "sentenceCount": 1, "processingTimeMs": 2 } }
With config:
curl -X POST https://wsc.theserverless.dev/api/check \
-H "Content-Type: application/json" \ -d '{"text":"The code was written very quickly.", "config":{"detectors":{"weaselWords":{"enabled":false}}}}'
GET /api/check
Returns API documentation as JSON.
GET /api/detectors
Returns the list of all 8 detectors with descriptions, configurability, and word counts.
GET /health
Runs a smoke test with known text and returns {"status":"healthy"} or 503.
Limits: Max 100,000 characters per request. CORS enabled for all origins.
MCP Server
The Writing Style Checker is available as an MCP server, letting AI assistants check your writing directly.
Tools
| Tool | Description |
|---|---|
check_text | Analyze text for all 8 writing style issues. Accepts optional config. |
fix_duplicates | Remove duplicate adjacent words and return cleaned text |
list_word_lists | Return info about all detector word lists |
check_file | *(Local only)* Read a file from disk and analyze it. Auto-discovers .wscrc.json. |
Remote MCP Server
Connect any MCP client to the hosted server - no installation required.
{
"mcpServers": { "writing-style-checker": { "type": "url", "url": "https://wsc.theserverless.dev/mcp" } } }
Local MCP Server (stdio)
Install via npm for local usage. Includes check_file for analyzing files on disk with auto-discovery of .wscrc.json.
npx wsc-mcp
Claude Desktop / Claude Code config:
{
"mcpServers": { "writing-style-checker": { "command": "npx", "args": ["wsc-mcp"] } } }
See the wsc-mcp npm page for full documentation.
CLI
Check files from the command line.
# Check all markdown files
npx wsc-lint check "**/*.md"
Read from stdin
echo "The code was written very quickly." | npx wsc-lint check --stdin
JSON output for scripting
npx wsc-lint check "**/*.md" --format json
GitHub Actions annotations
npx wsc-lint check "**/*.md" --format github
Create a config file
npx wsc-lint init
See the wsc-lint README for full documentation.
GitHub Action
- uses: theserverlessdev/wsc@v1
with: files: '**/*.md' max-warnings: 20 exclude: | CHANGELOG.md vendor/**
| Input | Default | Description |
|---|---|---|
files | **/*.md | Glob pattern for files to check |
config | — | Path to .wscrc.json config file |
max-warnings | unlimited | Max warnings before failing |
only-changed | false | On a pull request, check changed files that match files. If none match, skip the check. Other events check files. |
exclude | — | Glob patterns to skip. Separate with a comma or a new line. Adds to config ignore. |
Privacy
The web editor runs in your browser - we never send text to any server. The API and MCP endpoints only process text you explicitly send to them.
Project Structure
.
├── src/ │ ├── core/ # Shared detection engine │ │ ├── detector.ts # 8 detection algorithms │ │ ├── words.ts # Word/phrase lists (800+ entries) │ │ ├── config.ts # Config types, merging, validation │ │ ├── config-node.ts # Node-only: file loading, discovery │ │ ├── analyzer.ts # Unified analyzeText() entry point │ │ └── index.ts # Public API exports │ ├── docs/ # Documentation content (Markdown files) │ ├── mcp/ │ │ └── handler.ts # MCP JSON-RPC 2.0 handler │ ├── lib/ │ │ ├── App.svelte # Main editor page component │ │ ├── stores/theme.ts # Theme store (light/dark/system) │ │ └── components/ # UI components (StatsBar, ConfigPanel, etc.) │ ├── routes/ │ │ ├── +layout.svelte # Shared layout (header, nav, footer) │ │ ├── api/check/+server.ts # HTTP API endpoint │ │ ├── mcp/+server.ts # MCP endpoint │ │ ├── health/+server.ts # Health check endpoint │ │ ├── docs/+page.svelte # Documentation page │ │ └── words/+page.svelte # Word library browser │ └── styles/ │ └── main.scss # Global styles (light + dark themes) ├── mcp-server/ # Standalone stdio MCP server (npm: wsc-mcp) ├── cli/ # CLI tool (npm: wsc-lint) ├── action/ # GitHub Action (composite) ├── tests/ # 341 tests across 18 files ├── static/ │ ├── schema.json # JSON Schema for .wscrc.json │ ├── llms.txt # AI/LLM discovery file │ └── llms-full.txt # Detailed LLM context ├── wrangler.toml # Cloudflare Workers config └── svelte.config.js # SvelteKit configuration
Local Development
git clone https://github.com/theserverlessdev/wsc.git
cd wsc npm install npm run dev
Visit http://localhost:5173. The API is at /api/check, MCP at /mcp, health at /health.
Commands
| Command | Description |
|---|---|
npm run dev | Start dev server |
npm run build | Build for production |
npm run check | Type check with svelte-check |
npm test | Run all 341 tests |
npm run test:coverage | Coverage report |
Deployment
Deployed as a Cloudflare Worker at wsc.theserverless.dev.
npm run build
npx wrangler deploy
Contributing
See CONTRIBUTING.md for development setup, testing, and pull request guidelines.
For substantial changes, please open an issue first.
Acknowledgements
- Matt Might for the original shell scripts
- Built with SvelteKit and Svelte 5, deployed on Cloudflare Workers
- Logo made with DiffusionBee
License
MIT