使用说明
码头化MCP桥
强健的 模型上下文协议(MCP)桥 用Rust写的。此CLI工具充当透明代理,使本地MCP客户端(如Claude Desktop或Libr Agent)能够与在隔离的Docker容器内运行的MCP服务器安全通信。
🚀 特性
- 孤立:所有MCP服务器都在临时Docker容器内运行,保护您的主机系统。
- 透明度:无缝管道标准I/O(Stdin/Stdout),因此主机客户端不知道Docker层。
- 并发:使用基于UUID的容器命名来支持多个并行会话而不会发生冲突。
- 自动清理:即使进程中断(Ctrl+C),也保证在退出时删除容器。
- 易于安装:卷装载的自动绝对路径分辨率。
- 交叉平台的:适用于Linux、macOS和Windows的二进制文件。
📦 安装
快速安装(推荐)
下载适用于您平台的最新版本的单行安装脚本:
curl -fsSL https://raw.githubusercontent.com/fritzprix/mcp-bridge/master/install.sh | bash
这将:
- 自动检测您的操作系统和体系结构(Linux/MOSC/Windows,x86_64/aarch64)
- 从GitHub版本下载最新二进制文件
- 安装到
~/.local/bin(可定制INSTALL_DIR) - 验证Docker可用性
手动下载
从以下网址下载适用于您平台的最新版本 发布 页面:
- Linux:
mcp-bridge-x86_64-unknown-linux-gnu - macOS(英特尔):
mcp-bridge-x86_64-apple-darwin - macOS(苹果硅):
mcp-bridge-aarch64-apple-darwin - 窗户:
mcp-bridge-x86_64-pc-windows-msvc.exe
从源代码构建
git clone https://github.com/fritzprix/mcp-bridge.git
cd mcp-bridge
cargo build --release
# Binary will be at ./target/release/mcp-bridge
🛠 用法
这 mcp-bridge CLI封装Docker命令参数以简化执行。
mcp-bridge [OPTIONS] [COMMAND]...
选项
--image <IMAGE>:要使用的Docker镜像(默认值:ghcr.io/fritzprix/mcp-agent:latest).-v, --mount <SRC:DST>:将主机目录装载到容器路径。可以多次使用。相对主机路径会自动解析为绝对路径。-e, --env <KEY=VALUE>:设置环境变量。可以多次使用。[COMMAND]...:在容器内运行的命令(例如。,node build/index.js,python server.py).
便利包装(可选)
为了简化使用,您可以使用提供的包装器脚本:
# Download the wrapper
curl -fsSL https://raw.githubusercontent.com/fritzprix/mcp-bridge/master/mcp-bridge.sh -o mcp-bridge.sh
chmod +x mcp-bridge.sh
# Run with defaults (mounts current directory)
./mcp-bridge.sh run
# Open interactive shell
./mcp-bridge.sh shell
# Use custom image
./mcp-bridge.sh custom alpine -- sh -c "echo hello"
例子
快速入门(使用预构建映像)
# Mount current directory and run the agent
mcp-bridge --mount $(pwd):/workspace
自定义图像的基本用法
从任何Docker镜像运行MCP服务器:
mcp-bridge --image alpine -- sh -c "echo 'Starting MCP Server...'"
安装目录
挂载当前目录(.)to /app 在容器中:
mcp-bridge --image my-mcp-server \
--mount .:/app \
-- node /app/index.js
注入环境变量
传递API密钥或配置:
mcp-bridge --env API_KEY=secret123 \
--env DEBUG=true \
-- python main.py
🏗 建筑
- CLI条目:解析参数,解析挂载的相对路径,并生成唯一的会话ID(UUID)。
- 容器创建:生成Docker容器(
mcp-bridge-{uuid})与Tty: false以确保干净的JSON-RPC通信。 - I/O管道:异步管道主机标准→ 集装箱标准和集装箱标准→ 主机标准输出使用
tokio. - 日志分离:所有网桥日志(连接状态、错误)都发送到 标准 所以它们不会破坏Stdout上的MCP协议。
- 清理:自定义
Drop实施确保docker rm -f当桥接进程终止时调用。
🧪 发展
运行测试
cargo test
本地验证
# Verify clean exit behavior
cargo run -- --image alpine -- sh -c "echo clean_exit"
🤖 Mcp代理
该项目在 agent/ 目录,设计用于在网桥管理的Docker环境中运行。
特性
- 外壳性能:执行命令,管理后台进程。
- 文件系统能力:已优化
search_files(ripgrep),directory_tree(树)和标准文件操作。 - 资源:通过以下方式观察正在运行的流程
internal://processes/list.
用法
快速入门(预构建映像):
# Use the pre-built image from GitHub Container Registry
mcp-bridge --mount $(pwd):/workspace
或者在本地构建:
cd agent
npm install
npm run build
docker build -t mcp-agent .
# Run with local image
mcp-bridge --image mcp-agent --mount $(pwd):/workspace
� 客户端配置
将其与 克劳德桌面版 或其他MCP客户端,将以下内容添加到您的配置文件中(例如。, claude_desktop_config.json):
{
"mcpServers": {
"docker-agent": {
"command": "/path/to/mcp-bridge",
"args": [
"--mount", "/absolute/path/to/your/project:/workspace"
]
}
}
}
备注:替换
/path/to/mcp-bridge带有编译二进制文件的绝对路径/absolute/path/to/your/project使用您希望代理访问的目录。默认图像(ghcr.io/fritzprix/mcp-agent:latest)将自动拉动。
