一个模型上下文协议(MCP)服务器,使大型语言模型(LLMs)能够在隔离的Docker容器中执行.NET工作负载。编写C#代码,构建项目,托管Web API,并在多个.NET版本之间进行测试。
当前支持: 仅支持Claude Desktop 平台: 🍎 macOS | 🪟 Windows
使用FastMCP(Python)和Docker SDK构建。
💡 提示: 要获取最新版本,请再次运行自动安装程序。它会更新您的配置并拉取最新的Docker镜像。
重大变更:
dotnet_version 现在接受 "10" 而不是 "10-rc2"dotbox-mcp 是一个专用于在Claude Desktop上快速进行.NET实验和原型设计的工具 - 不是像Claude Code或Cursor那样的完整编码代理的替代品。
注意: 目前仅支持Claude Desktop。未来可能会添加对其他MCP客户端(如VS Code、Cursor等)的支持。
当您想要时使用 dotbox-mcp:
当您需要时使用 Claude Code:
通过隔离实现安全性: 所有的.NET代码都在具有资源限制、只读文件系统(除了 /workspace)和自动清理的临时Docker容器中运行。容器在使用后会被销毁,确保没有持久状态或安全风险。
示例:Claude 构建了一个完整的API密钥管理系统,包括CRUD端点、内存存储和密钥验证 - 从提示到运行中的API只需几秒钟。
此MCP服务器围绕代理中心的工作流程设计 - 提供完整的端到端工具,而不是低级Docker命令:
底层,它管理基于Alpine的Docker镜像,其中包含.NET SDK,处理构建/执行编排,并格式化输出以符合MCP的约束条件。
需求:
自动安装(推荐):
curl -fsSL https://raw.githubusercontent.com/domibies/dotbox-mcp/main/scripts/install-claude-desktop.sh | bash
安装程序做了什么:
手动安装:
编辑Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"dotbox-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--add-host",
"host.docker.internal:host-gateway",
"--user",
"1000:0",
"-v",
"/var/run/docker.sock:/var/run/docker.sock",
"ghcr.io/domibies/dotbox-mcp:latest"
]
}
}
}
注意事项:
--user 1000:0 以非root用户身份运行容器,具有root组访问权限(Docker套接字所需)--add-host 标志允许MCP服务器通过主机机器的端口映射访问沙盒容器中托管的Web API重启Claude Desktop
手动安装注意事项: 您的第一个请求可能在下载Docker镜像时失败或超时(约1GB,1-2分钟)。只需等待一分钟,重启Claude Desktop,然后重试。自动安装程序在安装过程中拉取镜像以避免此延迟。
需求:
自动安装(推荐):
打开PowerShell并运行:
irm https://raw.githubusercontent.com/domibies/dotbox-mcp/main/scripts/install-claude-desktop.ps1 | iex
安装程序做了什么:
%APPDATA%\Claude\claude_desktop_config.json前提条件设置:
安装Docker Desktop:
启用Docker TCP端口(必需):
⚠️ 安全提示: 这会在没有身份验证的情况下暴露Docker API。仅在受信任的网络(本地/私有)上启用。
手动安装:
编辑Claude Desktop配置(按 Win + R,键入 %APPDATA%\Claude,按Enter,然后打开 claude_desktop_config.json):
{
"mcpServers": {
"dotbox-mcp": {
"command": "C:\\Program Files\\Docker\\Docker\\resources\\bin\\docker.exe",
"args": [
"run",
"--rm",
"-i",
"--add-host",
"host.docker.internal:host-gateway",
"-e",
"DOCKER_HOST=tcp://host.docker.internal:2375",
"ghcr.io/domibies/dotbox-mcp:latest"
]
}
}
}
注意事项:
DOCKER_HOST环境变量连接到Docker守护进程重启Claude Desktop
手动安装注意事项: 您的第一个请求可能在下载Docker镜像时失败或超时(约1GB,1-2分钟)。只需等待一分钟,重启Claude Desktop,然后重试。自动安装程序在安装过程中拉取镜像以避免此延迟。
macOS:
~/Library/Application Support/Claude/claude_desktop_config.json~/Library/Application Support/Claude/logs/mcp-server-dotbox-mcp.logWindows:
http://localhost:2375/version(应显示Docker版本JSON)C:\Program Files\Docker\Docker\resources\bin\docker.execommand路径%APPDATA%\Claude\claude_desktop_config.json%APPDATA%\Claude\logs\mcp-server-dotbox-mcp.log注意: 当您希望看到格式化的结果时,请明确请求输出显示。
快速代码片段:
使用Bogus库生成10个假的Person记录,并运行它。
在工件中显示JSON输出,以便我可以正确格式化查看。
编写并执行使用LINQ分组产品类别并计算平均价格的C#代码。
在工件中显示结果。
生成12个长度的随机可发音密码,共10个。
执行它并显示输出。解释您是如何做到的,并在工件中显示代码。
给我一个.NET 10的新特性的快速示例并运行它。
Web API(后台运行):
创建并托管一个简单的.NET 8 URL缩短器API,具有内存存储。包括:
- POST /api/shorten(接收长URL,返回短码)
- GET /{shortCode}(重定向到原始URL)
- GET /api/stats/{shortCode}(显示点击次数)
在后台托管它,并给我测试的URL。
构建一个用于生成和验证临时访问码(如2FA令牌)的.NET 9 API。
在后台托管它,以便我可以测试创建和验证代码。
有改进的想法吗? 我们欢迎贡献!如果您可以实现容器池、提高启动时间或增强用户体验,请提交PR。请参阅下方的开发与贡献部分以了解指南。
状态: ✅ MVP完成 - 所有核心工具正常工作,正在进行改进和优化。
对于希望修改代码或测试未发布功能的贡献者:
克隆并安装依赖项:
git clone https://github.com/domibies/dotbox-mcp.git
cd dotbox-mcp
uv sync
构建Docker镜像:
cd docker
./build-images.sh
注意: 开发工作流程目前仅适用于macOS。
使用切换脚本在开发模式之间切换:
选项1:使用uv的开发(推荐用于代码更改)
# 配置Claude Desktop从源代码运行并使用uv
python3 scripts/toggle-claude-desktop-config.py dev
# 重启Claude Desktop
此模式:
选项2:使用Docker的开发(测试容器化设置)
# 构建所有镜像(沙箱+服务器)
./scripts/build-docker-dev.sh
# 配置Claude Desktop在Docker中运行
python3 scripts/toggle-claude-desktop-config.py docker
# 重启Claude Desktop
此模式:
:dev的本地镜像切换回生产模式:
python3 scripts/toggle-claude-desktop-config.py production
所有切换操作都会保留您配置中的其他MCP服务器。
# 单元测试(快速,模拟Docker)
uv run pytest -v -m "not e2e"
# 端到端测试(需要运行Docker,根据需要拉取镜像)
uv run pytest -v -m e2e
# 带覆盖率
uv run pytest --cov=src --cov-report=term-missing -m "not e2e"
始终在功能分支上工作:
git checkout -b feature/your-feature
# 进行更改,提交,推送
git push -u origin feature/your-feature
# 通过GitHub创建PR
永远不要直接推送到main - 所有更改都需通过带有CI验证的PR。