MCP Docker Host Bridge——让 Docker 容器内的 AI 助手操控 Windows 宿主机
痛点
AI 助手(Claude Code、Cline、Roo Code、AstrBot 等)运行在 Docker 容器中时,所有的工具调用——命令执行、文件读写、进程管理——都被限制在容器内部。它们接触不到 Windows 宿主机。
但很多时候我们真的需要这个能力:
- 让 Claude Code 直接在宿主机上执行
ipconfig、netstat排查网络问题 - 让 AstrBot 读取宿主机上的日志文件发到 QQ 群
- 让 AI 助手在宿主机上打开浏览器、启动应用
- 监控宿主机 CPU、内存、磁盘使用情况
MCP(Model Context Protocol,模型上下文协议) 正是为解决这类"AI 需要操作外部系统"的问题而生的标准协议。
项目介绍
MCP Docker Host Bridge 是一个轻量级的 Python 项目,在 Windows 宿主机上运行一个 MCP 服务器,通过 SSE(Server-Sent Events)传输协议将宿主机能力以标准 MCP 工具的形式暴露给 Docker 容器内的任何 MCP 客户端。
项目地址
👉 https://github.com/hastunemiku05231/mcp-docker-host-bridge
架构图
Docker 容器 Windows 宿主机
┌─────────────────────┐ ┌─────────────────────┐
│ 你的应用 │ │ python │
│ (MCP 客户端) ───────┼─ host.docker │ windows_mcp_ │
│ │ .internal: │ server.py │
│ Claude Code │ 8919/sse │ │
│ Cline / Roo Code │ │ 工具: │
│ AstrBot │ │ • execute_command │
│ 任何 MCP 客户端 │ │ • get_system_info │
└─────────────────────┘ │ • read_file │
│ • write_file │
│ • list_processes │
│ • open_application │
└─────────────────────┘
6 个内置工具
| 工具 | 功能 | 使用的 Shell |
|---|---|---|
execute_command |
执行 cmd.exe 或 PowerShell 命令 | cmd / powershell |
get_system_info |
获取 OS 版本、CPU、内存、磁盘信息 | powershell |
read_file |
读取文本文件(支持 UTF-8 / GBK) | — |
write_file |
写入或追加文件内容 | — |
list_processes |
按 CPU 使用率列出进程 | powershell |
open_application |
通过默认程序打开 exe/文件/URI | — |
快速开始
1. Windows 宿主机上安装依赖
pip install "mcp[cli]" uvicorn starlette
2. 启动 MCP 服务器
python windows_mcp_server.py
看到以下输出即启动成功:
MCP Docker Host Bridge starting on http://0.0.0.0:8919/sse
Health: http://0.0.0.0:8919/health
PID: 8412
3. 配置容器内的应用
创建 mcp_client_config.json:
{
"mcpServers": {
"windows_host": {
"url": "http://host.docker.internal:8919/sse",
"transport": "sse",
"timeout": 30,
"sse_read_timeout": 300
}
}
}
在 docker-compose.yml 中挂载配置:
services:
your-app:
image: your-app:latest
volumes:
- ./mcp_client_config.json:/path/in/container/mcp_config.json:ro
extra_hosts:
- "host.docker.internal:host-gateway"
注意:
host.docker.internal是 Docker Desktop 提供的内置 DNS 名称,自动解析到宿主机 IP,无需手动配置网络。
4. 使用
应用连接后,你的 AI 助手就可以直接调用这些工具了:
- “在宿主机上运行
ipconfig” - “查看宿主机系统信息”
- “读取宿主机上的
C:\logs\app.log” - “列出宿主机上占用 CPU 最高的进程”
安全设计
服务器内置了黑名单机制,在执行命令前进行安全检查:
默认拦截的命令:
- 系统命令:
shutdown、reboot、format、diskpart - 文件破坏:
del、rmdir、reg delete - 用户管理:
net user、net localgroup - PowerShell cmdlet:
Remove-Item、Format-Volume、Stop-Computer
自定义黑名单:
# 添加额外屏蔽
$env:MCP_BRIDGE_BLOCKED_CMDS = "taskkill,sc,reg"
python windows_mcp_server.py
配置选项
所有配置通过环境变量完成:
| 环境变量 | 默认值 | 说明 |
|---|---|---|
MCP_BRIDGE_HOST |
0.0.0.0 |
绑定地址 |
MCP_BRIDGE_PORT |
8919 |
监听端口 |
MCP_BRIDGE_BLOCKED_CMDS |
内置列表 | 额外屏蔽的 cmd 命令 |
MCP_BRIDGE_BLOCKED_PS_CMDLETS |
内置列表 | 额外屏蔽的 PowerShell cmdlet |
实际应用场景
场景 1:Claude Code 在容器中控制宿主机
Claude Code 运行在 Docker 容器中,通过 MCP 协议连接宿主机上的桥接服务器,可以直接执行宿主机的命令、读写文件。
场景 2:AstrBot QQ 机器人获取宿主机信息
AstrBot 配置了 MCP 客户端后,在 QQ 群里发一条 查看宿主机CPU温度,机器人就会调用 MCP 工具在宿主机上执行命令,把结果返回群里。
场景 3:自动化 CI/CD
容器化的构建工具链通过 MCP 桥接调用宿主机上的原生编译工具、签名工具等。
工作原理
MCP (Model Context Protocol) 是 Anthropic 提出的开放协议,定义了一套标准化的接口规范,让 AI 模型能够调用外部工具和访问外部数据。
本项目实现了 MCP 协议的 SSE(Server-Sent Events) 传输模式:
- 服务器在
http://0.0.0.0:8919/sse启动 HTTP 端点 - 容器内的 MCP 客户端通过
host.docker.internal:8919发起连接 - 客户端与服务端通过
initialize→tools/list→tools/call的标准流程交互 - 所有工具调用在宿主机上执行,结果通过 SSE 流返回给容器
总结
MCP Docker Host Bridge 解决了一个很具体的痛点:“AI 在容器里,但我想让它操作宿主机”。它只有单个 Python 文件、零外部依赖(除了 MCP SDK),配置简单,安全可控。
如果你也在 Windows 上用 Docker 跑 AI 助手,不妨试试这个项目。
GitHub 仓库:https://github.com/hastunemiku05231/mcp-docker-host-bridge
许可证:MIT
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)