
MCP SSH Docker Server

2025.05.01
0
Python远程命令执行Docker管理开发效率
MCP SSH Docker Server 是一个基于消息控制协议(MCP)的服务,提供SSH和Docker命令执行能力。该服务允许用户通过标准化接口在远程系统和Docker容器上执行命令。
View on GitHub
Overview
基本能力
产品定位
MCP SSH Docker Server 是一个用于远程命令执行的服务,特别适用于需要在远程系统或Docker容器中执行命令的场景。
核心功能
- SSH命令执行:在远程系统上执行任意命令
- Docker容器命令执行:在指定的Docker容器中执行命令
- 实时命令输出流:支持实时获取命令执行输出
- 进度报告:对长时间运行的命令提供进度报告
- 结构化JSON输出:支持以JSON格式返回命令执行结果
- 命令取消支持:允许取消正在执行的命令
- 连接和命令超时:提供超时机制
- 全面的错误处理:处理各种错误场景
适用场景
- 远程服务器管理
- Docker容器管理
- 自动化脚本执行
- 持续集成/持续部署(CI/CD)流程
工具列表
- SSH命令执行 (ssh_exec)
- 在远程系统上执行任意命令
-
支持实时输出流和结构化JSON输出
-
Docker命令执行 (ssh_exec_docker)
- 在指定的Docker容器中执行命令
- 支持列出可用容器
- 支持实时输出流和结构化JSON输出
常见问题解答
- 需要确保目标系统已安装SSH和Docker
- 需要正确配置SSH密钥认证
- 命令执行超时默认为30秒
- 连接超时默认为10秒
使用教程
使用依赖
- Python 3.7+
- 目标系统的SSH访问权限
- 目标系统已安装Docker(用于Docker命令)
安装教程
- 克隆仓库:
git clone https://github.com/aweher/mcp-ssh-frr.git
cd mcp-ssh-frr
- 创建并激活虚拟环境:
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
- 安装依赖:
pip install -r requirements.txt
- 配置SSH:
- 将SSH私钥放在
./config/id_rsa
- 设置环境变量:
export SSH_HOST="your-remote-host"
export SSH_USER="your-username" # 默认为root
export SSH_PORT="22" # 可选,默认为22
- 确保将公钥添加到目标主机的
authorized_keys
文件中
调试方式
启动服务器:
python mcp_ssh_docker_server.py
测试SSH命令执行:
{
"name": "ssh_exec",
"args": {
"command": "ls",
"args": ["-la", "/etc"],
"stream": false,
"structured_output": false
}
}
测试Docker命令执行:
{
"name": "ssh_exec_docker",
"args": {
"container": "my-container",
"command": "vtysh",
"args": ["-c", "show ip bgp"],
"stream": false,
"structured_output": false
}
}