使用说明
Proxmox SSH MCP服务器
一种模型上下文协议(MCP)服务器,使AI助手能够通过SSH在Proxmox主机上执行命令。
特性
- 基于SSH密钥的身份验证(代码中没有密码)
- 内置安全:危险命令被阻止
- 单一工具:
proxmox_run_host_command
先决条件
- Node.js 18+
- SSH密钥对(
~/.ssh/id_ed25519) - 公钥已添加到Proxmox服务器
~/.ssh/authorized_keys
安装
git clone https://github.com/Zaptimist/mcp-proxmox.git
cd mcp-proxmox
npm install
配置
通过环境变量设置Proxmox主机或编辑 index.js:
选项1:环境变量(推荐)
export PROXMOX_HOST=192.168.1.100
export PROXMOX_USER=root
export PROXMOX_PORT=22
export PROXMOX_KEY_PATH=~/.ssh/id_ed25519
选项2:直接编辑index.js
const sshConfig = {
host: process.env.PROXMOX_HOST || '192.168.1.100', // Your Proxmox IP
username: process.env.PROXMOX_USER || 'root',
port: parseInt(process.env.PROXMOX_PORT) || 22,
privateKeyPath: process.env.PROXMOX_KEY_PATH || path.join(os.homedir(), '.ssh', 'id_ed25519')
};
SSH密钥设置
MCP服务器将自动检测SSH密钥是否丢失或未配置,并提供设置说明。但这是手动过程:
-
生成密钥(如果您没有密钥):
ssh-keygen -t ed25519 -
将公钥复制到Proxmox:
Windows(PowerShell):
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@YOUR_PROXMOX_IP "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"Linux/Mac:
ssh-copy-id root@YOUR_PROXMOX_IP -
测试连接:
ssh root@YOUR_PROXMOX_IP "echo 'SSH key auth works!'"
如果您还没有设置SSH密钥,当您尝试使用它时,MCP服务器将返回有用的说明。
MCP客户端配置
添加到您的MCP客户端配置中(例如。, ~/.kiro/settings/mcp.json):
{
"mcpServers": {
"proxmox": {
"command": "node",
"args": ["/path/to/mcp-proxmox/index.js"],
"env": {
"PROXMOX_HOST": "192.168.1.100"
},
"disabled": false,
"autoApprove": ["proxmox_run_host_command"]
}
}
}
用法
服务器公开了一个工具:
proxmox_run_host_command
在Proxmox主机上执行命令。
输入:
command(string,必填):要执行的命令
例子:
{
"command": "qm list"
}
答复:
{
"success": true,
"command": "qm list",
"host": "192.168.1.100",
"exitCode": 0,
"stdout": "VMID NAME STATUS MEM(MB) ...",
"stderr": ""
}
安全
为了安全起见,以下命令被阻止:
- VM/容器删除(
qm destroy,pct destroy) - 文件操作(
rm,rmdir,dd) - 系统操作(
shutdown,reboot,halt) - 包裹移除(
apt remove,apt purge) - 服务管理(
systemctl stop) - 存储删除(
zfs destroy,lvremove)
必须通过Proxmox web界面手动执行破坏性操作。
许可证
麻省理工学院
