Show HN: Scopewalker — コードベース複雑度メトリクスのためのMCPサーバ
AIエージェントがルールを無視して巨大なソースファイルや過剰なパラメータを持つ関数を生成してしまう問題を解決するため、ローカルで動作するMCPサーバ「Scopewalker」を公開。行数、認知複雑度、ネスト深度、パラメータ数など8種類の読み取り専用ツールを提供し、設定可能なしきい値に基づく過大ファイル・関数チェック、ドキュメントカバレッジ、コードスメル検出、プロップドリリング検出などを実現。内部ではtree-sitter、tokei、fast-globを使用し、独自パース処理は一切なし。TS/JS、Python、Go、Rust、Java、C/C++、Rubyに対応。
背景メモ
- **著者について**:timo(Timothée Hacquard)、Claude Code(Anthropic社製AIコーディングエージェント)のヘビーユーザー。OSS開発者。
- **Scopewalkerとは**:AIコーディングエージェントがコードベースの複雑性メトリクスを「見て」遵守できるようにするためのローカルMCPサーバー。MCP(Model Context Protocol)はAnthropicが策定した、LLMと外部ツールをつなぐオープンプロトコル。
- **なぜ必要なのか**:Claude CodeやCursor、GitHub CopilotなどのAIエージェントは「関数の行数は100行以内」といったルールファイルを与えても平気で無視する。人間がレビューで指摘するまで巨大ファイルや過剰なネストを作り続ける。著者はこの問題に数ヶ月悩み、AIに「数値でチェックさせる」仕組みとして本ツールを開発。
- **技術的特徴**:ネットワーク通信ゼロ、すべてローカルのstdioで動作。内部でtree-sitter(構文解析)、tokei(コード行数計測)、fast-glob(ファイル検索)を使用。8つの読み取り専用ツールを提供(行数、循環的複雑度、ネスト深度、パラメータ数、コメント率、TODO/FIXME検出、プロップドリリング検出など)。
- **対応言語**:TS/JS、Python、Go、Rust、Java、C/C++、Ruby。
- **「vibe-coded」という表現**:著者が設計より雰囲気と試行錯誤で書いたことを自嘲的に示す言葉。AI時代の新しいコーディングスタイルを指すスラング。