mcpField
W
WSC - Writing Style Checker

WSC - Writing Style Checker

リモート
wsc.theserverless.dev生産性92 週間前に更新

WSC - Writing Style Checker について

WSCは、ライターやドキュメントチーム向けの文章チェックツールです。Webエディター、API、CLI、GitHub Action、MCPサーバーで利用でき、一般的な文体の問題と研究に基づくAI生成文の特徴を指摘します。

主な機能

  1. 01曖昧な表現や受動態など8種類の問題を検出
  2. 02研究資料に基づくAI生成文の特徴を確認
  3. 03Webエディターで問題をハイライトし修正を提示
  4. 04API、CLI、GitHub Actionで文章をチェック
  5. 05.wscrc.jsonで検出ルールをカスタマイズ

活用シーン

  1. 01文書の冗長表現や長文を編集時に確認
  2. 02CIでMarkdownファイルをチェック
  3. 03AIアシスタントで文章を確認し重複語を削除

MCP 対応

リモートのStreamable HTTPとローカルのstdioに対応し、文章チェック、重複語の修正、単語リストの参照をMCPクライアントに提供します。ローカル版ではファイルの読み込みと解析もできます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://wsc.theserverless.dev/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

パッケージ
npmwsc-mcp2.2.2

ツール

4
パラメーター型必須説明
textstringはい文体上の問題を分析するテキスト
configobjectいいえ検出器の有効化/無効化や単語リスト項目の追加/削除に使う任意の設定。.wscrc.json と同じスキーマです(https://wsc.theserverless.dev/schema.json)
formatenumいいえ"markdown" に設定すると、コードブロック、インラインコード、表、見出しをマスクして文章としての lint 対象から除外します。デフォルトの "plain" ではすべてを lint しますplain | markdown

詳細

Writing Style Checker

CI npm smithery badge wsc MCP server M8ven Score License: MIT

文章表現のリンター兼、AI らしさの検出ツールです。WSC はAI 特有の兆候、つまり AI 生成テキストで過剰に使われる単語、フレーズ、文構造を検出します。各指摘には、公開済みのコーパス研究による裏付けがあります。また、曖昧な表現、受動態、重複語、長文、名詞化、婉曲表現、不要な副詞といった一般的な文章の問題も検出します。ウェブエディター、HTTP API、MCP サーバー、CLI、GitHub Action として利用できます。

ライブ版:wsc.theserverless.dev

Writing Style Checker のスクリーンショット

機能

  • ウェブエディター - 8 種類すべての検出機能で、リアルタイムにハイライトし、インラインの修正ボタンを表示します
  • HTTP API - オプションの設定とともにテキストを POST すると、構造化された JSON レスポンスを取得できます
  • MCP サーバー(リモート) - Streamable HTTP トランスポートを介して AI アシスタントを接続できます
  • MCP サーバー(ローカル) - npm の wsc-mcp を使った Stdio ベースのサーバーです
  • CLI - wsc-lint を使ってコマンドラインからファイルをチェックできます
  • GitHub Action - CI でチェックを実行し、::warning アノテーションを表示します
  • 設定可能 - .wscrc.json ファイルで検出機能をカスタマイズできます

WSC ができること(できないこと)

WSC は、AI 生成テキストに過剰に使われると研究で示されたパターンを指摘し、各指摘の出典を示します。文章の作成者を証明するものではなく、証明することもできません。分類器ベースの検出機能には、誤った告発につながるリスクが文書化されています。スタンフォード大学の研究では、そのうち 7 種類が英語を母語としない人の書いたエッセイの 61%を誤って指摘したことがわかりました。WSC は設計上、この問題を回避します。すべての指摘は具体的で説明可能な修正であり、誰が、あるいは何が書いた文章であっても、文章を改善します。


検出ルール

検出機能項目数説明
曖昧な表現95 個の単語/フレーズ"very"、"basically"、"arguably"、"numerous" のような曖昧な表現
受動態260 個の不規則動詞助動詞+過去分詞(規則変化の -ed +不規則変化)
重複語—大文字と小文字を区別せず、空白を挟んで隣接する重複語を検出します
長文しきい値:30 語設定可能な語数を超える文
名詞化245 組の単語動詞に置き換えられる名詞("utilization" → "use")
婉曲表現100 個のフレーズ主張を弱めるフレーズ("I think"、"it seems")
不要な副詞139 個の単語内容を加えずに強調する副詞("totally"、"utterly")
AI 特有の兆候98 個の単語(+活用形 111 個)+83 個のフレーズ+12 個の構造パターンAI 生成テキストで過剰に使われる単語、フレーズ、文の構成(delve、rich tapestry、It's not just X — it's Y)

単語リストは Matt Might のシェルスクリプトを出典とし、追加項目を拡充しています。AI 特有の兆候は、公開済みのコーパス研究(Kobak et al. 2025(Science Advances)、Juzek & Ward 2025(COLING)、Liang et al. 2024(Stanford)、Reinhart et al. 2025(PNAS))に基づいています。Wikipedia の編集者が管理するAI 執筆の兆候の一覧と、AI 検出サービス提供元のレポートも出典に含まれます。


設定

検出器をカスタマイズするには、.wscrc.json を作成します。すべてのツール(API、MCP、CLI)がこのファイルに対応しています。

{
  "$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 }
  }
}

すべてのフィールドは省略可能です。指定されていないフィールドにはデフォルト値が使用されます。JSON Schema により、VS Code で入力補完が利用できます。

ignore は、作業ディレクトリを基準とした glob パターンの配列です。GitHub Action ではリポジトリのルートが基準になります。CLI では、これらのパターンが組み込みの **/node_modules/** および **/.git/** の除外に加え、Action の exclude 入力と CLI の --ignore フラグとともに適用されます。


API の使用方法

POST /api/check

テキストを分析し、文章スタイルの問題を検出します。省略可能な config オブジェクトを受け取ります。

curl -X POST https://wsc.theserverless.dev/api/check \
  -H "Content-Type: application/json" \
  -d '{"text":"The code was written very quickly."}'

レスポンス:

{
  "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 }
}

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

API のドキュメントを JSON で返します。

GET /api/detectors

8 つすべての検出器について、説明、設定可否、単語数の一覧を返します。

GET /health

既知のテキストを使ってスモークテストを実行し、{"status":"healthy"} または 503 を返します。

制限: リクエストあたり最大 100,000 文字です。すべてのオリジンで CORS が有効です。


MCP サーバー

Writing Style Checker はMCPサーバーとして利用でき、AI アシスタントから文章を直接チェックできます。

ツール
ツール説明
check_text8 つすべての文章スタイルの問題についてテキストを分析します。省略可能な config を受け取ります。
fix_duplicates隣接する重複語を削除し、修正済みのテキストを返します
list_word_listsすべての検出器の単語リストに関する情報を返します
check_file(ローカルのみ) ディスク上のファイルを読み込んで分析します。.wscrc.json を自動検出します。
リモート MCP サーバー

インストール不要で、任意の MCP クライアントをホストされたサーバーに接続できます。

{
  "mcpServers": {
    "writing-style-checker": {
      "type": "url",
      "url": "https://wsc.theserverless.dev/mcp"
    }
  }
}
ローカル MCP サーバー(stdio)

ローカルで使用するには npm からインストールします。ディスク上のファイルを分析する check_file が含まれており、.wscrc.json を自動検出します。

npx wsc-mcp

Claude Desktop / Claude Code の設定:

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

詳しいドキュメントについては、wsc-mcp npm ページをご覧ください。


CLI

コマンドラインからファイルをチェックします。

# 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

詳しいドキュメントについては、wsc-lint READMEをご覧ください。


GitHub Action

- uses: theserverlessdev/wsc@v1
  with:
    files: '**/*.md'
    max-warnings: 20
    exclude: |
      CHANGELOG.md
      vendor/**
入力デフォルト説明
files**/*.mdチェックするファイルの glob パターン
config—.wscrc.json 設定ファイルのパス
max-warnings無制限失敗とするまでの警告の最大数
only-changedfalseプルリクエストでは、files に一致する変更済みファイルをチェックします。一致するファイルがない場合、チェックをスキップします。それ以外のイベントでは files をチェックします。
exclude—除外する glob パターンです。カンマまたは改行で区切ります。設定ファイルの ignore に追加されます。

プライバシー

ウェブエディターはブラウザー内で実行されるため、テキストがサーバーに送信されることはありません。API および MCP のエンドポイントは、明示的に送信されたテキストのみを処理します。


プロジェクト構成

.
├── 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

ローカル開発

git clone https://github.com/theserverlessdev/wsc.git
cd wsc
npm install
npm run dev

http://localhost:5173 にアクセスしてください。API は /api/check、MCP は /mcp、ヘルスチェックは /health で利用できます。

コマンド
コマンド説明
npm run dev開発サーバーを起動します
npm run build本番用にビルドします
npm run checksvelte-check で型をチェックします
npm test341 件すべてのテストを実行します
npm run test:coverageカバレッジレポートを出力します

デプロイ

wsc.theserverless.dev で Cloudflare Worker としてデプロイされています。

npm run build
npx wrangler deploy

貢献

開発環境のセットアップ、テスト、プルリクエストのガイドラインについては、CONTRIBUTING.mdをご覧ください。

大規模な変更を行う場合は、まずイシューを作成してください。

謝辞

License

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。