Skip to main content
Glama

OpsHaven

Let AI troubleshoot your Linux VPS without giving it a shell.

OpsHaven is an MCP server that gives AI clients structured access to approved VPS operations through restricted SSH. You choose the resources, capabilities, keys, and update policy. OpsHaven enforces that boundary locally and again on the server.

What it feels like

You: Why is my website returning 502?

AI through OpsHaven:
- application service is running
- health probe passes on port 3001
- Nginx points to port 3000
- likely cause: reverse-proxy upstream mismatch
- no changes were made

Instead of opening an SSH session, checking several tools manually, and copying logs into a chat, you can ask a question and let the AI inspect only the signals you approved.

Related MCP server: linux-ssh-mcp-server

Why operators can verify the boundary

  • You generate and own the SSH, approval, capability, response-signing, and OAuth configuration.

  • A separate read-only dispatcher contains no restart, deployment, rollback, sudo, or Docker control handlers.

  • Operator-signed capability authorization binds the exact operations, resources, limits, policy version, and dispatcher identity.

  • Requests and responses are authenticated, time-bounded, and replay-resistant.

  • The dispatcher accepts logical resource IDs, not arbitrary commands, paths, services, scripts, or flags.

  • Sensitive sources are summarized, bounded, and redacted before they reach the AI client.

  • Future builds declare their capabilities so authority expansion can be detected and blocked.

  • opshaven boundary verify tests the installed restrictions.

  • opshaven authorization-report explains active capability authorization and remaining platform assumptions.

OpsHaven does not claim absolute security. The boundary still depends on the VPS kernel, OpenSSH, Node.js, systemd, configured resource mappings, identity provider, proxy or tunnel, and operator-owned keys behaving as configured.

Executables

OpsHaven intentionally separates the human interface from the protocol process:

opshaven
    Human CLI for setup, diagnostics, verification, reports, and approvals.

opshaven-mcp
    JSON-RPC MCP protocol server launched by an MCP client.

Use opshaven help in a terminal. Configure an MCP client with opshaven-mcp; do not run it expecting an interactive prompt.

The package scripts make the same distinction:

npm run cli -- help
npm run start:mcp -- --config /absolute/path/to/local.config.json

npm start prints human CLI help rather than starting a protocol server.

How it works

Local stdio

Local AI client
→ local OpsHaven stdio MCP server
→ policy and authenticated request checks
→ restricted SSH account
→ independently validating VPS dispatcher
→ bounded authenticated response
→ audit log

The opshaven-mcp command is stdio-only and starts no network listener.

Opt-in remote MCP

Hosted MCP client
→ HTTPS tunnel or configured reverse proxy
→ localhost-bound OpsHaven Streamable HTTP server
→ OIDC bearer verification and operator profile mapping
→ signed read-only capability intersection
→ restricted SSH read-only dispatcher
→ bounded authenticated response
→ audit log

Remote MCP is disabled by default, binds to 127.0.0.1 when enabled, requires an external OAuth/OIDC provider, and exposes only the effective intersection of the operator profile and signed read-only capability. Direct public binding and generic stdio relays are outside the reviewed boundary.

Supported operations

Inspection

  • Host and deployed commit information

  • systemd service status

  • Docker and Docker Compose status in controlled local mode

  • Runtime configuration presence

  • Nginx and firewall summaries

  • Health probes

  • Bounded, redacted logs

  • Monitoring and backup status

  • Restore readiness

Controlled local changes

  • Restart a configured service

  • Deploy an exact Git commit

  • Restore the previous activation after failed health verification

  • Roll back to a recorded release

Remote profiles cannot include these mutation tools.

Prepare reviewed local policy, setup, SSH, and signing-key files, then preview every VPS mutation:

opshaven setup remote \
  --dry-run \
  --config /absolute/path/to/remote-setup.json

Apply the same plan interactively or in explicit non-interactive automation:

opshaven setup remote --tui --config /absolute/path/to/remote-setup.json

opshaven setup remote \
  --non-interactive \
  --approve \
  --config /absolute/path/to/remote-setup.json

The setup command pins the host key, verifies the exact source head and signing key pair, installs the complete read-only runtime atomically, generates signed authorization artifacts locally, keeps private operator keys off the VPS, and refuses endpoint handoff until boundary certification passes.

opshaven doctor --config /absolute/path/to/local.config.json
opshaven boundary verify \
  --config /absolute/path/to/local.config.json \
  --setup-config /absolute/path/to/remote-setup.json
opshaven authorization-report \
  --mode read-only \
  --config /absolute/path/to/local.config.json

Rollback and uninstall require explicit approval:

opshaven setup remote --rollback --approve --config /absolute/path/to/remote-setup.json
opshaven uninstall remote --approve --config /absolute/path/to/remote-setup.json

Read the operator workflow first. It explains what runs locally, what runs remotely, which keys stay local, what gets uploaded, how authorization works, and how MCP exposure is controlled.

See the setup guide for the reviewed configuration schema and end-to-end installation workflow, the security guide for the enforced boundary, and the architecture guide for the enforcement layers.

Development

Requirements:

Node.js 22 or newer

Install dependencies and run the full validation suite:

npm ci --ignore-scripts --no-audit --no-fund
npm run release:check
npm run security
npm run reproducible:check

Build and inspect the human CLI:

npm run build
npm run cli -- help

Start the local stdio MCP server only when testing the protocol process:

npm run start:mcp -- --config /absolute/path/to/local.config.json

The native remote command is explicit and uses the reviewed companion configuration:

opshaven serve \
  --transport streamable-http \
  --config /absolute/path/to/local.config.json

Operator workflow · Setup · Security · Architecture · Contributing · License

A
license - permissive license
-
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

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

  • A
    license
    -
    quality
    A
    maintenance
    Remote Linux operations via SSH, exposed as an MCP server, with tools for filesystem, systemd, Docker, network, and more, using per-user AD authentication and optional sudo elevation.
    Last updated
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    A safe, structured MCP server that lets AI inspect and operate a VPS through typed, allowlisted tools for nginx, PM2, SSL, UFW, fail2ban, with read-only defaults and opt-in mutations.
    Last updated
    6
    150
    2
    MIT

View all related MCP servers

Related MCP Connectors

  • A MCP server built for developers enabling Git based project management with project and personal…

  • An MCP server for deep research or task groups

  • An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform

View all MCP Connectors

Latest Blog Posts

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/magetsu002/opshaven'

If you have feedback or need assistance with the MCP directory API, please join our Discord server