MCP VPS初始化
用于自动VPS初始化和管理的模型上下文协议(MCP)服务器。此工具提供基于SSH的自动化,用于设置具有公共服务和CI/CD管道的新VPS实例。
特性
- 🔐 SSH身份验证:支持密码和私钥身份验证
- 🛠️ VPS初始化:Node.js、PM2、Rust、Nginx、Redis的自动设置
- 🌐 Nginx配置:使用反向代理和SSL证书的域设置
- 🚀 GitHub CI/CD:自动生成部署密钥和创建工作流
- 📝 综合录井:基于Winston的结构化日志记录
- 🔧 TypeScript:完全类型化,具有严格的TypeScript配置
安装
# Clone the repository
git clone
cd mcp-vps-initialize
# Install dependencies
npm install
# Build the project
npm run build
# Start the server
npm start发展
# Run in development mode
npm run dev
# Lint code
npm run lint
npm run lint:fix
# Format code
npm run format
npm run format:checkMCP工具
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 (boolean):安装Node.js LTS - pm2 (boolean):安装PM2进程管理器 - rust (boolean):安装Rust工具链 - nginx (boolean):安装并配置Nginx - redis (boolean):安装并配置Redis
例子:
{
"services": {
"nodejs": true,
"pm2": true,
"nginx": true,
"redis": false
}
}3.Nginx设置
使用域、反向代理和SSL证书配置Nginx。
参数:
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 secrets
- 工作流文件:添加到
.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虚拟专用服务器
- 域名(用于SSL设置)
- GitHub存储库(用于CI/CD)
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
