🚀 DotNetAnalyzer
DotNetAnalyzerは、強力なMCP(Model Context Protocol)サーバーツールです。Roslynのコード分析機能をClaude Codeに導入することで、Claude CodeがC#コードを深く分析し理解することを可能にします。
🚀 クイックスタート
前置要求
インストール
方法1:NuGetからインストール(推奨)✨
DotNetAnalyzerは NuGet.org に公開されています!
dotnet tool install --global DotNetAnalyzer
dotnet-analyzer --version
dotnet-tool list --global
NuGetパッケージ情報:
方法2:ソースコードからビルド
git clone https://github.com/CartapenaBark/DotNetAnalyzer.git
cd DotNetAnalyzer
dotnet restore
dotnet pack -c Release
dotnet tool install --global DotNetAnalyzer --add-source ./nupkg
更新
dotnet tool update --global DotNetAnalyzer
アンインストール
dotnet tool uninstall --global DotNetAnalyzer
Claude Codeの設定
プロジェクトディレクトリに .mcp.json ファイルを作成して、MCPサーバーを設定します。
設定ファイルの場所:
- プロジェクトレベルの設定(推奨):
.mcp.json - プロジェクトのルートディレクトリに配置
- ユーザーレベルの設定:
~/.claude/settings.json - すべてのプロジェクトに適用
.mcp.json ファイルを作成する:
{
"mcpServers": {
"dotnet-analyzer": {
"command": "dotnet-analyzer",
"args": [
"mcp",
"serve"
],
"env": {
"DOTNET_ENVIRONMENT": "Production",
"DOTNET_ANALYZER_LOG_LEVEL": "Information"
}
}
}
}
または、プロジェクトレベルの settings.json を使用する:
プロジェクトのルートディレクトリに .claude/settings.json を作成します。
{
"enabledMcpjsonServers": ["dotnet-analyzer"]
}
その後、プロジェクトのルートディレクトリに .mcp.json ファイルを作成します(上記と同じ)。
設定の優先順位:
- 企業管理ポリシー(最も高い)
- コマンドライン引数
.claude/settings.local.json(ローカルプロジェクト)
.claude/settings.json(共有プロジェクト)
~/.claude/settings.json(ユーザーレベル、最も低い)
サポートされるソリューション形式
DotNetAnalyzerは、以下のVisual Studioソリューション形式を完全にサポートしています。
| 形式 |
拡張子 |
状態 |
説明 |
| 従来形式 |
.sln |
✅ 完全サポート |
テキスト形式、Visual Studio 2010 - 2019 |
| 新世代形式 |
.slnx |
✅ 完全サポート |
XML形式、Visual Studio 2022 17.8以降 |
使用例:
dotnet-analyzer mcp serve --solution MyProject.sln
dotnet-analyzer mcp serve --solution MyProject.slnx
.slnxの利点:
- 🎯 人間が読みやすいXML構造
- 📦 より簡潔な構文
- 🚀 .NET CLI 9.0.200以降のデフォルト形式
- ✅ .slnと完全に後方互換
使用例
設定が完了したら、Claude Codeでこれらの機能を自然に使用できます。
あなた: "このプロジェクトのすべての診断情報を分析して"
Claude: [get_diagnosticsを呼び出し] ...
"3つのエラーと15の警告が見つかりました..."
あなた: "このメソッドの呼び出し元はどこですか?"
Claude: [get_caller_infoを呼び出し] ...
"このメソッドは5つの場所から呼び出されています..."
あなた: "この部分のコードをメソッドとして抽出してください"
Claude: [extract_methodを呼び出し] ...
"新しいメソッドCalculateTotalとして正常に抽出されました..."
✨ 主な機能
✨ v0.9.0の新機能 (近日公開予定)
コード品質分析と可視化の強化:
- ✅ テストカバレッジ分析 - プロジェクトレベルのテストカバレッジの統計と分析
- ✅ 未使用コードの検出 - 未使用の型とメソッドを自動的に識別
- ✅ パフォーマンスボトルネック分析 - 循環複雑度、メソッドの長さ、深いネストの検出
- ✅ ドキュメント生成器 - XMLコメントから自動的にプロジェクトのドキュメントを生成
- ✅ 呼び出しグラフの可視化 - SVG、JSON、Mermaid形式でのエクスポートをサポート
- ✅ エラーメッセージのローカライズ - 英語と中国語のエラーメッセージをサポート
サポートするフレームワーク:
- .NET 8.0 (C# 12)
- .NET 9.0 (C# 13)
- .NET 10.0 (C# 14)
✨ v0.8.0の新機能
フレームワークの拡張と依存関係の最適化:
- ✅ .NET 10.0のサポート - 新しいC# 14言語バージョンをサポート
- ✅ Roslynの統一 - すべてのフレームワークでRoslyn 5.0.0を統一して使用
- ✅ プロジェクトの簡素化 - 条件付きコンパイルを削除し、依存関係のバージョンを統一
- ✅ 0警告0エラー - コンパイル警告とエラーを完全に排除
- ✅ テスト合格 - すべてのフレームワークのテストがすべて合格 (190/190)
- ✅ 依存関係のクリーンアップ - 未使用のパッケージを削除し、バージョンの競合を解消
サポートするフレームワーク:
- .NET 8.0 (C# 12)
- .NET 9.0 (C# 13)
- .NET 10.0 (C# 14)
✨ v0.7.0の新機能
機能の拡張(フェーズ3/4/5完了):
- ✅ コードリファクタリングツール - 14のリファクタリングツールが完全に実装されました(メソッドの抽出、名前の変更、フィールドのカプセル化、インターフェースの抽出など)
- ✅ コード生成ツール - 11の生成ツール(インターフェースの実装、コンストラクターの生成、プロパティの生成、インポートの管理など)
- ✅ 高度な分析ツール - 7の分析ツール(呼び出しグラフ、呼び出し元/被呼び出し元の分析、構文木の比較など)
- ✅ コード操作ツール - 完全なコード修正とクイック修正のサポート
- ✅ ドキュメントの充実 - すべてのツールにXMLドキュメントコメントが含まれています
✨ v0.6.0/v0.6.1の新機能
アーキテクチャの最適化とCI/CD:
- 出力ディレクトリの統一 - すべてのビルド成果物をBinディレクトリに集約
- パスの検証とセキュリティ - PathValidatorによるパストラバーサル攻撃の防止
- インターフェース抽象層 - IWorkspaceManagerと依存性注入のサポート
- 構造化ログ - ILoggerの統合、構成可能なログレベルをサポート
- 並行処理とパフォーマンス - LRUキャッシュ、メモリ監視、System.Text.Jsonの最適化
- CI/CDの最適化 - マルチプラットフォームのビルド、NuGetパッケージのキャッシュによる高速化
✨ v0.5.0の機能
- .slnxソリューション形式のサポート - Visual Studio 2022のXML形式のソリューションファイルを完全にサポート
- Roslyn 5.0のアップグレード - 最新のRoslynバージョンにアップグレードし、安定性とパフォーマンスを向上
- 並行テストの最適化 - テストの並行処理サポートを改善し、CI/CDの効率を向上
- パフォーマンスベンチマークテスト - 完全なパフォーマンステストセットを追加し、持続的な高パフォーマンスを保証
✅ 実装済みのツール
コード診断:
get_diagnostics - C#コードのコンパイラ診断情報(エラー、警告、情報)を取得
- プロジェクトレベルの診断をサポート
- 単一ファイルの診断をサポート
- エラーの位置と修正提案を提供
プロジェクト管理 (✨ v0.5.0で強化):
list_projects - ソリューション内のすべてのプロジェクトをリスト
- プロジェクト名、パス、アセンブリ名
- プロジェクトの種類とドキュメントの数
- ✨ 依存関係分析 - プロジェクトの依存関係を自動的に分析
- ✨ 循環依存の検出 - 循環参照を識別
- ✅ .slnxのサポート - 新世代のXML形式のソリューションを完全にサポート
get_project_info - プロジェクトの詳細情報を取得
- プロジェクトの構成情報
- プロジェクトの参照とパッケージの参照
- コンパイル診断の統計
- ✨ ソースファイルのリスト - 完全なソースファイルのパス
get_solution_info - ソリューションの詳細情報を取得
- ソリューションの構成
- プロジェクトのリストと総数
- ✨ ビルド順序 - トポロジカルソートによる最適なビルドシーケンスの計算
- ✨ 起動プロジェクト - 実行可能なエントリポイントを自動的に識別
- ✅ .slnxのサポート - .slnx XML形式のロードと解析
コード分析 (✨ 完全実装):
analyze_code - コードの構文と意味構造を分析
- ✅ 構文木の解析と階層構造
- ✅ 名前空間、型、メソッドの抽出
- ✅ 型情報の分析(基底クラス、インターフェース、アクセシビリティ)
- ✅ Using指令と依存関係
- ✅ 意味モデルの統合
シンボル検索 (✨ 完全実装):
find_references - シンボルのすべての参照を検索
- ✅ ファイルをまたがった参照の検索
- ✅ 宣言と参照の位置を区別
- ✅ 参照のコンテキストを抽出
find_declarations - シンボルの宣言位置を検索
- ✅ オーバーライドされたメソッドの基底クラスの宣言
- ✅ インターフェースの実装の宣言
- ✅ 拡張メソッドの識別
get_symbol_info - シンボルの詳細情報を取得
- ✅ シンボルのメタデータ(名前、型、アクセシビリティ)
- ✅ メソッドのシグネチャとパラメータ
- ✅ XMLドキュメントコメントの抽出
- ✅ 属性(Attributes)情報
コードリファクタリング (✅ 完全実装 - フェーズ3):
extract_method - メソッドを抽出
- ✅ スマートなパラメータの推論
- ✅ プレビューと適用モード
- ✅ 完全な検証と依存関係の分析
rename_symbol - シンボルの名前を変更
- ✅ ファイルをまたがった名前の変更
- ✅ コメントと文字列内の名前の変更
- ✅ プレビューモード
introduce_variable - ローカル変数を導入
encapsulate_field - フィールドをカプセル化
- ✅ 自動的なプロパティの生成
- ✅ 参照ポイントの更新
extract_interface - インターフェースを抽出
- ✅ メンバーの選択
- ✅ インターフェースの名前付け
change_signature - シグネチャを変更
add_parameter - パラメータを追加
inline_temporary - 一時変数をインライン化
safely_remove_as - as変換を安全に削除
remove_unnecessary_code - 不要なコードを削除
convert_for_to_foreach - forループをforeachループに変換
convert_foreach_to_for - foreachループをforループに変換
convert_if_to_switch - if文をswitch文に変換
reverse_for_statement - forループを逆にする
list_refactorers - 利用可能なすべてのリファクタリングツールをリスト
コード生成 (✅ 完全実装 - フェーズ4):
generate_interface_impl - インターフェースの実装を生成
generate_constructor - コンストラクターを生成
generate_property - プロパティを生成
generate_deconstructor - デコンストラクターを生成
generate_from_usage - 使用箇所から生成
remove_unused_usings - 未使用のusingを削除
sort_usings - using指令を並べ替え
add_missing_imports - 欠落しているインポートを追加
organize_imports - インポートを整理(未使用の削除 + 並べ替え)
format_document - ドキュメントを整形
format_selection - 選択範囲を整形
高度な分析 (✅ 完全実装 - フェーズ5/6):
get_caller_info - 呼び出し元の情報を取得
- ✅ 呼び出し位置の分析
- ✅ 呼び出しタイプの識別
- ✅ 呼び出しのコンテキストを抽出
get_callee_info - 被呼び出し元の情報を取得
- ✅ 再帰深度の分析
- ✅ メソッドの呼び出しチェーン
get_call_graph - 呼び出しグラフを生成
- ✅ DOT形式でのエクスポート
- ✅ ✨ SVGの可視化 - ベクターグラフィックの出力
- ✅ ✨ JSON形式 - 構造化データ
- ✅ ✨ Mermaid形式 - Markdownとの統合
- ✅ ノードとエッジの分析
- ✅ 複雑度の測定
compare_syntax_trees - 構文木を比較
get_code_diff - コードの差分を生成
apply_code_change - コードの変更を適用
コード品質分析 (✨ 新機能 - フェーズ6):
get_test_coverage - テストカバレッジを取得
- ✅ プロジェクトレベルのカバレッジ統計
- ✅ ファイルレベルのカバレッジ分析
- ✅ 行カバレッジ、ブランチカバレッジ、メソッドカバレッジ
find_dead_code - 未使用のコードを検索
- ✅ 未使用の型の検出
- ✅ 未使用のメソッドの検出
- ✅ 削除の提案
analyze_performance - パフォーマンスのボトルネックを分析
- ✅ 循環複雑度の分析
- ✅ メソッドの長さの検出
- ✅ 深いネストの検出
- ✅ 最適化の提案
generate_documentation - プロジェクトのドキュメントを生成
- ✅ XMLコメントからドキュメントを生成
- ✅ Markdown形式をサポート
- ✅ クラスとメンバーのドキュメントを抽出
コード操作 (✅ 完全実装):
get_code_actions - コード操作を取得
get_refactorings - リファクタリング操作を取得
get_completion_list - 補完リストを取得
- 診断の修正とクイック修正のサポート
✅ 完了した機能
フェーズ1: MCPサーバーの基礎 (✅ 100% 完了)
22の基礎ツール - コード診断、プロジェクト管理、シンボル検索、コード分析
フェーズ2: ナビゲーションの強化 (✅ 100% 完了)
7のナビゲーションツール - 定義へのジャンプ、型階層、メンバー階層、意味モデル、構文木、コードメトリクス
フェーズ3: コードリファクタリング (✅ 100% 完了)
15のリファクタリングツール - 完全なリファクタリングフレームワークと14の具体的なリファクタリングツール
フェーズ4: コード生成と修正 (✅ 100% 完了)
11のコード生成ツール - インターフェースの実装、コンストラクター、インポートの管理、整形など
フェーズ5: 高度な機能 (✅ 100% 完了)
7の高度な分析ツール - 呼び出し分析、構文木の比較、コードの差分
コード操作と補完 (✅ 100% 完了)
3のコード操作ツール - コード操作、リファクタリングの提案、補完リスト
高度なクエリツール (✅ 100% 完了)
5の高度なクエリツール - シンボルの解析、定義と参照、ドキュメントのリスト
フェーズ6: コード品質と可視化 (✅ 100% 完了)
4の新しいツール + 可視化の強化 - テストカバレッジ、未使用コードの検出、パフォーマンス分析、ドキュメント生成、呼び出しグラフの可視化
🔧 技術詳細
システムアーキテクチャ図
graph TB
subgraph "ユーザー層"
A[Claude Code]
end
subgraph "MCP プロトコル層"
B[MCP Protocol<br/>stdio]
C[dotnet-analyzer<br/>.NET グローバルツール]
end
subgraph "DotNetAnalyzer 内部"
D[MCP サーバー]
E[JSON-RPC メッセージルーティング]
F[ツールの登録と呼び出し]
G[Roslyn 統合層]
end
subgraph "コード分析層"
H[Roslyn APIs<br/>コンパイラプラットフォーム]
I[MSBuildWorkspace<br/>ワークスペース管理]
J[CompilationCache<br/>コンパイルキャッシュ]
end
subgraph "プロジェクト層"
K[.NET ソリューション/プロジェクト]
L[.sln / .slnx<br/>/ .csproj]
end
A -->|MCP リクエスト| B
B --> C
C --> D
D --> E
E --> F
F --> G
G --> H
H --> I
I --> J
J --> K
K --> L
style A fill:#e1f5ff
style C fill:#c8e6c9
style D fill:#fff9c4
style H fill:#ffccbc
style K fill:#f3e5f5
核心コンポーネントの関係図
classDiagram
class IWorkspaceManager {
<<interface>>
+GetProjectAsync(path)
+GetCurrentSolutionAsync()
+Dispose()
}
class WorkspaceManager {
-LRUCache~string, Project~ _cache
-SemaphoreSlim _semaphore
-ILogger _logger
+GetProjectAsync(path)
+GetCurrentSolutionAsync()
-LoadProjectAsync(path)
}
class ICompilationCache {
<<interface>>
+GetOrAddAsync(key, factory)
+InvalidateAsync(key)
+ClearAsync()
}
class CompilationCache {
-ConcurrentDictionary _cache
-ILogger _logger
+GetOrAddAsync(key, factory)
+InvalidateAsync(key)
}
class IMcpServer {
<<interface>>
+StartAsync(token)
+StopAsync()
}
class McpServer {
-IWorkspaceManager _workspaceManager
-ToolRegistry _registry
+StartAsync(token)
-InitializeToolsAsync()
}
class ToolRegistry {
-Dictionary~string, ToolDelegate~ _tools
+RegisterTool(name, handler)
+GetTool(name)
+ListTools()
}
class RoslynAnalyzer {
+AnalyzeCode(project, file)
+FindReferences(symbol)
+GetDiagnostics(project)
}
IWorkspaceManager <|.. WorkspaceManager : implements
ICompilationCache <|.. CompilationCache : implements
IMcpServer <|.. McpServer : implements
WorkspaceManager --> ICompilationCache : uses
WorkspaceManager --> CompilationCache : creates
McpServer --> IWorkspaceManager : uses
McpServer --> ToolRegistry : owns
ToolRegistry --> RoslynAnalyzer : invokes
プロジェクト構造
graph TB
subgraph "DotNetAnalyzer プロジェクト"
A[src/]
subgraph "DotNetAnalyzer.Cli - CLI ツール"
B[Program.cs<br/>メインプログラムのエントリポイント]
C[Tools/<br/>MCP ツールの実装]
D[appsettings.json<br/>設定ファイル]
end
subgraph "DotNetAnalyzer.Core - コアライブラリ"
E[McpServer/<br/>MCP サーバー]
F[Abstractions/<br/>インターフェース抽象層]
G[Roslyn/<br/>Roslyn 統合]
H[Refactoring/<br/>リファクタリングフレームワーク]
I[Models/<br/>データモデル]
J[Configuration/<br/>設定管理]
K[Security/<br/>セキュリティ検証]
end
subgraph "Roslyn 統合層"
L[WorkspaceManager<br/>ワークスペース管理]
M[CompilationCache<br/>コンパイルキャッシュ]
N[Refactoring/<br/>リファクタリングツール]
O[CodeGeneration/<br/>コード生成]
P[CallAnalysis/<br/>呼び出し分析]
Q[Navigation/<br/>ナビゲーションツール]
end
A --> B
A --> E
B --> C
B --> D
E --> F
E --> G
E --> H
E --> I
E --> J
E --> K
G --> L
G --> M
G --> N
G --> O
G --> P
G --> Q
style B fill:#c8e6c9
style E fill:#fff9c4
style G fill:#ffccbc
end
MCP ツールの分類階層図
graph TB
subgraph "DotNetAnalyzer MCP ツールセット (74 個のツール)"
A[コード診断<br/>1 個のツール]
B[プロジェクト管理<br/>3 個のツール]
C[コード分析<br/>1 個のツール]
D[シンボル検索<br/>3 個のツール]
E[ナビゲーションツール<br/>7 個のツール]
F[リファクタリングツール<br/>15 個のツール]
G[コード生成<br/>11 個のツール]
H[高度な分析<br/>7 個のツール]
I[コード品質<br/>4 個のツール]
J[コード操作<br/>3 個のツール]
K[高度なクエリ<br/>5 個のツール]
A1[get_diagnostics]
B1[list_projects]
B2[get_project_info]
B3[get_solution_info]
C1[analyze_code]
D1[find_references]
D2[find_declarations]
D3[get_symbol_info]
E1[go_to_definition]
E2[get_type_hierarchy]
E3[get_member_hierarchy]
E4[get_semantic_model]
E5[get_syntax_tree]
E6[get_code_metrics]
E7[get_document_list]
F1[extract_method]
F2[rename_symbol]
F3[introduce_variable]
F4[encapsulate_field]
F5[extract_interface]
F6[change_signature]
F7[add_parameter]
F8[inline_temporary]
F9[safely_remove_as]
F10[remove_unnecessary_code]
F11[convert_for_to_foreach]
F12[convert_foreach_to_for]
F13[convert_if_to_switch]
F14[reverse_for_statement]
F15[list_refactorers]
G1[generate_interface_impl]
G2[generate_constructor]
G3[generate_property]
G4[generate_deconstructor]
G5[generate_from_usage]
G6[remove_unused_usings]
G7[sort_usings]
G8[add_missing_imports]
G9[organize_imports]
G10[format_document]
G11[format_selection]
H1[get_caller_info]
H2[get_callee_info]
H3[get_call_graph]
H4[compare_syntax_trees]
H5[get_code_diff]
H6[apply_code_change]
H7[resolve_symbol]
I1[get_test_coverage]
I2[find_dead_code]
I3[analyze_performance]
I4[generate_documentation]
J1[get_code_actions]
J2[get_refactorings]
J3[get_completion_list]
K1[get_definition_and_references]
K2[resolve_symbol]
K3[get_document_list]
K4[get_completion_list]
K5[get_refactorings]
A --> A1
B --> B1
B --> B2
B --> B3
C --> C1
D --> D1
D --> D2
D --> D3
E --> E1
E --> E2
E --> E3
E --> E4
E --> E5
E --> E6
E --> E7
F --> F1
F --> F2
F --> F3
F --> F4
F --> F5
F --> F6
F --> F7
F --> F8
F --> F9
F --> F10
F --> F11
F --> F12
F --> F13
F --> F14
F --> F15
G --> G1
G --> G2
G --> G3
G --> G4
G --> G5
G --> G6
G --> G7
G --> G8
G --> G9
G --> G10
G --> G11
H --> H1
H --> H2
H --> H3
H --> H4
H --> H5
H --> H6
H --> H7
I --> I1
I --> I2
I --> I3
I --> I4
J --> J1
J --> J2
J --> J3
K --> K1
K --> K2
K --> K3
K --> K4
K --> K5
style A fill:#ffcdd2
style B fill:#f8bbd0
style C fill:#e1bee7
style D fill:#d1c4e9
style E fill:#c5cae9
style F fill:#bbdefb
style G fill:#b3e5fc
style H fill:#b2ebf2
style I fill:#b2dfdb
style J fill:#c8e6c9
style K fill:#dcedc8
end
📦 インストール
ローカルビルド
dotnet build -c Release
dotnet test
dotnet test --filter "Category=Performance"
dotnet pack -c Release
GitHub Actions CI/CD
このプロジェクトはGitHub Actionsを使用して自動化されたビルドと公開を行っています。
- トリガー条件: mainブランチへのPush、Releaseの作成、手動トリガー
- ビルドフロー:
- 依存関係を復元
- テストを実行(CI環境ではパフォーマンステストをスキップ)
- NuGetパッケージを作成
- NuGet.orgに公開(Releaseのみ)
- GitHub Releaseを作成
注意: パフォーマンスベンチマークテストは実行環境に敏感であり、CI環境では自動的にスキップされます。ローカル開発時には dotnet test --filter "Category=Performance" を使用してパフォーマンステストを実行できます。
📄 ワークフローの設定を確認
バージョン戦略
- セマンティックバージョニング: SemVer 2.0 に従います。
- プレリリースバージョン:
-beta, -rc などの識別子を使用します。
- 自動公開: Gitタグをプッシュすると自動的に公開されます。
🗺️ 開発ロードマップ
DotNetAnalyzerの開発は複数のフェーズに分かれており、段階的に完全なコード分析機能を構築しています。
✅ フェーズ1: MCPサーバーの基礎 (完了)
状態: ✅ 完了 | 進捗: 275% (22/8 ツール)
MCPサーバーの基礎インフラを構築し、核心的なコード分析機能を実装しました。
完了した項目 (22 個のツール):
- ✅ MCP stdioプロトコルの実装(公式SDKを使用)
- ✅ MSBuildWorkspaceの統合
- ✅ プロジェクトのロードとキャッシュメカニズム
- ✅ エラー処理と分かりやすいエラーメッセージ
- ✅ コード診断、プロジェクト管理、シンボル検索、ドキュメント比較などの22個のツール
- ✅ .NET CLIツールのパッケージング設定
- ✅ 190個の単体テスト、100%の合格率
- ✅ GitHub Actions CI/CD
📄 詳細な提案を確認
✅ フェーズ2: ナビゲーションの強化 (完了)
状態: ✅ 完了 | 進捗: 117% (7/6 ツール)
コードのナビゲーションと意味クエリ機能を強化しました。
完了した項目 (7 個のツール):
- ✅
go_to_definition - 定義へのジャンプ
- ✅
get_type_hierarchy - 型の継承階層(基底型、派生型、インターフェースを含む)
- ✅
get_member_hierarchy - メンバーの階層構造(オーバーライド、隠蔽、インターフェースの実装)
- ✅
get_semantic_model - 意味モデルのアクセス(シンボル、型、定数値)
- ✅
get_syntax_tree - 構文木の詳細情報(JSON形式、範囲制限をサポート)
- ✅
get_code_metrics - コードの複雑度指標(循環複雑度、保守性指数など)
- ✅ 完全なデータモデルとテストカバレッジ
📄 詳細な提案を確認
✅ フェーズ3: コードリファクタリング (完了)
状態: ✅ 完了 | 進捗: 100% (15/15 ツール) | 優先度: 重要
一般的なコードリファクタリング操作を実装しました。
完了した項目 (15 個のツール):
- ✅
extract_method - メソッドの抽出(完全実装、プレビューと適用を含む)
- ✅
rename_symbol - シンボルの名前変更(ファイルをまたがって、コメントと文字列内でもサポート)
- ✅
introduce_variable - 変数の導入
- ✅
encapsulate_field - フィールドのカプセル化
- ✅
extract_interface - インターフェースの抽出
- ✅
change_signature - シグネチャの変更
- ✅
add_parameter - パラメータの追加
- ✅
inline_temporary - 一時変数のインライン化
- ✅
safely_remove_as - as変換の安全な削除
- ✅
remove_unnecessary_code - 不要なコードの削除
- ✅
convert_for_to_foreach - forループをforeachループに変換
- ✅
convert_foreach_to_for - foreachループをforループに変換
- ✅
convert_if_to_switch - if文をswitch文に変換
- ✅
reverse_for_statement - forループを逆にする
- ✅
list_refactorers - すべてのリファクタリングツールをリスト
フレームワークの状態: ✅ 完全 - RefactoringEngine、Validator、PreviewGeneratorが準備されています。
📄 詳細な提案を確認
✅ フェーズ4: コード生成と修正 (完了)
状態: ✅ 完了 | 進捗: 100% (11/11 ツール) | 優先度: 付加価値機能
自動的なコード生成と一般的な問題の修正を実装しました。
完了した項目 (11 個のツール):
- ✅
generate_interface_impl - インターフェースの実装を生成
- ✅
generate_constructor - コンストラクターを生成
- ✅
generate_property - プロパティを生成
- ✅
generate_deconstructor - デコンストラクターを生成
- ✅
generate_from_usage - 使用箇所から生成
- ✅
remove_unused_usings - 未使用のusingを削除
- ✅
sort_usings - using指令を並べ替え
- ✅
add_missing_imports - 欠落しているインポートを追加
- ✅
organize_imports - インポートを整理(未使用の削除 + 並べ替え)
- ✅
format_document - ドキュメントを整形
- ✅
format_selection - 選択範囲を整形
コード操作 (3 個のツール):
- ✅
get_code_actions - コード操作を取得
- ✅
get_refactorings - リファクタリング操作を取得
- ✅
get_completion_list - 補完リストを取得
📄 詳細な提案を確認
✅ フェーズ5: 高度な機能 (完了)
状態: ✅ 完了 | 進捗: 100% (7/7 ツール) | 優先度: 付加価値
高度なコード分析と洞察機能を提供しました。
完了した項目 (7 個のツール):
- ✅
get_caller_info - 呼び出し元の分析(呼び出し位置、タイプ、コンテキスト)
- ✅
get_callee_info - 被呼び出し元の分析(再帰深度分析)
- ✅
get_call_graph - 呼び出しグラフの生成(DOT形式、ノード分析)
- ✅
compare_syntax_trees - 構文木の比較(構造化された差分)
- ✅
get_code_diff - コードの差分を生成(unified diff)
- ✅
apply_code_change - コードの変更を適用(オプションの整形)
- ✅
get_document_list - ドキュメントのリスト
- ✅
resolve_symbol - シンボルの解析
- ✅
get_definition_and_references - 定義と参照を一度に取得
📄 詳細な提案を確認
📊 現在の進捗
最終更新: 2026-03-07
| フェーズ |
名前 |
状態 |
進捗 |
MCPツール数 |
| 1 |
MCPサーバーの基礎 |
✅ 完了 |
275% |
22/8 個 |
| 2 |
ナビゲーションの強化 |
✅ 完了 |
117% |
7/6 個 |
| 3 |
コードリファクタリング |
✅ 完了 |
100% |
15/15 個 |
| 4 |
コード生成と修正 |
✅ 完了 |
100% |
11/11 個 |
| 5 |
高度な機能 |
✅ 完了 |
100% |
7/7 個 |
| - |
コード操作 |
✅ 完了 |
100% |
3/3 個 |
| - |
高度なクエリ |
✅ 完了 |
100% |
5/5 個 |
| 6 |
コード品質と可視化 |
✅ 完了 |
100% |
4/4 個 |
合計: 74個のMCPツールが実装され、公開されています。
バージョンのマイルストーン
v0.7.0のマイルストーン (✅ 完了)
- ✅ フェーズ3の完全実装(15個のリファクタリングツール)
- ✅ フェーズ4の完全実装(11個のコード生成ツール)
- ✅ フェーズ5の完全実装(7個の高度な分析ツール)
- ✅ コード品質の向上(完全なXMLドキュメント、コード規約)
- ✅ 合計 70個のMCPツール
v0.6.1のマイルストーン (✅ 完了)
- ✅ CI/CDの全面的な最適化(マルチプラットフォームのビルド、NuGetのキャッシュ)
- ✅ フェーズ2の完全実装(7個のナビゲーションツール)
v0.6.0のマイルストーン (✅ 完了)
- ✅ 出力ディレクトリの統一最適化
- ✅ アーキテクチャの改善(インターフェース抽象、依存性注入、構造化ログ)
- ✅ 並行プロジェクトのロードとメモリ監視
- ✅ JSONシリアライゼーションの最適化(System.Text.Json)
- ✅ 190個の単体テスト、100%の合格率
- ✅ 完全なAPIドキュメントとサンプル
- ✅ パスのセキュリティ検証
- ✅ 増分分析の最適化
v0.5.0のマイルストーン (✅ 完了)
- ✅ .slnx XML形式のサポート
- ✅ Roslyn 5.0のアップグレード
- ✅ 並行テストの最適化
- ✅ パフォーマンスベンチマークテストセット
v0.4.0のマイルストーン (✅ 完了)
- ✅ 8個の核心的なMCPツールの完全実装
- ✅ LRUキャッシュとパフォーマンスの最適化
- ✅ プロジェクトの依存関係分析
- ✅ ビルド順序の計算
- ✅ 起動プロジェクトの識別
- ✅ 統合テストフレームワーク
- ✅ パフォーマンスベンチマークテスト
- ✅ 完全なドキュメント(README、CHANGELOG、CONFIGURATION、INTEGRATION_TESTING)
🤝 貢献
貢献を歓迎します!詳細は CONTRIBUTING.md を参照してください。
開発ガイド
- リポジトリをForkしてクローン
- 機能ブランチを作成:
git checkout -b feature/amazing-feature
- 変更をコミット:
git commit -m 'Add amazing feature'
- ブランチをプッシュ:
git push origin feature/amazing-feature
- Pull Requestを作成
コード規約
⚠️ 重要: すべての貢献者はプロジェクトのコーディング規約に従う必要があります。
核心的な要求:
- 単体テストのカバレッジを80%以上に維持する
- パブリックAPIにXMLドキュメントコメントを追加する
- コンパイル時に0警告、0エラーにする
dotnet format を実行してコードを整形する
ローカルテストツール
開発中はローカルでインストールしてテストすることができます。
dotnet pack -c Release
dotnet tool install --global DotNetAnalyzer --add-source ./src/DotNetAnalyzer.Cli/bin/Release
dotnet-analyzer --version
dotnet-analyzer mcp serve
dotnet tool uninstall --global DotNetAnalyzer
📄 ライセンス
このプロジェクトは MIT ライセンスの下で公開されています。
📚 ドキュメント
ユーザーガイド
開発者ドキュメント
- 統合テストガイド - 統合テストの実行と作成方法
- ツールテストガイド - MCPツールのテストガイド
- トラブルシューティング - 一般的な問題の解決策
- CLAUDE.md - Claude Codeに対するプロジェクトの説明
プロジェクトドキュメント
- CHANGELOG - バージョンの更新履歴
- CONTRIBUTING.md - 貢献ガイド
- CODE_OF_CONDUCT.md - 行動規範
- SECURITY.md - セキュリティポリシー
コミュニティ
🙏 謝辞
📞 連絡先
📊 プロジェクトの状態
- ✅ v0.8.0が公開されました - すべての70個のMCPツールが実装されています。
- ✅ 0警告0エラー - コード品質が本番環境の基準を満たしています。
- ✅ 190/190のテストが合格 - すべてのフレームワークで100%の合格率です。
- ✅ NuGetに公開されました -
dotnet tool install --global DotNetAnalyzer でインストールできます。