关于 MCP SSH Docker Server
MCP SSH Docker Server 提供 MCP 接口,可通过 SSH 在远程系统上运行命令,也可在 Docker 容器内执行命令。它适用于需要命令输出、进度更新和取消功能的客户端。
主要功能
- 01通过 SSH 在远程系统运行命令
- 02在 Docker 容器内运行命令
- 03流式传输命令输出和进度
- 04返回结构化 JSON 结果
- 05取消命令并设置超时
适用场景
- 01在远程主机上运行命令
- 02在 Docker 容器中执行命令
- 03获取长时间运行命令的实时输出
- 04以 JSON 格式获取命令结果
MCP 相关
该 MCP 服务向 MCP 客户端提供 SSH 和 Docker 命令执行工具,包括容器列表查询和命令取消。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP SSH Docker 服务
一个提供 SSH 和 Docker 命令执行能力的消息控制协议(MCP)服务。此服务允许你通过标准化接口在远程系统和 Docker 容器上执行命令。
功能
- 在远程系统上执行 SSH 命令
- 在 Docker 容器中执行命令
- 实时流式传输命令输出
- 为长时间运行的命令报告进度
- 支持结构化 JSON 输出
- 支持取消命令
- 连接和命令超时设置
- 全面的错误处理
前提条件
- Python 3.7+
- 对目标系统的 SSH 访问权限
- 目标系统已安装 Docker(用于执行 Docker 命令)
安装
使用 pip
pip install mcp-ssh-frr
从源代码安装
- 克隆仓库:
git clone https://github.com/aweher/mcp-ssh-frr.git
cd mcp-ssh-frr
- 创建并激活虚拟环境:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
- 安装依赖:
pip install -r requirements.txt
- 以开发模式安装软件包:
pip install -e .
-
配置 SSH:
-
将 SSH 私钥放入
./config/id_rsa -
设置环境变量:
export SSH_HOST="your-remote-host" export SSH_USER="your-username" # Defaults to root export SSH_PORT="22" # Optional, defaults to 22 -
别忘了将你的公钥添加到
your-remote-host上的authorized_keys文件中
-
用法
启动服务
python mcp_ssh_docker_server.py
可用工具
1. SSH 命令执行(ssh_exec)
在远程系统上执行任意命令:
{
"name": "ssh_exec",
"args": {
"command": "ls",
"args": ["-la", "/etc"],
"stream": false, # Set to true for real-time output
"structured_output": false # Set to true for JSON output
}
}
2. Docker 命令执行(ssh_exec_docker)
在 Docker 容器中执行命令:
{
"name": "ssh_exec_docker",
"args": {
"container": "my-container",
"command": "vtysh",
"args": ["-c", "show ip bgp"],
"stream": false,
"structured_output": false
}
}
列出可用容器:
{
"name": "ssh_exec_docker",
"args": {
"list_containers": true,
"structured_output": false
}
}
输出格式
- 文本输出(默认):
$ command arg1 arg2
(exit code 0)
output line 1
output line 2
- 结构化 JSON 输出:
{
"command": "command arg1 arg2",
"exit_code": 0,
"stdout": "output line 1\noutput line 2",
"stderr": "",
"duration": 0.123,
"metadata": {
"container": "my-container" // For Docker commands
}
}
- 进度更新(流式传输时):
[progress] 45% - Bytes read: 1024
配置
超时
- SSH 连接超时:10 秒
- 命令执行超时:30 秒
- 流式传输最长时间:300 秒(5 分钟)
缓冲区大小
- 流式传输缓冲区大小:1024 字节
错误处理
此服务可处理各种错误情况:
- 连接超时
- 身份验证失败
- 命令执行错误
- Docker 容器错误
- 命令取消
安全性
- 使用基于 SSH 密钥的身份验证
- 对命令参数进行适当转义
- 不存在命令注入漏洞
- 安全处理连接
贡献
- Fork 仓库
- 创建功能分支
- 提交更改
- 推送到分支
- 创建 Pull Request
许可证
GPLv3
作者
Ariel S. Weher <ariel[at]weher.net>
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。