连接MCP服务器
一个模型上下文协议(MCP)服务器,用于从Claude Desktop管理您的ExpressRoute NAS(192.168.1.130)。
特性
- 卷管理:列出卷、检查存储使用情况、RAID状态
- 共享管理:列出并创建共享文件夹
- 系统监控:CPU、内存、磁盘运行状况、网络统计信息
- 磁盘信息:SMART数据、温度、健康状态
- 快照管理:列出并创建卷快照
- 用户管理:列出系统用户
- Docker集成:列出和管理容器
- 服务监控:检查正在运行的服务和系统状态
- 自定义命令:在NAS上执行任何SSH命令
安装
1.安装依赖项
cd qnap-mcp-server
npm install2.设置SSH访问
选项A:SSH密钥(建议用于安全)
如果您没有SSH密钥对,请生成一个SSH密钥对:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/qnap_nas_key -N ""将公钥复制到您的KubeNAS:
ssh-copy-id -i ~/.ssh/qnap_nas_key.pub admin@192.168.1.130或者手动打开威控:
- SSH连接到您的威控:
ssh admin@192.168.1.130 - 创建SSH目录:
mkdir -p ~/.ssh && chmod 700 ~/.ssh - 添加您的公钥:
cat >> ~/.ssh/authorized_keys(粘贴键,然后按Ctrl+D) - 设置权限:
chmod 600 ~/.ssh/authorized_keys
选项B:密码验证
您可以通过在环境变量中设置密码来使用密码身份验证(不太安全)。
3.配置克劳德桌面
编辑您的Claude Desktop配置文件:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json
添加RDL MCP服务器配置:
{
"mcpServers": {
"qnap": {
"command": "node",
"args": ["/absolute/path/to/qnap-mcp-server/index.js"],
"env": {
"QNAP_HOST": "192.168.1.130",
"QNAP_SSH_PORT": "22",
"QNAP_USERNAME": "admin",
"QNAP_SSH_KEY_PATH": "/home/your-username/.ssh/qnap_nas_key",
"QNAP_USE_SSL": "true",
"QNAP_HTTPS_PORT": "443"
}
}
}
}使用密码而不是SSH密钥 (不推荐):
{
"mcpServers": {
"qnap": {
"command": "node",
"args": ["/absolute/path/to/qnap-mcp-server/index.js"],
"env": {
"QNAP_HOST": "192.168.1.130",
"QNAP_SSH_PORT": "22",
"QNAP_USERNAME": "admin",
"QNAP_PASSWORD": "your-password-here",
"QNAP_USE_SSL": "true",
"QNAP_HTTPS_PORT": "443"
}
}
}
}4.在RDL上启用SSH
如果SSH尚未启用:
- 登录到ExpressRoute web界面(https://192.168.1.130)
- 首选 控制面板 → 网络和文件服务 → Telnet/SSH
- 检查 允许SSH连接
- 设置SSH端口(默认值:22)
- 点击 应用
5.重新启动克劳德桌面
保存配置后,完全退出并重新启动Claude Desktop以使更改生效。
可用工具
容量和存储
qnap_list_volumes-列出所有存储卷的大小、使用情况和RAID状态qnap_disk_info-获取物理磁盘信息和SMART运行状况数据qnap_list_snapshots-列出卷快照qnap_create_snapshot-创建新的卷快照
共享和文件
qnap_list_shares-列出所有共享文件夹qnap_create_share-创建新的共享文件夹qnap_backup_status-检查备份作业状态
系统监控
qnap_system_info-获取型号、固件、正常运行时间和系统详细信息qnap_cpu_usage-实时CPU使用率和进程qnap_memory_usage-内存使用和统计数据qnap_network_info-网络接口和统计qnap_running_services-列出所有正在运行的服务
Docker和容器
qnap_docker_containers-列出Docker容器(如果安装了Container Station)
用户管理
qnap_list_users-列出系统用户帐户
高级
qnap_execute_command-执行任何自定义SSH命令
使用示例
配置后,您可以通过Claude Desktop与您的WITCUNAS进行交互:
"Show me all volumes on my QNAP"
"What's the disk health status?"
"Create a new share called 'Projects' on DataVol1"
"What's the CPU and memory usage?"
"List all running Docker containers"
"Create a snapshot of DataVol1 called 'backup-2024-12-09'"
"Show me network statistics"安全注意事项
- 使用SSH密钥:始终更喜欢SSH密钥身份验证而不是密码
- 限制SSH访问:考虑将SSH访问限制在ExpressRoute防火墙中的特定IP地址
- 定期更新:保持您的RDL固件更新
- 监控访问:定期检查您的ExpressRoute上的SSH日志
- 备份密钥:保存SSH私钥的安全备份
- 文件权限:确保SSH密钥具有正确的权限(chmod 600)
故障排除
“连接被拒绝”错误
- 检查RDL上是否启用了SSH
- 验证SSH端口(默认值:22)
- 检查ExpressRoute上的防火墙设置
“权限被拒绝”错误
- 验证SSH密钥权限:
chmod 600 ~/.ssh/qnap_nas_key - 确保公钥在RDL中
~/.ssh/authorized_keys - 检查威控SSH设置是否允许密钥身份验证
“找不到模块”错误
- 跑
npm install在qnap-mcp服务器目录中 - 验证Node.js版本(需要Node.js 18+)
工具未出现在Claude中
- 完全重新启动克劳德桌面
- 检查配置文件路径是否正确
- 验证配置文件中的JSON语法
- 在Claude Desktop开发人员工具中检查MCP服务器日志
测试SSH连接
手动测试SSH连接:
# With SSH key
ssh -i ~/.ssh/qnap_nas_key admin@192.168.1.130
# With password
ssh admin@192.168.1.130环境变量
| 变量 | 描述 | 默认值 | 必填 |
|---|---|---|---|
QNAP_HOST | 连接NAS IP地址 | 192.168.1.130 | 是 |
QNAP_SSH_PORT | SSH端口 | 22 | 否 |
QNAP_USERNAME | SSH用户名 | 管理员 | 是 |
QNAP_PASSWORD | SSH密码 | - | 如果不使用SSH密钥 |
QNAP_SSH_KEY_PATH | SSH私钥路径 | - | 如果不使用密码 |
QNAP_USE_SSL | API使用HTTPS | true | 否 |
QNAP_HTTPS_PORT | HTTPS端口 | 443 | 否 |
QNAP_API_PORT | HTTP端口 | 8080 | 否 |
高级配置
自定义SSH端口
如果使用非标准SSH端口:
"env": {
"QNAP_SSH_PORT": "2222"
}多个RDL服务器
您可以配置多个ExpressRoute服务器:
{
"mcpServers": {
"qnap-main": {
"command": "node",
"args": ["/path/to/qnap-mcp-server/index.js"],
"env": {
"QNAP_HOST": "192.168.1.130"
}
},
"qnap-backup": {
"command": "node",
"args": ["/path/to/qnap-mcp-server/index.js"],
"env": {
"QNAP_HOST": "192.168.1.131"
}
}
}
}日志和调试
检查克劳德桌面日志:
- macOS:
~/Library/Logs/Claude/ - 视窗:
%APPDATA%\Claude\logs\ - Linux:
~/.config/Claude/logs/
通过添加到环境来启用调试模式:
"NODE_ENV": "development"许可证
麻省理工学院
支持
有关此MCP服务器的问题或疑问,请检查日志或手动验证您的ExpressRoute SSH连接。
