Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Vps

БесплатноНе проверен

Vps — Model Context Protocol server

GitHubEmbed

Описание

Vps — Model Context Protocol server

README

An MCP (Model Context Protocol) server that gives AI assistants full control over a VPS via SSH. Execute commands, manage files, control services, monitor resources, manage Docker containers, and configure firewalls — all through a secure SSH tunnel.

✨ Features

Tool Description
run_command Execute any shell command on the VPS
read_file Read file contents via SFTP
write_file Create or overwrite files via SFTP
list_directory List directory contents with detailed info
manage_service Start, stop, restart, reload, enable, disable systemd services & view logs
list_services List systemd services filtered by state (running, failed, enabled)
system_stats Get CPU, memory, disk, network, uptime, and process stats
docker Manage Docker containers — list, start, stop, restart, logs, stats, images
firewall Manage UFW rules — status, allow, deny, delete, reset

📦 Installation

# Clone the repository
git clone https://github.com/your-username/vps-mcp-server.git
cd vps-mcp-server

# Install dependencies
pnpm install

# Build
pnpm build

⚙️ Configuration

Create a .env file from the example:

cp .env.example .env

Set the following environment variables:

Variable Required Default Description
VPS_HOST Hostname or IP of your VPS
VPS_USER SSH username
VPS_KEY_PATH Absolute path to your SSH private key
VPS_PORT 22 SSH port
VPS_KEY_PASSPHRASE Passphrase for the SSH key (if encrypted)

Example .env:

VPS_HOST=203.0.113.10
VPS_USER=deploy
VPS_KEY_PATH=/Users/you/.ssh/id_ed25519
VPS_PORT=22

🚀 Usage

With Claude Desktop / Gemini CLI / Any MCP Client

Add the server to your MCP client configuration:

{
  "mcpServers": {
    "vps": {
      "command": "node",
      "args": ["/absolute/path/to/vps-mcp-server/dist/index.js"],
      "env": {
        "VPS_HOST": "203.0.113.10",
        "VPS_USER": "deploy",
        "VPS_KEY_PATH": "/Users/you/.ssh/id_ed25519"
      }
    }
  }
}

Development Mode

pnpm dev

Production

pnpm build
pnpm start

🛠️ Tools Reference

run_command

Execute a shell command on the VPS.

Parameter Type Required Default Description
command string The shell command to execute
timeout number 30000 Timeout in milliseconds
working_directory string Directory to run the command in

Returns: JSON with exit_code, stdout, and stderr.


read_file

Read the contents of a file on the VPS via SFTP.

Parameter Type Required Default Description
path string Absolute path to the file
max_lines number Max lines to return (omit for full file)

write_file

Write content to a file on the VPS via SFTP.

Parameter Type Required Default Description
path string Absolute path to the file
content string Content to write
create_dirs boolean false Create parent directories if missing

list_directory

List files and directories at a given path.

Parameter Type Required Default Description
path string / Directory path to list
show_hidden boolean false Include dotfiles
long_format boolean true Show permissions, size, date

manage_service

Manage systemd services.

Parameter Type Required Default Description
service string Service name (e.g., nginx)
action enum start | stop | restart | reload | status | enable | disable | logs
log_lines number 50 Lines to show (for logs action)

list_services

List systemd services filtered by state.

Parameter Type Required Default Description
filter enum running all | running | failed | enabled

system_stats

Get system resource usage.

Parameter Type Required Default Description
include array ["all"] cpu | memory | disk | network | uptime | processes | all

docker

Manage Docker containers.

Parameter Type Required Default Description
action enum ps | start | stop | restart | logs | stats | images
container string Container name/ID (required for start/stop/restart/logs)
log_lines number 50 Lines to show (for logs action)

firewall

Manage UFW firewall rules.

Parameter Type Required Default Description
action enum status | allow | deny | delete | reset
rule string Rule spec (e.g., 80/tcp, 443, from 10.0.0.1)

📁 Project Structure

src/
├── index.ts            # Server bootstrap & lifecycle
├── ssh.ts              # SSHManager class (connection pooling)
├── types.ts            # Shared TypeScript types
├── helpers.ts          # Response helper functions
└── tools/
    ├── index.ts         # Tool registration barrel
    ├── run-command.ts   # Shell command execution
    ├── read-file.ts     # SFTP file reading
    ├── write-file.ts    # SFTP file writing
    ├── list-directory.ts
    ├── manage-service.ts
    ├── list-services.ts
    ├── system-stats.ts
    ├── docker.ts
    └── firewall.ts

🔒 Security Notes

  • The server connects via SSH using key-based authentication (no passwords).
  • Commands run with the privileges of the configured SSH user.
  • Service management and firewall tools use sudo — ensure your SSH user has appropriate sudoers permissions.
  • The server maintains a persistent SSH connection that is automatically reconnected if dropped.

📄 License

MIT

from github.com/harbouli/vps-mcp-server

Установка Vps

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/harbouli/vps-mcp-server

FAQ

Vps MCP бесплатный?

Да, Vps MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Vps?

Нет, Vps работает без API-ключей и переменных окружения.

Vps — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Vps в Claude Desktop, Claude Code или Cursor?

Открой Vps на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Vps with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории development