software-design について
software-designは、コーディングエージェントや開発者向けのMCPサーバーです。設計原則やGoFパターンの情報、パターンのひな形、コードスメルのヒューリスティック検出を提供し、設計判断はモデルに委ねます。
主な機能
- 01原則とパターンの一覧を参照
- 02原則やパターンの概念を解説
- 03パターンの疑似コードを生成
- 04ヒューリスティックなコードスメル検出
- 05設計レビューとパターン適用のプロンプト
活用シーン
- 01SOLID原則やGoFパターンを調べる
- 02コード向けにパターンをひな形化
- 03長いメソッドや深いネストを検出
- 04設計原則に沿ってコードをレビュー
MCP 対応
MCPクライアントにツール、リソース、プロンプトを提供します。ツールは概念の検索、パターンのひな形生成、コードスメル検査に使え、リソースとプロンプトは設計レビューやリファクタリングを支援します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| kind | enum | いいえ | kind で絞り込みます。"principle" = すべての原則;"solid"/"oop" = それぞれ SOLID の 5 原則 / OOP の 4 本柱に限定;"pattern" = すべての GoF パターン。デフォルトは "all"。all | principle | solid | oop | pattern | creational | structural | behavioral |
詳細
mcp-software-design
ソフトウェア設計の指針(SOLID 原則、OOP の柱、DRY/KISS/YAGNI/意味のある命名/クリーンコード、Gang of Four の 23 のデザインパターン)を解説し、適用を支援する MCP サーバーです。 パターンのひな型生成や、ヒューリスティックなコードスメル検出にも対応しています。
mcp-udacity-commit のコンパニオンです。同じ技術スタック(TypeScript、MCP SDK、stdio トランスポート)、同じ構成(純粋なロジックモジュールと薄いサーバー配線)を採用しています。
インストール
Claude Code に登録するには、次の 1 行を実行するだけです。クローンは不要です。
claude mcp add software-design -- npx -y mcp-software-design
または、MCP クライアントの設定に追加します。
{
"mcpServers": {
"software-design": {
"command": "npx",
"args": ["-y", "mcp-software-design"]
}
}
}
これを作った理由 — そして正直に伝えるべき注意点
コミットサーバーはリントできます。「件名は 50 文字以下」という条件は客観的にチェック可能です。 設計原則やパターンはそうではありません。「SRP に違反しているか?」「Factory を使うべきか?」は、リントルールではなく判断を要する問いです。
そのため、このサーバーはアーキテクチャを合否で評価するふりはしません。 代わりに、確実に信頼できる処理を行い、判断はモデルに委ねます。
| 機能 | プリミティブ | 提供する内容 |
|---|---|---|
| リファレンス | リソース + explain_concept | 信頼性が高く一貫した定義を提供し、モデルが毎回同じ内容を参照できるようにします。 |
| ひな型生成 | scaffold_pattern | パターンの構成要素を表す、言語に依存しない骨組みを提供します。 |
| スメルのヒューリスティクス | check_smells | 実際にチェック可能な指標をいくつか提供します(長いメソッド、深いネストなど)。あくまでヒントであり、判定ではありません。 |
| 解説/適用 | review_design、apply_pattern プロンプト | 上記のツールとリソースに基づき、モデルがレビューやリファクタリングを行えるよう促します。 |
設計分析は判断を要するため、「解説/適用ヘルパー」は、コードがスニペットを理解できるふりをするのではなく、クライアントのモデルを動かす MCP プロンプトとして提供します。
ツール
list_catalog{ kind? }— 概念を一覧表示します。必要に応じて絞り込めます (principle|solid|oop|pattern|creational|structural|behavioral)。solid/oopを指定すると、SOLID の 5 原則/OOP の 4 つの柱に絞り込まれます。explain_concept{ name }— 1 つの原則またはパターンについて、詳細な指針を提供します(意図、使用する場面、トレードオフ、構成要素)。スラッグ、名前、エイリアス("SRP"、"open-closed"、"pubsub")を指定できます。scaffold_pattern{ pattern, names? }— GoF パターンの疑似コードの骨組みを生成します。namesを指定すると、役割名を独自のドメインに合わせて変更できます ({ "Product": "Notification" })。check_smells{ code, …thresholds? }— 長いメソッド、大きすぎるクラス、長すぎるパラメーターリスト、深いネスト、重複、大きすぎるファイルをヒューリスティックにスキャンします。検出結果には、関連する原則と推奨するリファクタリングが示されます。すべてのしきい値は、呼び出しごとに上書きできます。
リソース
design://principles— SOLID、OOP の柱、DRY、KISS、YAGNI、意味のある命名など。design://patterns— GoF の 23 のパターン。生成、構造、振る舞いのカテゴリに分類されています。design://smells—check_smellsが検出する項目、しきい値、注意点。
プロンプト
review_design{ code, focus? }—check_smellsとリソースに基づき、原則やパターンに照らしてコードスニペットをレビューします。apply_pattern{ pattern, code }— 指定したパターンが適切かどうかをまず判断したうえで、コードスニペットをそのパターンに適用するようリファクタリングします。
ソースからビルドする
ローカルで開発する場合、または公開済みパッケージではなくローカルのチェックアウトを実行する場合:
npm install
npm run build # compiles src → build
npm start # runs the stdio server
npm test # builds, then runs the unit tests
npm run test:client # end-to-end check against the built server
その後、上記のインストールと同じ方法で登録します。claude mcp add コマンドと MCP クライアント設定形式のどちらも使用できますが、npx ではなくローカルのビルドを指定してください。
claude mcp add software-design -- node /absolute/path/to/mcp-software-design/build/index.js
ディレクトリ構成
src/
catalog.ts # principles + 23 GoF patterns (data + lookup + markdown)
smells.ts # pure, testable code-smell heuristics
scaffold.ts # renders a pattern's participants into a skeleton
index.ts # MCP wiring: resources, tools, prompts
test/
catalog.test.mjs # catalog lookup + scaffolder
smells.test.mjs # smell detectors (incl. string/comment edge cases)
src/*.ts のロジックモジュールは純粋で、副作用がないため、コンパイル済みの出力を対象に直接ユニットテストされています。サーバー(index.ts)はその上に薄い配線を追加するだけです。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。