解除MCP服务器的突袭
一组模型上下文协议(MCP)服务器,旨在通过AI助手管理Unraid服务器。
概述
此存储库包含MCP服务器,使AI助手能够与您的Unraid服务器进行交互:
- SSH MCP服务器 -在Unraid上远程执行命令
- Docker MCP服务器 -管理Docker容器
- 文件系统MCP服务器 -具有受控访问权限的读/写文件
- Git MCP服务器 -配置的版本控制
- 突袭API MCP服务器 -直接Unraid API集成
项目结构
unraid-mcp-servers/
├── servers/
│ ├── ssh/ # SSH command execution
│ ├── docker/ # Docker container management
│ ├── filesystem/ # File operations wrapper
│ ├── git/ # Git operations wrapper
│ └── unraid-api/ # Unraid API integration
├── config/
│ └── examples/ # Configuration examples
└── docs/ # Documentation快速开始
先决条件
- Node.js 18+和npm
- SSH访问Unraid服务器
- Docker套接字访问(适用于Docker MCP)
安装
# Clone the repository
git clone
cd unraid-mcp-servers
# Install dependencies
npm install
# Build all servers
npm run build配置
每个MCP服务器都需要配置。请参阅 config/examples/ 示例配置目录。
MCP服务器
1.SSH MCP服务器(高优先级)
通过SSH在Unraid服务器上执行命令。
特征:
- 远程命令执行
- 输出流
- 错误处理
- 连接池
使用案例:
- 部署Docker容器
- 重新启动服务
- 检查系统状态
- 运行Unraid CLI命令
2.Docker MCP服务器(高优先级)
在Unraid服务器上管理Docker容器。
特征:
- 启动/停止容器
- 查看容器日志
- 创建新容器
- 列出并检查集装箱
- 管理网络和卷
使用案例:
- 容器编排
- 日志分析
- 自动化部署
3.文件系统MCP服务器(高优先级)
具有路径限制的受控文件系统访问。
特征:
- 读/写文件
- 目录操作
- 路径分配
- 安全删除文件
使用案例:
- 创建配置文件
- 读取应用程序日志
- 管理脚本
4.Git MCP服务器(可选)
用于跟踪更改的版本控制集成。
特征:
- 提交更改
- 推/拉操作
- 分行管理
- 变更历史
使用案例:
- 跟踪配置更改
- 启用回滚
- 审计跟踪
5.突袭API MCP服务器(NICE TO HAVE)
与Unraid的API直接集成。
特征:
- 管理股份
- 控制虚拟机
- 系统设置
- 用户管理
使用案例:
- 高级Unraid配置
- 资源管理
安全考虑
访问控制
每个MCP服务器都实施访问控制:
- 安全外壳协议:每个会话都需要SSH凭据
- 码头工人:Docker套接字权限
- 文件系统:路径分配
- Git:每个会话的Git凭据
- 突袭API:API密钥身份验证
最佳实践
- 使用具有最低权限的专用服务帐户
- 实现文件系统访问的路径限制
- 使用SSH密钥而不是密码
- 定期轮换凭证
- 监控MCP服务器日志
- 在隔离环境中运行MCP服务器
配置示例
Claude桌面配置
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"unraid-ssh": {
"command": "node",
"args": ["/path/to/servers/ssh/dist/index.js"],
"env": {
"SSH_HOST": "unraid.local",
"SSH_USER": "root",
"SSH_KEY_PATH": "/path/to/ssh/key"
}
},
"unraid-docker": {
"command": "node",
"args": ["/path/to/servers/docker/dist/index.js"],
"env": {
"DOCKER_HOST": "ssh://root@unraid.local"
}
},
"unraid-filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/mnt/user/appdata",
"/mnt/user/configs"
]
}
}
}环境变量
创建一个 .env file(永远不要提交此内容):
# SSH Configuration
SSH_HOST=unraid.local
SSH_PORT=22
SSH_USER=root
SSH_KEY_PATH=/path/to/private/key
# Docker Configuration
DOCKER_HOST=ssh://root@unraid.local
# Unraid API Configuration
UNRAID_API_URL=http://unraid.local
UNRAID_API_KEY=your-api-key-here发展
建筑
npm run build测试
npm test添加新服务器
- 在中创建目录
servers/ - 添加
package.json有依赖关系 - 实现MCP服务器接口
- 添加文档
- 更新根README
Unraid上的部署
选项1:在Windows上运行,连接到Unraid
- 在Windows上安装Node.js
- 配置SSH访问Unraid
- 在本地运行MCP服务器
- 服务器远程连接到Unraid
选项2:在Unraid上运行(高级)
- 在Unraid上安装Node.js
- 将MCP服务器部署为Unraid容器
- 配置Claude Desktop以远程连接
故障排除
SSH连接问题
- 验证SSH凭据
- 检查防火墙规则
- 手动测试SSH连接:
ssh root@unraid.local
Docker权限错误
- 确保用户具有Docker套接字访问权限
- 在Unraid上检查Docker守护进程状态
文件系统访问被拒绝
- 验证路径是否在满列表中
- 检查Unraid上的文件权限
贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支
- 进行更改
- 提交拉取请求
许可证
麻省理工学院
支持
对于问题和疑问:
- GitHub问题:\[问题链接\]
- 文件:见
docs/目录
路线图
- \[x\] SSH MCP服务器
- \[x\] Docker MCP服务器
- \[x\] 文件系统包装器
- \[x\] Git包装器
- \[\]取消突袭API服务器
- \[\]用于配置的Web UI
- \[\]容器编排示例
- \[\]自动化测试套件
