RR MCP Server for .NET Analysis について
PowerShell スクリプトで .NET ソリューションからインターフェース、OpenAPI、データモデルの構造を抽出する MCP サーバーです。ソース内容を公開せずに AI エージェントへプロジェクトの概要を渡し、解析結果をキャッシュします。
主な機能
- 01インターフェースと OpenAPI 情報の抽出
- 02モデル、エンティティ、列挙型の抽出
- 03プロジェクト単位の結果キャッシュ
- 04相対・絶対パスのソリューションに対応
- 05PowerShell 7 によるクロスプラットフォーム実行
活用シーン
- 01コーディングエージェントへの .NET 構造の提供
- 02ソリューション内のインターフェースとデータ型の確認
- 03再解析時のキャッシュ結果の再利用
MCP 対応
`GetInterfaces` や `GetData` などのツールを MCP クライアントに公開します。クライアントは `.sln` のパスを渡して、インターフェースやデータ構造の情報を取得します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
.NET 分析用 RR MCP サーバー
PowerShell スクリプトを使用して、あらゆる .NET ソリューションから .NET のインターフェース、OpenAPI、データ(モデル/エンティティ/列挙型)に関する情報を抽出する、汎用 MCP サーバーです。 内容を公開せずに、AI に大規模プロジェクトの構造と抽象化情報を提供することを目的としています。
.NET ソリューションの AI 管理と自動化に向けて、今後さらに多くのツールを追加する予定です。
依存関係
- ModelContextProtocol — Model Context Protocol サーバーおよびクライアント向けの公式 C# SDK です。GitHub
機能
- あらゆる .NET ソリューションからモデル、エンティティ、列挙型、インターフェースを抽出します
- AI エージェントにプロジェクトの構造とコンテキストをすべて提供し、重複した生成を防ぎます
- Cursor、Copilot、Claude、または MCP 互換ツールですぐに使用できます
- キャッシュにより高速に動作し、クリーンな出力(stdout に余計な出力なし)と、ファイルへの完全なログ記録を実現します
- スクリプトを自動検出し、相対/絶対パスの
.slnに対応します - クロスプラットフォーム(Windows、macOS、Linux)で動作し、PowerShell 7 以降が必要です
出力形式の例
データツール(GetData)
- モデル/エンティティ:
{ "n": "UserModel", "b": "BaseModel", "p": { "Id": "string", "Name": "string", "Age": "int" }, "prj": "My.Project.Namespace" }*Entityサフィックスが付いたクラスは、基底クラスの要件なしでエンティティとして含まれます。
- 列挙型:
{ "n": "StatusType", "m": { "Unknown": 0, "Active": 1, "Inactive": 2 }, "prj": "My.Project.Namespace" }
インターフェースツール(GetInterfaces)
- インターフェース:
{ "n": "IMyService", "b": "IBaseService", "d": "Service for handling user operations.", "m": [ "Task DoWork(string arg);", { "s": "Task<int> GetCount();", "d": "Gets the count." } ], "prj": "My.Project" }n:インターフェース名b:基底インターフェース(任意)d:インターフェースのドキュメント(任意)m:メソッド(シグネチャ文字列、またはドキュメントを含むオブジェクト)prj:プロジェクト名
命名規則
- モデル:
*Model - エンティティ:
*Entity - 列挙型:
*Type - インターフェース:
I*Service、I*Repositoryなど
スクリプトの手動実行(キャッシュのウォームアップまたはデバッグ用)
PowerShell スクリプトを直接実行して、事前にキャッシュをウォームアップしたり、出力をデバッグしたりできます。リポジトリのルート、または RR.MCP ディレクトリから実行してください。
インターフェースの場合:
pwsh -File RR.MCP/GetInterfacesPwsh.ps1 -SolutionFile MySolution.sln
データ(モデル/エンティティ/型)の場合:
pwsh -File RR.MCP/GetDataPwsh.ps1 -SolutionFile MySolution.sln
- Windows、macOS、Linux では、
pwsh(PowerShell 7 以降)が PATH に設定されていることを確認してください。 - 必要に応じて、別のソリューションファイルを指定できます。
- 出力は
.cache/に、ログはmcp_debug.log/mcp_data_debug.logに書き込まれます。
要件
- .NET 9.0 SDK 以降
- PowerShell 7.0 以降(システム環境変数 PATH に
pwshが設定されている必要があります)
セットアップ
-
クローンしてビルドする
git clone cd RR.MCP dotnet build -
MCP クライアントを設定する stdio MCP サーバーのエントリを追加します。例:
{ "mcpServers": { "rr-mcp": { "command": "dotnet", "args": ["run", "--project", "<absolute-path-to>/RR.MCP/RR.MCP.csproj"] } } }- サーバーは、利用可能なすべてのツール(インターフェース、データなど)を自動登録します。
-
使用方法 エージェントがツールを呼び出すためのルールを追加します。
GetInterfacesツールを呼び出して、インターフェース/OpenAPI 情報を抽出します。GetDataツールを呼び出して、構造を含むすべてのモデル、エンティティ、型(列挙型)を抽出します。.slnファイルのパスをsolutionFileパラメーターに渡します(絶対パス、またはサーバーの作業ディレクトリからの相対パス)。
ログ記録とデバッグ
- すべての C# エラーは
mcp_errors.log(出力ディレクトリ内)に記録されます。 - PowerShell スクリプトのすべての動作とエラーは、スクリプトと同じ場所にある
mcp_debug.log(インターフェース)およびmcp_data_debug.log(データ)に記録されます。 - PowerShell 7 未満で実行すると、PowerShell スクリプトはログを記録し、エラーを返します。
PowerShell スクリプト
- スクリプトは常に出力ディレクトリにコピーされ、
pwsh -File ...で実行されます。 - 重要な手順、パラメーター、エラーをすべて記録します。
- ソリューションファイルが見つからない場合やデータが検出されない場合は、適切にエラーを処理してログに記録します。
- キャッシュはプロジェクトごとに作成され、ハッシュベースで繰り返しの実行を高速化します。(大規模プロジェクトでは初回の実行に時間がかかるため、スクリプトを手動で実行してください)
カスタマイズ
- ほかのコード分析に対応させるには、
GetInterfacesPwsh.ps1またはGetDataPwsh.ps1を編集します。 - ツールを追加するには、C# ツールファイルに新しい
[McpServerTool]メソッドを追加します。
あらゆる AI IDE との統合
- この MCP サーバーは完全に汎用的であり、MCP stdio トランスポートに対応するあらゆる AI IDE またはツールと統合できます。
- ツールは自動検出され、簡単に利用できるよう OpenAPI を通じて説明されます。
- IDE 固有のロジックはなく、すべての出力がプロトコルに準拠しています。
Cursor との連携例
Cursor を使用している場合は、以下を .cursor/mcp.json に追加してください。
{
"mcpServers": {
"rr-mcp": {
"command": "dotnet",
"args": ["run", "--project", "<absolute-path-to>/RR.MCP/RR.MCP.csproj"]
}
}
}
貢献
- プルリクエストとイシューを歓迎します!
- すべての出力がプロトコルに準拠し、ログがすべてファイルにのみ出力されるようにしてください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。