vps-ops-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vps-ops-mcpis my process still running and what does the latest log say?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
vps-ops-mcp
An MCP server that puts a long-running process on a remote VPS behind a handful of tools an AI assistant can call. Is it alive, what do the logs say, what has it produced, and an escape hatch for everything else.
Node, stdio transport, one dependency. Works with any MCP client.
Written first, in Node. The Python successor, approval-gate-mcp, adds a human approval gate, hot-reload parameters, and a wider dashboard. Use this one if you want something small; use that one if you want the gate.
Why
Checking on a background process means opening a terminal, finding the host, remembering the log path, and reading ps output. None of that is hard and all of it is friction, which means you check less often than you should.
This turns the same job into a question you ask in whatever assistant you already have open, and it keeps the answer structured enough to act on.
Related MCP server: acp-mcp
Tools
Tool | What it does |
| Running or not, PID, uptime, CPU, memory, disk usage, last log line |
| Tail the last N lines of the log file, up to 500 |
| Parse the JSON records the process writes into totals, a breakdown by type, and recent entries |
| Optional. Read-only ERC-20 and native balance for a watch address |
| Escape hatch. Arbitrary shell over SSH |
Install
git clone https://github.com/WillyV347/vps-ops-mcp
cd vps-ops-mcp
npm install
cp .env.example .env # then edit itRegister it with your MCP client:
{
"mcpServers": {
"vps-ops": {
"command": "node",
"args": ["/absolute/path/to/vps-ops-mcp/index.js"],
"env": {
"VPS_HOST": "your.host.or.ip",
"VPS_USER": "your-ssh-user",
"PROCESS_DIR": "/srv/my-process",
"PROCESS_MATCH": "my_process.py"
}
}
}
}VPS_HOST, VPS_USER, and PROCESS_DIR have no defaults. The server prints what is missing and exits. A monitoring tool that quietly falls back to a host baked in by its author is a bug, not a convenience.
Everything else is optional:
Variable | Default | Purpose |
| none | Pattern used to find the process in |
|
| Log file to tail |
|
| JSON array the process appends to |
| system default | Path to a private key |
| none | Enables |
| none | Watch address, read-only |
| none | ERC-20 contract to read |
|
| Decimals for that token |
Authentication is your existing SSH setup. The server shells out to the system ssh binary, so agents, hardware keys, and password managers that expose an agent all work unchanged. It never reads a private key itself.
The records file
record_summary reads a JSON array. Four keys are interpreted if present and everything else is ignored, so you do not have to reshape your data to use it:
[
{
"id": "job-1041",
"record_type": "reindex",
"resolved": true,
"outcome": "win",
"cost": 4.25,
"result": 11.80,
"label": "nightly reindex, shard 3"
}
]record_typegroups the breakdownresolvedsplits done from openoutcomeandresultdecide win or losscostandresultare summed into totals
Example session
> is the process up?
Process RUNNING
PID: 31882
Uptime: 14h 22m (51720s)
CPU: 0.6%
Memory: 84.3 MB
Disk: 212M
Last log: 2026-08-18 22:03:11 cycle complete, 4 records written
> how's it doing overall?
Record Summary
Total: 128
Resolved: 121 (74 win / 47 loss)
Pending: 7
Success: 61.2%
Net result: 46.90
Gross input: 512.25
By type
reindex: 88 (55W/29L/4P) | net 38.40 | 65%
compact: 40 (19W/18L/3P) | net 8.50 | 51%Output above is illustrative.
Notes on safety
run_commandruns arbitrary shell on the remote host. Scope the SSH user to what it actually needs rather than running everything as root.wallet_balanceis read-only and never touches a key. Leave it unconfigured and the tool is not registered at all.No credential is stored in this repo. RPC providers put API keys in the URL path, so keep
EVM_RPC_URLin the environment and out of your config files.StrictHostKeyCheckingis set toaccept-new: unknown hosts are trusted on first connect, changed host keys still fail.
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for managing multiple SSH servers via AI assistants, offering tools for remote command execution, file operations, and system monitoring.11MIT
- Alicense-qualityDmaintenanceMCP server for remote machine operations via SSH, providing a single tool to execute any shell command on remote machines with real-time progress streaming.24MIT
- AlicenseAqualityCmaintenanceAn MCP server for operating headless MetaTrader 4 terminals remotely over SSH, enabling status checks, logs, screenshots, systemd control, and automated first-login.131MIT
- AlicenseAqualityBmaintenanceMCP server for managing remote servers via SSH, enabling command execution, file transfer, rsync, tunnels, health checks, backups, and database operations.176281MIT
Related MCP Connectors
MCP server for the FFmpeg Micro video transcoding API — create, monitor, download transcodes.
MCP server for managing Prisma Postgres.
A paid remote MCP for hosted MCP server, built to return verdicts, receipts, usage logs, and audit-r
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/WillyV347/vps-ops-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server