🚀 Windows用.NET Framework MCPサーバー
Windows上で.NET Frameworkプロジェクトの構築、テスト、実行を行うために特別に設計された、TCPベースのモデルコンテキストプロトコル(MCP)サーバーです。このツールにより、WSLや他の環境で動作するClaude CodeがWindowsのビルドツールチェーンを使用して.NET Frameworkプロジェクトをリモートで構築できます。
🚀 クイックスタート
このMCPサーバーは、AIアシスタント(Claudeなど)とWindowsの.NET Frameworkビルド環境の橋渡しを行います。以下のようなシナリオに最適です。
- WSL/LinuxでClaude Codeを実行しているが、Windowsの.NET Frameworkプロジェクトを構築する必要がある場合
- Visual Studio MSBuildが必要なレガシー.NET Frameworkアプリケーションを構築する必要がある場合
- Windows上で.NET Framework開発のAI支援を利用したい場合
✨ 主な機能
- TCP専用アーキテクチャ:WSLや他の環境からのリモートアクセス用に設計されています。
- プロセスベースのMSBuild:最大限の互換性を得るために、MSBuild.exeを直接実行します。
- .NET Frameworkに特化:.NET Frameworkプロジェクト(.NET Core/.NET 5+ではない)用に特別に構築されています。
- ビルド操作:Debug/Release構成とプラットフォームターゲットを完全にサポートします。
- エラー解析:MSBuildのエラーと警告を構造化して解析します。
- 最小限の依存関係:必要なパッケージのみを使用したクリーンなアーキテクチャです。
📦 インストール
Windows側のセットアップ
- リポジトリをクローン:Windowsマシンで以下のコマンドを実行します。
git clone https://github.com/yourusername/dotnet-framework-mcp
cd dotnet-framework-mcp
- MCPサーバーをビルド:
build-on-windows.bat
これにより、publish
フォルダに自己完結型の実行可能ファイルが作成されます。
- TCPサーバーを起動:
run-tcp-server.bat
サーバーはポート3001で待機状態になります。
WSL/Linux側のセットアップ(Claude Code)
WSLからWindowsへのブリッジの仕組み
Claude CodeはmacOS/Linuxでのみ動作するため、WindowsユーザーはWSL2で実行する必要があります。ブリッジにより、WSL2のClaude CodeとWindowsのMCPサーバーの間の通信が可能になります。
- MCPサーバー:Windows上でTCPサーバーとしてポート3001で待機します。
- Claude Code:WSL2で実行され、WindowsのMCPサーバーに接続する必要があります。
- WSL2のネットワーク:デフォルトでは、WSL2はNATベースのネットワークを使用します。WSL2からWindowsに接続するには、以下の点に注意してください。
- WSL2のデフォルトのNATモードでは、localhostではなくWindowsホストのIPを使用する必要がある場合があります。
- Windows 11 22H2以降では、"Mirrored Mode"ネットワークが提供され、localhostの接続性が向上します。
- ブリッジスクリプトは多くの設定で動作する
localhost
を使用するように構成されています。
- ブリッジスクリプト (
wsl-mcp-bridge.sh
):netcatを使用してTCP接続を確立します。
- Claude Codeがブリッジスクリプトを実行します。
- スクリプトは
nc localhost 3001
を実行します。
- これにより、WSL2のlocalhost転送を介してWindowsのMCPサーバーに接続されます。
- すべてのMCPプロトコル通信はこのTCP接続を介して行われます。
フローは以下のようになります。
Claude Code (WSL2) → ブリッジスクリプト → netcat → localhost:3001 → Windows MCPサーバー
netcatに直接触れることはなく、Claude Codeが自動的に実行するブリッジスクリプトの中にラップされています。
設定手順
- Claude Codeを設定:
~/.config/Claude/claude_desktop_config.json
を編集します。{
"mcpServers": {
"dotnet-framework": {
"command": "/path/to/wsl-mcp-bridge.sh",
"env": {
"MCP_DEBUG": "true"
}
}
}
}
- ブリッジスクリプトを作成:(プロジェクトの場所に合わせてパスを調整してください)
#!/bin/bash
exec nc localhost 3001
- 実行可能にする:
chmod +x wsl-mcp-bridge.sh
- Claude Codeを再起動:設定を反映させます。
💻 使用例
基本的な使用法
このサービスは以下のMCPツールを実装しています。
build_project
.NETプロジェクトまたはソリューションをビルドします。
パラメーター:
path
(文字列、必須):.csprojまたは.slnファイルへのパス
configuration
(文字列):ビルド構成(Debug/Release)
platform
(文字列):ターゲットプラットフォーム(Any CPU/x86/x64)
restore
(ブール値):NuGetパッケージを復元するかどうか
run_tests
.NETテストプロジェクトのテストを実行します。
パラメーター:
path
(文字列、必須):テストプロジェクトへのパス
filter
(文字列):テストフィルター式
verbose
(ブール値):詳細出力を有効にするかどうか
run_project
.NETコンソールアプリケーションを実行します。
パラメーター:
path
(文字列、必須):プロジェクトへのパス
args
(配列):コマンドライン引数
workingDirectory
(文字列):作業ディレクトリ
analyze_solution
ソリューション構造に関する情報を取得します。
パラメーター:
path
(文字列、必須):.slnファイルへのパス
list_packages
プロジェクト内のNuGetパッケージをリストします。
パラメーター:
高度な使用法
Claude Codeを使用したテスト(WSLからWindows)
Claude CodeがWSLで実行されているが、MCPサーバーをWindows上で使用する場合。
オプション1:一度ビルドして、コンパイル済みの実行可能ファイルを実行(推奨)
- Windows上でプロジェクトをビルド:
build-on-windows.bat
これにより、publish
フォルダに自己完結型の実行可能ファイルが作成されます。
- TCPサーバーを起動:
run-tcp-server.bat
または直接:publish\DotNetFrameworkMCP.Server.exe --port 3001
オプション2:毎回ビルドして実行
- TCPサーバーを起動(必要に応じてビルドします):
start-tcp-server.bat
または手動で:dotnet run --project src\DotNetFrameworkMCP.Server -- --port 3001
- WSL内のClaude Codeを設定:
{
"mcpServers": {
"dotnet-framework": {
"command": "/path/to/project/wsl-mcp-bridge.sh",
"env": {
"MCP_DEBUG": "true"
}
}
}
}
- WSL内にnetcatがインストールされていることを確認:
sudo apt install netcat-openbsd
Windowsで事前ビルドするメリット
- 起動が速い:サーバーを起動する際にビルド時間がかからない。
- ビルド依存関係が不要:コンパイル済みの実行可能ファイルにはすべての依存関係が含まれている。
- 動作が一貫している:毎回同じ実行可能ファイルが使用される。
- デプロイが容易:
publish
フォルダをコピーするだけで済む。
トラブルシューティング
手動テスト
提供されているテストスクリプトを使用します。
./test-tcp-server.sh
またはnetcatでテストします。
echo '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2025-06-18"}}' | nc localhost 3001
利用可能なテストメッセージ
さまざまな機能をテストするために送信できるMCPプロトコルメッセージの例は、test-messages.json
を参照してください。
📚 ドキュメント
設定
このサービスはappsettings.json
または環境変数を使用して設定できます。
{
"McpServer": {
"MsBuildPath": "auto",
"DefaultConfiguration": "Debug",
"DefaultPlatform": "Any CPU",
"TestTimeout": 300000,
"BuildTimeout": 1200000,
"EnableDetailedLogging": false,
"PreferredVSVersion": "2022",
"UseDotNetCli": false,
"DotNetPath": "dotnet"
}
}
設定オプション
- MsBuildPath:MSBuild.exeへのパス、または自動検出用の"auto"
- DefaultConfiguration:デフォルトのビルド構成(Debug/Release)
- DefaultPlatform:デフォルトのターゲットプラットフォーム(Any CPU/x86/x64)
- TestTimeout:テスト実行のタイムアウト(ミリ秒、デフォルト:5分)
- BuildTimeout:ビルドのタイムアウト(ミリ秒、デフォルト:20分)
- EnableDetailedLogging:詳細ログを有効にするかどうか
- PreferredVSVersion:優先するVisual Studioのバージョン("2022"、"2019"、または"auto")
- UseDotNetCli:MSBuild/VSTestの代わりにdotnet CLIを使用するかどうか(デフォルト:false)
- DotNetPath:dotnet CLI実行可能ファイルへのパス(デフォルト:"dotnet")
PreferredVSVersion設定は、複数のバージョンのVisual Studioがインストールされている場合に、どのバージョンのMSBuildとVSTestツールを使用するかを制御します。
"2022"
:Visual Studio 2022のツールを優先する(デフォルト)
"2019"
:Visual Studio 2019のツールを優先する
"auto"
:利用可能な任意のバージョンを使用する(最初に2022を検索し、次に2019を検索する)
環境変数はMCPSERVER_
という接頭辞を使用します。例えば:
MCPSERVER_DefaultConfiguration=Release
MCPSERVER_EnableDetailedLogging=true
MCPSERVER_PreferredVSVersion=2019
MCPSERVER_UseDotNetCli=true
MSBuildの代わりにdotnet CLIを使用する
MCPサーバーは現在、MSBuild/VSTestの代わりにdotnet CLIを使用することをサポートしています。これは以下の場合に便利です。
- Visual StudioまたはBuild Toolsがインストールされていない場合
- .NET SDKツールチェーンを使用することを好む場合
- dotnet CLIをサポートする新しい.NETプロジェクトを扱っている場合
dotnet CLIモードを有効にするには:
-
設定ファイルを介して (appsettings.json
):
{
"McpServer": {
"UseDotNetCli": true
}
}
-
環境変数を介して:
set MCPSERVER__UseDotNetCli=true
注意:dotnet CLIは古い.NET Frameworkプロジェクトを扱う際にいくつかの制限があります。
- 一部のプロジェクトタイプが完全にサポートされない場合があります。
- 複雑なビルド構成ではMSBuildが必要になる場合があります。
- レガシープロジェクト形式(SDK形式以前の.csproj)のサポートが制限されている場合があります。
UseDotNetCli
が有効になっている場合:
dotnet build
がMSBuild.exeの代わりに使用されます。
dotnet test
がVSTest.Console.exeの代わりに使用されます。
🔧 技術詳細
開発状況
🎉 初回リリース準備完了 - .NET Frameworkのビルドとテストのためのコア機能が完了しました。
✅ 完了(リリース準備完了)
- コアインフラストラクチャ:MCPプロトコル、TCPサーバー、設定管理
- ビルドシステム:VSバージョン選択機能付きのMSBuild統合、出力解析、エラー処理
- テストランナー:詳細な結果を得るためのTRX解析付きのマルチフレームワークサポート(NUnit/xUnit/MSTest)
- 品質機能:キャンセルサポート、インテリジェントな出力切り捨て、包括的なログ記録
- クロスプラットフォーム:Claude Code統合用のWSLからWindowsへの通信ブリッジ
🚀 利用可能なMCPツール
build_project
- .NET Frameworkソリューションとプロジェクトをビルドする
run_tests
- 詳細なエラー報告とスタックトレース付きでテストを実行する
📋 将来的な機能強化(リリース後)
- ⏳
run_project
- コンソールアプリケーションを実行する
- ⏳
analyze_solution
- ソリューション構造の分析
- ⏳
list_packages
- NuGetパッケージのリスト表示
- ⏳ 認証とセキュリティ - 安全なアクセスのためのAPIキーまたはトークンベースの認証
- ⏳ 強化されたデバッグとプロファイリングの統合
リリースノート
v1.0.0 - 初回リリース
コア機能:
- WSLからWindowsへの通信のためのTCPサーバー付きの完全なMCPプロトコル実装
- Visual Studio 2019/2022バージョン選択機能付きのMSBuild統合
- NUnit、xUnit、およびMSTestフレームワークをサポートする包括的なテストランナー
- 正確なエラーメッセージ、スタックトレース、およびクラス名を得るためのTRXファイル解析
- Claude Codeの25kトークン制限に準拠するためのインテリジェントな出力切り捨て
- 堅牢なエラー処理、ビルドキャンセル、およびタイムアウト管理
- appsettings.jsonと環境変数を介した広範な設定オプション
要件:
- Visual Studio 2019または2022(またはBuild Tools)がインストールされたWindows
- .NET Frameworkプロジェクトとソリューション
- Claude Code統合用のWSL環境(オプション)
📄 ライセンス
[ここにライセンスを追加してください]