Skip to main content
Glama

MCP VPS Initialize

A Model Context Protocol (MCP) server for automated VPS initialization and management. This tool provides SSH-based automation for setting up fresh VPS instances with common services and CI/CD pipelines.

Features

  • πŸ” SSH Authentication: Supports both password and private key authentication

  • πŸ› οΈ VPS Initialization: Automated setup of Node.js, PM2, Rust, Nginx, Redis

  • 🌐 Nginx Configuration: Domain setup with reverse proxy and SSL certificates

  • πŸš€ GitHub CI/CD: Automated deploy key generation and workflow creation

  • πŸ“ Comprehensive Logging: Winston-based structured logging

  • πŸ”§ TypeScript: Fully typed with strict TypeScript configuration

Related MCP server: mcp-git

Installation

# Clone the repository
git clone <repository-url>
cd mcp-vps-initialize

# Install dependencies
npm install

# Build the project
npm run build

# Start the server
npm start

Development

# Run in development mode
npm run dev

# Lint code
npm run lint
npm run lint:fix

# Format code
npm run format
npm run format:check

MCP Tools

1. SSH Connect

Connect to a VPS via SSH using password or private key authentication.

Parameters:

  • host (required): VPS IP address or hostname

  • username (required): SSH username

  • port (optional): SSH port (default: 22)

  • password (optional): SSH password

  • privateKeyPath (optional): Path to private key file

  • passphrase (optional): Private key passphrase

Example:

{
  "host": "192.168.1.100",
  "username": "root",
  "password": "your-password"
}

2. VPS Initialize

Initialize a fresh VPS with system updates and optional services.

Parameters:

  • services (optional): Object specifying which services to install

    • nodejs (boolean): Install Node.js LTS

    • pm2 (boolean): Install PM2 process manager

    • rust (boolean): Install Rust toolchain

    • nginx (boolean): Install and configure Nginx

    • redis (boolean): Install and configure Redis

Example:

{
  "services": {
    "nodejs": true,
    "pm2": true,
    "nginx": true,
    "redis": false
  }
}

3. Nginx Setup

Configure Nginx with domain, reverse proxy, and SSL certificates.

Parameters:

  • domain (required): Domain name for the site

  • port (required): Backend port to proxy requests to

  • ssl (optional): Enable SSL with Certbot (default: true)

Example:

{
  "domain": "example.com",
  "port": 3000,
  "ssl": true
}

4. GitHub CI/CD Setup

Setup GitHub CI/CD with deploy keys and automated workflows.

Parameters:

  • repoUrl (required): GitHub repository URL

  • deployPath (required): Deployment path on the server

Example:

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

5. Execute Command

Execute arbitrary commands on the connected VPS.

Parameters:

  • command (required): Command to execute

Example:

{
  "command": "systemctl status nginx"
}

Workflow

Basic VPS Setup

  1. Connect to VPS:

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

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

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

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

GitHub CI/CD Instructions

After running the github_cicd_setup tool, you'll receive:

  1. Deploy Key: Add to your GitHub repository's Deploy Keys

  2. GitHub Secrets: Add to your repository's Actions secrets

  3. Workflow File: Add to .github/workflows/deploy.yml

The generated workflow will:

  • Trigger on pushes to main/master branch

  • Run tests (if available)

  • Build the application (if build script exists)

  • Deploy to your VPS automatically

Security Features

  • Firewall Configuration: Automatic UFW setup with secure defaults

  • SSL Certificates: Automated Let's Encrypt certificate generation

  • SSH Key Management: Secure deploy key generation

  • Process Isolation: Optional deploy user creation

Logging

Logs are written to:

  • logs/combined.log: All log levels

  • logs/error.log: Error logs only

  • Console: Formatted output with colors

Log levels: error, warn, info, debug

Configuration

The server can be configured through environment variables:

  • LOG_LEVEL: Set logging level (default: 'info')

  • PORT: Server port (if running standalone)

Troubleshooting

Common Issues

  1. SSH Connection Failed

    • Verify IP address and credentials

    • Check firewall settings

    • Ensure SSH service is running

  2. SSL Certificate Issues

    • Verify domain DNS points to server

    • Check firewall allows HTTP/HTTPS

    • Ensure email is valid for Let's Encrypt

  3. Service Installation Failed

    • Check system update status

    • Verify internet connectivity

    • Review error logs

Debug Mode

Enable debug logging:

LOG_LEVEL=debug npm start

Requirements

  • Node.js 18+

  • Fresh Ubuntu/Debian VPS

  • Domain name (for SSL setup)

  • GitHub repository (for CI/CD)

License

MIT License - see LICENSE file for details.

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/oxy-Op/DevPilot'

If you have feedback or need assistance with the MCP directory API, please join our Discord server