MCP.Market

VPS Ops MCP server

by koller-nexus·io.github.koller-nexus/vps-ops-mcp·v0.1.0·1 stars

Stdio MCP server that inspects and (with confirmation) mutates one VPS over SSH.

B82/100grade B
What users say
No reviews yet
Be the first
Safety scan
B82/100

full report

Adoption
Growing

1 stars49 downloads/wk

Reviews

Write one

Nobody has reviewed VPS Ops yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

VPS Ops tools (25)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • compose_ps

    docker compose ps in dir (arg or VPS_COMPOSE_DIR).

  • compose_pull_up

    docker compose pull then up -d [services…]. Requires confirm:true.

  • compose_restart

    docker compose restart [services…]. Requires confirm:true.

  • compose_up

    docker compose up -d [services…]. Requires confirm:true. dir or VPS_COMPOSE_DIR.

  • disk_cleanup_docker

    docker system prune -f; volumes only if confirm_volumes:true. Requires confirm:true.

  • docker_inspect

    docker inspect on a container/image name.

  • docker_logs

    docker logs --tail N --timestamps. Optional since. N <= 1000.

  • docker_node_ls

    List Docker Swarm nodes as JSON lines (fallback to table).

  • docker_ps

    List all Docker containers as JSON lines (fallback to table).

  • docker_restart

    docker restart NAME. Requires confirm:true.

  • docker_rm

    docker rm -f NAME. Requires confirm:true AND force_name === name.

  • docker_service_ls

    List Docker Swarm services as JSON lines (fallback to table).

  • docker_start

    docker start NAME. Requires confirm:true.

  • docker_stats

    One-shot docker stats --no-stream.

  • docker_stop

    docker stop NAME. Requires confirm:true.

  • host_dmesg

    Kernel log tail via dmesg -T. N <= 200. sudo -n, then fallback without sudo.

  • host_fail2ban

    fail2ban-client status; optional jail (default overall, or sshd).

  • host_failed_units

    Failed systemd units (systemctl --failed --no-pager).

  • host_firewall

    ufw status verbose (sudo -n, then fallback without sudo).

  • host_listen

    Listening TCP/UDP sockets (ss -lntup). sudo -n, then fallback without sudo.

  • host_top

    Top 30 processes by memory (ps aux --sort=-%mem).

  • ssh_hardening_check

    Effective sshd settings: port, passwordauthentication, permitrootlogin, pubkeyauthentication.

  • vps_journal

    Read systemd journal for an allowlisted unit (or *.service). N <= 500.

  • vps_ping

    Health check: uname -a, uptime, and hostname on the VPS via SSH.

  • vps_resources

    Disk (df -h), memory (free -h), and load average.

Public scan report

scanner v0.1.10 · 2026-11-03 · same rubric, same numbers if you re-run it

no findings
  • Code scan16 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 20 days ago15/15
  • Maintainer identityregistry namespace matches repository owner7/10
Overall 82/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How VPS Ops compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
82/100
higher than 63% of 48,255 servers
Tools
25
the typical server has 7
Tools that change things
0%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
1
more than 65% of 28,688 servers
Downloads a week
49
more than 41% of 12,191 servers with a package

What its tools let an agent do: 25 read

Install VPS Ops in Claude Code, Cursor or VS Code

Runs npx -y @koller-nexus/vps-ops-mcp on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add vps-ops-mcp -- npx -y @koller-nexus/vps-ops-mcp
Add to Cursor

What the publisher says

From the VPS Ops repository's README, as published. We do not edit it. Read it on GitHub

vps-ops-mcp

A stdio MCP server that operates one VPS over SSH. Cursor and Codex start the process with bun and call read-only tools (host health, Unix debug, Docker, Compose, Swarm, firewall) plus mutation tools (restart, stop, start, prune). Mutations require an explicit confirmation.

Transport is stdio. Do not start the server as a long-lived process by hand: the client (Cursor or Codex) launches it.

Contributing

See CONTRIBUTING.md (branches, pull requests, verification) and ISSUE.md (how to file an issue).

Requirements

  • Bun
  • Python 3 (used by the registration scripts)
  • OpenSSH client (ssh on PATH)
  • A readable SSH private key with access to the remote user
  • On the remote host: Docker (and passwordless sudo -n for ufw, fail2ban, sshd -T, ss, and dmesg if you use those tools)

Configuration

cp .env.example .env

Edit .env. The file is gitignored.

VPSCOMPOSEDIR must be absolute and match /^[a-zA-Z0-9/_.-]+$/ (it must start with /).

Installation

bun install

npm package (requires Bun; the MCP Registry points at this artifact):

bunx @koller-nexus/vps-ops-mcp

MCP Registry name: io.github.koller-nexus/vps-ops-mcp. The registry publishes metadata only after the package exists on public npm.

Register with clients

The scripts write MCP config from variables already exported in the shell. They do not load .env themselves. If you skip the export, the scripts fall back to their defaults (host, user, port, and a local key path).

Do this once at the repository root before each script:

set -a
source .env
set +a

Each run backs up the destination file (*.bak.YYYYMMDDHHMMSS) and replaces only the vps-ops server. Other MCP servers stay in place.

Optional script variables:

VPSCOMPOSEDIR is written into the client config only when it is set and non-empty.

Cursor

Global registration (applies in every workspace):

./scripts/register-cursor-mcp.sh

The script writes ~/.cursor/mcp.json in this shape:

{
  "mcpServers": {
    "vps-ops": {
      "command": "bun",
      "args": ["/absolute/path/vps-ops-mcp/src/index.ts"],
      "env": {
        "VPS_HOST": "your.host",
        "VPS_USER": "ubuntu",
        "VPS_PORT": "22",
        "VPS_SSH_KEY_PATH": "/absolute/path/to/key",
        "VPS_COMMAND_TIMEOUT_MS": "30000",
        "VPS_LOG_MAX_BYTES": "200000",
        "VPS_ALLOW_MUTATIONS": "true"
      }
    }
  }
}

To scope it to one project, point the script at that project's mcp.json:

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

VPS Ops: common questions

Is VPS Ops MCP server safe?
Mostly: it is graded B (82/100). Read the VPS Ops safety report
How do I install VPS Ops?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does VPS Ops need an API key?
Yes. The registry entry asks for VPS_SSH_KEY_PATH, VPS_SSH_KEY_PASSPHRASE.
Is VPS Ops maintained?
The last commit was 21 days ago (2026-10-13). The latest release is v0.1.0.
How does VPS Ops compare with other MCP servers?
safety score 82/100 (higher than 63% of 48,255 servers); tools 25 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.