{"name":"io.github.koller-nexus/vps-ops-mcp","slug":"koller-nexus-vps-ops-mcp","title":"VPS Ops","description":"Stdio MCP server that inspects and (with confirmation) mutates one VPS over SSH.","url":"https://mcp.market/server/koller-nexus-vps-ops-mcp","rating":null,"grade":"B","score":82,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":29,"stars":1,"forks":1,"downloads_week":49,"last_push_at":"2026-10-13T20:37:18.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/koller-nexus/vps-ops-mcp","website":"https://github.com/koller-nexus/vps-ops-mcp","version":"0.1.0","remotes":[],"packages":[{"registryType":"npm","identifier":"@koller-nexus/vps-ops-mcp","version":"0.1.0","runtimeHint":"bunx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Absolute path to a readable SSH private key","isRequired":true,"format":"filepath","isSecret":true,"name":"VPS_SSH_KEY_PATH"},{"description":"SSH hostname of the single target VPS","format":"string","name":"VPS_HOST"},{"description":"SSH username","format":"string","name":"VPS_USER"},{"description":"SSH port","format":"number","name":"VPS_PORT"},{"description":"Absolute Compose directory on the remote host","format":"string","name":"VPS_COMPOSE_DIR"},{"description":"Remote command timeout in milliseconds","format":"number","name":"VPS_COMMAND_TIMEOUT_MS"},{"description":"Stdout/stderr byte cap for remote commands","format":"number","name":"VPS_LOG_MAX_BYTES"},{"description":"Set false to reject every mutation tool","format":"boolean","name":"VPS_ALLOW_MUTATIONS"},{"description":"Optional key passphrase; prefer ssh-agent instead","format":"string","isSecret":true,"name":"VPS_SSH_KEY_PASSPHRASE"}]}],"tools":[{"name":"compose_ps","description":"docker compose ps in dir (arg or VPS_COMPOSE_DIR).","write_action":false,"price_micros":0,"input_schema":null},{"name":"compose_pull_up","description":"docker compose pull then up -d [services…]. Requires confirm:true.","write_action":false,"price_micros":0,"input_schema":null},{"name":"compose_restart","description":"docker compose restart [services…]. Requires confirm:true.","write_action":false,"price_micros":0,"input_schema":null},{"name":"compose_up","description":"docker compose up -d [services…]. Requires confirm:true. dir or VPS_COMPOSE_DIR.","write_action":false,"price_micros":0,"input_schema":null},{"name":"disk_cleanup_docker","description":"docker system prune -f; volumes only if confirm_volumes:true. Requires confirm:true.","write_action":false,"price_micros":0,"input_schema":null},{"name":"docker_inspect","description":"docker inspect on a container/image name.","write_action":false,"price_micros":0,"input_schema":null},{"name":"docker_logs","description":"docker logs --tail N --timestamps. Optional since. N <= 1000.","write_action":false,"price_micros":0,"input_schema":null},{"name":"docker_node_ls","description":"List Docker Swarm nodes as JSON lines (fallback to table).","write_action":false,"price_micros":0,"input_schema":null},{"name":"docker_ps","description":"List all Docker containers as JSON lines (fallback to table).","write_action":false,"price_micros":0,"input_schema":null},{"name":"docker_restart","description":"docker restart NAME. Requires confirm:true.","write_action":false,"price_micros":0,"input_schema":null},{"name":"docker_rm","description":"docker rm -f NAME. Requires confirm:true AND force_name === name.","write_action":false,"price_micros":0,"input_schema":null},{"name":"docker_service_ls","description":"List Docker Swarm services as JSON lines (fallback to table).","write_action":false,"price_micros":0,"input_schema":null},{"name":"docker_start","description":"docker start NAME. Requires confirm:true.","write_action":false,"price_micros":0,"input_schema":null},{"name":"docker_stats","description":"One-shot docker stats --no-stream.","write_action":false,"price_micros":0,"input_schema":null},{"name":"docker_stop","description":"docker stop NAME. Requires confirm:true.","write_action":false,"price_micros":0,"input_schema":null},{"name":"host_dmesg","description":"Kernel log tail via dmesg -T. N <= 200. sudo -n, then fallback without sudo.","write_action":false,"price_micros":0,"input_schema":null},{"name":"host_fail2ban","description":"fail2ban-client status; optional jail (default overall, or sshd).","write_action":false,"price_micros":0,"input_schema":null},{"name":"host_failed_units","description":"Failed systemd units (systemctl --failed --no-pager).","write_action":false,"price_micros":0,"input_schema":null},{"name":"host_firewall","description":"ufw status verbose (sudo -n, then fallback without sudo).","write_action":false,"price_micros":0,"input_schema":null},{"name":"host_listen","description":"Listening TCP/UDP sockets (ss -lntup). sudo -n, then fallback without sudo.","write_action":false,"price_micros":0,"input_schema":null},{"name":"host_top","description":"Top 30 processes by memory (ps aux --sort=-%mem).","write_action":false,"price_micros":0,"input_schema":null},{"name":"ssh_hardening_check","description":"Effective sshd settings: port, passwordauthentication, permitrootlogin, pubkeyauthentication.","write_action":false,"price_micros":0,"input_schema":null},{"name":"vps_journal","description":"Read systemd journal for an allowlisted unit (or *.service). N <= 500.","write_action":false,"price_micros":0,"input_schema":null},{"name":"vps_ping","description":"Health check: uname -a, uptime, and hostname on the VPS via SSH.","write_action":false,"price_micros":0,"input_schema":null},{"name":"vps_resources","description":"Disk (df -h), memory (free -h), and load average.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":82,"grade":"B","scanned_at":"2026-11-03T07:01:28.257Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-11-03T07:01:28.194Z","components":{"code":{"score":25,"max":25,"notes":["16 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 20 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@koller-nexus/vps-ops-mcp","version":"0.1.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-09-22T22:50:14.218Z","repositoryUrl":"git+https://github.com/koller-nexus/vps-ops-mcp.git","weeklyDownloads":49}],"repo":{"found":true,"owner":"koller-nexus","repo":"vps-ops-mcp","archived":false,"pushedAt":"2026-10-13T20:37:18Z","stars":1,"forks":1,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/276434802?v=4","ownerCreatedAt":"2026-04-15T23:15:44Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/276434802?v=4&s=128","source":"registry","width":128,"height":128},"presence":{"stars":1,"forks":1,"downloadsWeek":49,"license":"MIT","lastPushAt":"2026-10-13T20:37:18.000Z","score":29}}}},"grade_history":[],"reviews":[]}