MCP SSH Docker Server
一个提供 SSH 和 Docker 命令执行功能的 Message Control Protocol (MCP) 服务器。该服务器允许您通过标准化接口在远程系统和 Docker 容器上执行命令。
功能特性
- 在远程系统上执行 SSH 命令
- 在 Docker 容器中执行命令
- 实时命令输出流
- 长时间运行命令的进度报告
- 支持结构化 JSON 输出
- 支持命令取消
- 连接和命令超时设置
- 全面的错误处理机制
先决条件
- Python 3.7+
- 目标系统的 SSH 访问权限
- 目标系统上已安装 Docker(用于 Docker 命令)
安装步骤
- 克隆仓库:
- 创建并激活虚拟环境:
- 安装依赖:
- 配置 SSH:
- 将您的 SSH 私钥放置在
./config/id_rsa
- 设置环境变量:
- 别忘了将您的公钥添加到
your-remote-host
的authorized_keys
文件中
使用方法
启动服务器
可用工具
1. SSH 命令执行 (ssh_exec
)
在远程系统上执行任意命令:
2. Docker 命令执行 (ssh_exec_docker
)
在 Docker 容器中执行命令:
列出可用容器:
输出格式
- 文本输出(默认):
- 结构化 JSON 输出:
- 进度更新(流式传输时):
配置
超时设置
- SSH 连接超时:10 秒
- 命令执行超时:30 秒
- 流式传输最大时间:300 秒(5 分钟)
缓冲区大小
- 流式传输缓冲区大小:1024 字节
错误处理
服务器处理多种错误场景:
- 连接超时
- 认证失败
- 命令执行错误
- Docker 容器错误
- 命令取消
安全性
- 使用 SSH 密钥认证
- 命令参数已正确转义
- 无命令注入漏洞
- 安全的连接处理
贡献指南
- Fork 仓库
- 创建功能分支
- 提交您的更改
- 推送至分支
- 创建 Pull Request
许可证
GPLv3
作者
Ariel S. Weher <ariel[at]weher.net>
- Author:waytomcp
- URL:https://www.waytomcp.com/article/aweher/mcp-ssh-frr
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!