article
README
🚀 MCP VPS 初始化工具
这是一个基于模型上下文协议(MCP)的服务器工具,用于自动化 VPS 初始化和管理。该工具借助 SSH 自动化为全新的 VPS 实例配置常用服务和 CI/CD 管道,极大提升了 VPS 部署和管理的效率。
✨ 主要特性
- 🔐 SSH 认证:支持密码和私钥两种认证方式,保障连接的安全性和灵活性。
- 🛠️ VPS 初始化:可自动安装 Node.js、PM2、Rust、Nginx 和 Redis 等常用服务,快速搭建开发环境。
- 🌐 Nginx 配置:能够设置域名、反向代理和 SSL 证书,为网站提供安全稳定的访问服务。
- 🚀 GitHub CI/CD:自动生成部署密钥并创建工作流,实现代码的自动化部署。
- 📝 全面日志记录:基于 Winston 进行结构化日志记录,方便问题排查和系统监控。
- 🔧 TypeScript 支持:采用严格的 TypeScript 配置,提供类型检查,增强代码的可维护性。
📦 安装指南
# 克隆仓库
git clone <repository-url>
cd mcp-vps-initialize
# 安装依赖
npm install
# 构建项目
npm run build
# 启动服务器
npm start
💻 使用示例
开发模式
# 以开发模式运行
npm run dev
# 代码检查
npm run lint
npm run lint:fix
# 代码格式化
npm run format
npm run format:check
MCP 工具使用
1. SSH 连接
通过 SSH 使用密码或私钥认证连接到 VPS。 参数说明:
host(必填):VPS 的 IP 地址或主机名username(必填):SSH 用户名port(选填):SSH 端口(默认:22)password(选填):SSH 密码privateKeyPath(选填):私钥文件路径passphrase(选填):私钥密码
示例:
{
"host": "192.168.1.100",
"username": "root",
"password": "your-password"
}
2. VPS 初始化
为全新的 VPS 进行系统更新并可选安装服务。 参数说明:
services(选填):指定要安装的服务对象nodejs(布尔值):安装 Node.js LTS 版本pm2(布尔值):安装 PM2 进程管理器rust(布尔值):安装 Rust 工具链nginx(布尔值):安装并配置 Nginxredis(布尔值):安装并配置 Redis
示例:
{
"services": {
"nodejs": true,
"pm2": true,
"nginx": true,
"redis": false
}
}
3. Nginx 配置
为 Nginx 配置域名、反向代理和 SSL 证书。 参数说明:
domain(必填):网站域名port(必填):后端代理请求的端口ssl(选填):使用 Certbot 启用 SSL(默认:true)
示例:
{
"domain": "example.com",
"port": 3000,
"ssl": true
}
4. GitHub CI/CD 配置
为 GitHub 仓库设置 CI/CD 部署密钥和自动化工作流。 参数说明:
repoUrl(必填):GitHub 仓库 URLdeployPath(必填):服务器上的部署路径
示例:
{
"repoUrl": "https://github.com/username/repo.git",
"deployPath": "/opt/deployments/myapp"
}
5. 执行命令
在已连接的 VPS 上执行任意命令。 参数说明:
command(必填):要执行的命令
示例:
{
"command": "systemctl status nginx"
}
工作流示例
基础 VPS 设置
- 连接到 VPS:
{
"tool": "ssh_connect",
"args": {
"host": "your-vps-ip",
"username": "root",
"password": "your-password"
}
}
- 初始化 VPS:
{
"tool": "vps_initialize",
"args": {
"services": {
"nodejs": true,
"pm2": true,
"nginx": true
}
}
}
- 配置 Nginx:
{
"tool": "nginx_setup",
"args": {
"domain": "yourdomain.com",
"port": 3000,
"ssl": true
}
}
- 设置 CI/CD:
{
"tool": "github_cicd_setup",
"args": {
"repoUrl": "https://github.com/username/repo.git",
"deployPath": "/opt/deployments/myapp"
}
}
GitHub CI/CD 说明
运行 github_cicd_setup 工具后,你将获得:
- 部署密钥:添加到你的 GitHub 仓库的部署密钥中。
- GitHub 机密:添加到仓库的 Actions 机密中。
- 工作流文件:添加到
.github/workflows/deploy.yml。
生成的工作流将:
- 在推送到主分支时触发。
- 运行测试(如果有)。
- 构建应用程序(如果有构建脚本)。
- 自动部署到你的 VPS。
🔧 技术细节
安全特性
- 防火墙配置:自动使用安全默认值设置 UFW 防火墙。
- SSL 证书:自动生成 Let's Encrypt 证书。
- SSH 密钥管理:安全生成部署密钥。
- 进程隔离:可选创建部署用户。
日志记录
日志会写入以下位置:
logs/combined.log:包含所有日志级别。logs/error.log:仅包含错误日志。- 控制台:带有颜色的格式化输出。
日志级别:error、warn、info、debug。
配置
服务器可以通过环境变量进行配置:
LOG_LEVEL:设置日志级别(默认:'info')。PORT:服务器端口(如果独立运行)。
故障排除
常见问题
- SSH 连接失败
- 验证 IP 地址和凭证。
- 检查防火墙设置。
- 确保 SSH 服务正在运行。
- SSL 证书问题
- 验证域名 DNS 是否指向服务器。
- 检查防火墙是否允许 HTTP/HTTPS。
- 确保 Let's Encrypt 使用的电子邮件有效。
- 服务安装失败
- 检查系统更新状态。
- 验证网络连接。
- 查看错误日志。
调试模式
启用调试日志:
LOG_LEVEL=debug npm start
系统要求
- Node.js 18+
- 全新的 Ubuntu/Debian VPS
- 域名(用于 SSL 设置)
- GitHub 仓库(用于 CI/CD)
📄 许可证
本项目采用 MIT 许可证,详情请查看 LICENSE 文件。
微信扫一扫