MCP SSH Docker Server

MCP SSH Docker Server

site icon
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)流程

工具列表

  1. SSH命令执行 (ssh_exec)
  2. 在远程系统上执行任意命令
  3. 支持实时输出流和结构化JSON输出

  4. Docker命令执行 (ssh_exec_docker)

  5. 在指定的Docker容器中执行命令
  6. 支持列出可用容器
  7. 支持实时输出流和结构化JSON输出

常见问题解答

  • 需要确保目标系统已安装SSH和Docker
  • 需要正确配置SSH密钥认证
  • 命令执行超时默认为30秒
  • 连接超时默认为10秒

使用教程

使用依赖

  • Python 3.7+
  • 目标系统的SSH访问权限
  • 目标系统已安装Docker(用于Docker命令)

安装教程

  1. 克隆仓库:
git clone https://github.com/aweher/mcp-ssh-frr.git
cd mcp-ssh-frr
  1. 创建并激活虚拟环境:
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
  1. 安装依赖:
pip install -r requirements.txt
  1. 配置SSH:
  2. 将SSH私钥放在./config/id_rsa
  3. 设置环境变量:
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
    }
}

许可证

该项目遵循 GPL-3.0 开源许可条款,请参阅 GPL-3.0 了解完整条款。