返回市场
开发飞行员

开发飞行员

作者:oxy-Op2 星标更新:2025-08-12

项目介绍

MCP VPS 初始化

这是一个用于自动初始化和管理VPS的模型上下文协议(MCP)服务器。该工具基于SSH自动化设置新的VPS实例,包括常见的服务和CI/CD流水线。

特性

  • 🔐 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(布尔值):安装和配置Nginx
    • redis(布尔值):安装和配置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仓库URL
  • deployPath(必需):服务器上的部署路径

示例:

{
  "repoUrl": "https://github.com/username/repo.git",
  "deployPath": "/opt/deployments/myapp"
}

5. 执行命令

在已连接的VPS上执行任意命令。

参数:

  • command(必需):要执行的命令

示例:

{
  "command": "systemctl status nginx"
}

工作流程

基本VPS设置

  1. 连接到VPS:

    {
      "tool": "ssh_connect",
      "args": {
        "host": "your-vps-ip",
        "username": "root",
        "password": "your-password"
      }
    }
    
  2. 初始化VPS:

    {
      "tool": "vps_initialize",
      "args": {
        "services": {
          "nodejs": true,
          "pm2": true,
          "nginx": true
        }
      }
    }
    
  3. 配置Nginx:

    {
      "tool": "nginx_setup",
      "args": {
        "domain": "yourdomain.com",
        "port": 3000,
        "ssl": true
      }
    }
    
  4. 配置CI/CD:

    {
      "tool": "github_cicd_setup",
      "args": {
        "repoUrl": "https://github.com/username/repo.git",
        "deployPath": "/opt/deployments/myapp"
      }
    }
    

GitHub CI/CD说明

运行github_cicd_setup工具后,您将收到:

  1. 部署密钥:添加到您的GitHub仓库的部署密钥中
  2. GitHub机密:添加到您的仓库的操作机密中
  3. 工作流文件:添加到.github/workflows/deploy.yml

生成的工作流将:

  • 在主/主分支推送时触发
  • 运行测试(如果可用)
  • 构建应用程序(如果有构建脚本)
  • 自动部署到您的VPS

安全特性

  • 防火墙配置:自动UFW设置,安全默认值
  • SSL证书:自动Let's Encrypt证书生成
  • SSH密钥管理:安全部署密钥生成
  • 进程隔离:可选部署用户创建

日志

日志写入:

  • logs/combined.log:所有日志级别
  • logs/error.log:仅错误日志
  • 控制台:带颜色的格式化输出

日志级别:errorwarninfodebug

配置

服务器可以通过环境变量进行配置:

  • LOG_LEVEL:设置日志级别(默认:'info')
  • PORT:服务器端口(如果独立运行)

故障排除

常见问题

  1. SSH连接失败

    • 验证IP地址和凭据
    • 检查防火墙设置
    • 确保SSH服务正在运行
  2. SSL证书问题

    • 验证域名DNS指向服务器
    • 检查防火墙允许HTTP/HTTPS
    • 确保电子邮件对于Let's Encrypt有效
  3. 服务安装失败

    • 检查系统更新状态
    • 验证互联网连接
    • 查看错误日志

调试模式

启用调试日志:

LOG_LEVEL=debug npm start

要求

  • Node.js 18+
  • 新鲜的Ubuntu/Debian VPS
  • 域名(用于SSL设置)
  • GitHub仓库(用于CI/CD)

许可证

MIT许可证 - 详情见LICENSE文件。