这是一个基于TCP的模型上下文协议(MCP)服务器,专为在Windows上构建、测试和运行.NET Framework项目而设计。借助该工具,Claude Code(可运行于WSL或其他环境)能够使用Windows构建工具链远程构建.NET Framework项目。
此MCP服务器在AI助手(如Claude)和Windows .NET Framework构建环境之间搭建了桥梁,适用于以下场景:
git clone https://github.com/yourusername/dotnet-framework-mcp
cd dotnet-framework-mcp
build-on-windows.bat
此操作会在publish文件夹中创建一个自包含的可执行文件。run-tcp-server.bat
服务器将开始监听3001端口。由于Claude Code仅可在macOS/Linux上运行,Windows用户需在WSL2中运行它。该桥接功能可实现Claude Code(在WSL2中)与MCP服务器(在Windows上)之间的通信:
localhost,在许多设置中均可正常工作。wsl-mcp-bridge.sh):使用netcat建立TCP连接:
nc localhost 3001。具体流程如下:
Claude Code (WSL2) → 桥接脚本 → netcat → localhost:3001 → Windows MCP Server
你无需直接与netcat交互,它被封装在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
该服务实现了以下MCP工具:
用于构建.NET项目或解决方案。 参数:
path(字符串,必填):.csproj或.sln文件的路径。configuration(字符串):构建配置(Debug/Release)。platform(字符串):目标平台(Any CPU/x86/x64)。restore(布尔值):是否恢复NuGet包。用于运行.NET测试项目中的测试。 参数:
path(字符串,必填):测试项目的路径。filter(字符串):测试过滤表达式。verbose(布尔值):是否启用详细输出。用于执行.NET控制台应用程序。 参数:
path(字符串,必填):项目路径。args(数组):命令行参数。workingDirectory(字符串):工作目录。用于获取解决方案结构的信息。 参数:
path(字符串,必填):.sln文件的路径。用于列出项目中的NuGet包。 参数:
path(字符串,必填):项目路径。若Claude Code在WSL中运行,而MCP服务器在Windows上:
build-on-windows.bat
此操作会在publish文件夹中创建一个自包含的可执行文件。run-tcp-server.bat
或者直接执行:publish\DotNetFrameworkMCP.Server.exe --port 3001
start-tcp-server.bat
或者手动执行:dotnet run --project src\DotNetFrameworkMCP.Server -- --port 3001
{
"mcpServers": {
"dotnet-framework": {
"command": "/path/to/project/wsl-mcp-bridge.sh",
"env": {
"MCP_DEBUG": "true"
}
}
}
}
sudo apt install netcat-openbsd
publish文件夹。run-tcp-server-vs2022.bat明确指定使用VS2022的MSBuild。set MSBUILD_PATH=C:\Path\To\MSBuild\Bin。# 选项1:查找Windows主机IP(适用于默认NAT模式):
ip route show | grep -i default | awk '{ print $3}'
# 或者检查名称服务器:
cat /etc/resolv.conf | grep nameserver
# 选项2:启用镜像模式网络(Windows 11 22H2+)
# 在Windows用户目录的.wslconfig中添加:
# [wsl2]
# networkingMode=mirrored
然后将wsl-mcp-bridge.sh中的WINDOWS_HOST更新为使用IP地址而非"localhost"。使用提供的测试脚本:
./test-tcp-server.sh
或者使用netcat进行测试:
echo '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2025-06-18"}}' | nc localhost 3001
可参考test-messages.json中的示例MCP协议消息,用于测试不同功能。
该服务可通过appsettings.json或环境变量进行配置:
{
"McpServer": {
"MsBuildPath": "auto",
"DefaultConfiguration": "Debug",
"DefaultPlatform": "Any CPU",
"TestTimeout": 300000,
"BuildTimeout": 1200000,
"EnableDetailedLogging": false,
"PreferredVSVersion": "2022",
"UseDotNetCli": false,
"DotNetPath": "dotnet"
}
}
PreferredVSVersion设置用于控制在安装多个版本时使用哪个Visual Studio版本的MSBuild和VSTest工具:
"2022":优先使用Visual Studio 2022工具(默认)。"2019":优先使用Visual Studio 2019工具。"auto":使用任何可用版本(先搜索2022,再搜索2019)。环境变量使用MCPSERVER_前缀,例如:
MCPSERVER_DefaultConfiguration=ReleaseMCPSERVER_EnableDetailedLogging=trueMCPSERVER_PreferredVSVersion=2019MCPSERVER_UseDotNetCli=trueMCP服务器现在支持使用dotnet CLI作为MSBuild/VSTest的替代方案。在以下情况下可能会很有用:
要启用dotnet CLI模式:
appsettings.json):{
"McpServer": {
"UseDotNetCli": true
}
}
set MCPSERVER__UseDotNetCli=true
注意:dotnet CLI在处理较旧的.NET Framework项目时存在一些限制:
当UseDotNetCli启用时:
dotnet build代替MSBuild.exe。dotnet test代替VSTest.Console.exe。🎉 首个版本发布 - .NET Framework的构建和测试核心功能已完成。
build_project - 构建.NET Framework解决方案和项目。run_tests - 执行测试,提供详细的错误报告和堆栈跟踪。run_project - 执行控制台应用程序。analyze_solution - 解决方案结构分析。list_packages - 列出NuGet包。核心特性:
要求:
[在此添加许可证信息]