VPS Initialize

VPS Initialize

Enables automated VPS initialization and management through SSH connections. Supports installing common services like Node.js, Nginx, and Redis, configuring domains with SSL certificates, and setting up GitHub CI/CD pipelines with deploy keys.

Category
Visit Server

README

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

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.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured