SkillAgentSearch skills...

nexusssh

Centralized web-based SSH and Kubernetes manager with MCP support. Self-hosted access for teams and AI agents without sharing infrastructure credentials.

Install / Use

claude mcp add nooblk-98 -- npx -y github:nooblk-98/nexusssh

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

83/100

Category

Operations

Supported Platforms

Claude Code
Claude Desktop
Zed

Our assessment of nexusssh

nexusssh scores 83/100 on our quality scale, 591st of 752 Operations skills we index.

Its MCP Server is 22 KB long, well organised into 12 sections with 5 code examples: a thorough specification that gives an agent plenty to work with.

It has 3 GitHub stars, so there is little community track record yet; judge it on its content.

Substance
30/30
Structure
20/20
Description
15/15
Adoption
3/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated yesterday, so nexusssh is actively maintained.
  • No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
  • Its trust signals score 80/100, with 2 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

nexusssh compared with similar skills

All 4 of these similar skills score higher than nexusssh; compare them before choosing.

SkillScoreStarsUpdatedFormat
nexusssh (this skill)by nooblk-988331d agoMCP Server
Agent-Reachby Panniantong100109.6ktodayCLAUDE.md
headroomby headroomlabs-ai10079.0ktodayCLAUDE.md
CowAgentby zhayujie10047.8ktodayCLAUDE.md
Scraplingby D4Vinci10098.8k1d agoMCP Server

Frequently asked questions

How do I install nexusssh?
Run claude mcp add nooblk-98 -- npx -y github:nooblk-98/nexusssh. The install tabs above show the steps for each supported agent.
Which AI agents does nexusssh work with?
It is written for Claude Code, Claude Desktop and Zed, as a MCP Server file. Other agents that read the same format can often use it too.
Is nexusssh safe to use?
It declares no license and scores 80/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is nexusssh still maintained?
The repository was last updated yesterday, so nexusssh is actively maintained.
<div align="center"> <img src="docs/assets/nexusssh-banner.svg" alt="NexusSSH — a centralized web-based SSH and Kubernetes manager with MCP support. Infrastructure credentials stay on your deployment." width="1200" />

Verification Release Container image Self-hosted MCP support npm Kubernetes support

⭐ If NexusSSH is useful to you, star the repository. It helps others find it.

Overview · Features · Screenshots · Getting started · AI and MCP · Documentation

<img src="docs/assets/screenshots/ssh-terminal.png" alt="NexusSSH workspace with a browser SSH terminal open next to the folder tree of servers and Kubernetes clusters" width="1000" /> </div>

Overview

NexusSSH is a self-hosted workspace for your servers and Kubernetes clusters. Save your connections once, then open terminals, browse files, run cluster commands, and manage team access from a browser.

It also ships with a built-in Model Context Protocol (MCP) server, so AI assistants can work on your infrastructure without ever receiving your SSH passwords, private keys, Kubernetes tokens, or kubeconfig files. Credentials stay encrypted on your deployment. AI clients connect with scoped, expiring, revocable tokens, and NexusSSH runs only the operations you have granted them. SSH operations run immediately within those grants; Kubernetes commands also execute immediately within those grants.

Features

| Area | Capabilities | | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Centralized workspace | Nested folders for servers and clusters, search, tags, favorites, recent connections, split views, a command palette, and saved workspace presets. | | Browser SSH | Interactive terminals with pinned host keys, session resume, snippets, search, command suggestions, and broadcast input across sessions. | | Remote files | SFTP browsing, resumable uploads with progress, and a Monaco editor with change previews, conflict detection, and optional encrypted file history. | | Kubernetes | Kubeconfig import with context and namespace selection, a cluster command console, on-demand connection checks, resource browsing, and pod logs. | | AI access through MCP | Per-agent server, cluster, and tool grants, approval-free SSH commands and mutations, approval-free Kubernetes commands, call limits, token revocation, and per-agent activity. | | Private infrastructure | Reach targets through saved WireGuard profiles, an SSH bastion, or both. The same routes serve browser sessions and MCP operations. | | Team access | Users, teams, operation grants, TOTP MFA with recovery codes, and optional OIDC single sign-on. | | Operations | Versioned runbooks, staged connection diagnostics, readiness checks, a searchable audit log, and optional scheduled encrypted backups with restore rehearsal. |

Screenshots

<table> <tr> <td width="50%" valign="top"> <a href="docs/assets/screenshots/sftp-file-browser.png"><img src="docs/assets/screenshots/sftp-file-browser.png" alt="SFTP file browser listing a remote home directory with upload drop zone" /></a> <p align="center"><b>SFTP file browser</b><br/><sub>Browse, upload, download, and edit remote files in the browser.</sub></p> </td> <td width="50%" valign="top"> <a href="docs/assets/screenshots/kubernetes-console.png"><img src="docs/assets/screenshots/kubernetes-console.png" alt="Kubernetes console listing kube-system pods for a saved cluster" /></a> <p align="center"><b>Kubernetes console</b><br/><sub>Run kubectl-style commands against saved clusters, with no local kubeconfig.</sub></p> </td> </tr> <tr> <td width="50%" valign="top"> <a href="docs/assets/screenshots/mcp-server.png"><img src="docs/assets/screenshots/mcp-server.png" alt="MCP server settings showing the endpoint, client configuration, and available tools" /></a> <p align="center"><b>Built-in MCP server</b><br/><sub>Point any remote HTTP MCP client at one endpoint with a scoped token.</sub></p> </td> <td width="50%" valign="top"> <a href="docs/assets/screenshots/ai-agents.png"><img src="docs/assets/screenshots/ai-agents.png" alt="AI Agents page listing registered agents with access, limits, and status" /></a> <p align="center"><b>AI agents</b><br/><sub>Grant, limit, and revoke each agent's access to servers, clusters, and tools.</sub></p> </td> </tr> <tr> <td width="50%" valign="top"> <a href="docs/assets/screenshots/audit-log.png"><img src="docs/assets/screenshots/audit-log.png" alt="Audit log of terminal connections, Kubernetes commands, and agent tool calls" /></a> <p align="center"><b>Audit log</b><br/><sub>Every sign-in, connection, and agent tool call, with request references.</sub></p> </td> <td width="50%" valign="top"> <a href="docs/assets/screenshots/vpn-profiles.png"><img src="docs/assets/screenshots/vpn-profiles.png" alt="VPN page listing WireGuard profiles and the servers that use them" /></a> <p align="center"><b>WireGuard routes</b><br/><sub>Reach private networks through saved VPN profiles and bastions.</sub></p> </td> </tr> <tr> <td width="50%" valign="top"> <a href="docs/assets/screenshots/command-palette.png"><img src="docs/assets/screenshots/command-palette.png" alt="Command palette open over a terminal, with connect, details, and test actions per server" /></a> <p align="center"><b>Command palette</b><br/><sub>Press <kbd>Ctrl</kbd>+<kbd>K</kbd> to connect, inspect, or test any server.</sub></p> </td> <td width="50%" valign="top"> <a href="docs/assets/screenshots/security-settings.png"><img src="docs/assets/screenshots/security-settings.png" alt="Security settings for host key policy and allowed SSH destinations" /></a> <p align="center"><b>Connection safeguards</b><br/><sub>Host key policy and destination allowlists.</sub></p> </td> </tr> </table>

Getting started

Prerequisites

  • Docker with Linux containers, on amd64 or arm64
  • Docker Compose 2.24.4 or newer

Deploy with one command

curl -fsSL https://raw.githubusercontent.com/nooblk-98/nexusssh/main/docker-compose.yml -o docker-compose.yml && docker compose up -d

This pulls the prebuilt image from GitHub Container Registry and starts two containers: nexusssh (web UI, API, MCP server, and SSH worker behind one gateway) and redis. No .env file is needed to start.

| Image tag | Built from | | ----------------------------------------- | ------------------------------------------------ | | ghcr.io/nooblk-98/nexusssh:latest | The newest stable release (default) | | ghcr.io/nooblk-98/nexusssh:v0.5.0 | A specific release, also published as 0.5.0 | | ghcr.io/nooblk-98/nexusssh:0.4 | The newest patch release of a minor version | | ghcr.io/nooblk-98/nexusssh:development | The development branch, for early testing | | ghcr.io/nooblk-98/nexusssh:sha-<commit> | An exact commit, for pinning and rollback |

To run another tag, set NEXUSSSH_IMAGE, for example NEXUSSSH_IMAGE=ghcr.io/nooblk-98/nexusssh:development docker compose up -d. To upgrade, run docker compose pull && docker compose up -d.

First sign-in

  1. Open http://<your-host>:8080.
  2. Copy the first-run setup token from docker compose logs nexusssh, then create your owner account. No default password is shipped.
  3. Add an SSH identity and a server, or import a Kubernetes kubeconfig. Verify SSH host fingerprints through a trusted console before saving them.
  4. Under Settings → Security, allow the networks your targets live in, then test the connection. Pick a WireGuard profile or bastion if the target needs one.
  5. Open a terminal, an SFTP session, or a cluster console.

Installation secrets are generated on first start and kept in the nexusssh_secrets volume. Application records live in nexusssh_data.

[!IMPORTANT] Back up both volumes. Losing the encryption key makes saved credentials unrecoverable, and docker compose down -v deletes them.

[!WARNING] The app serves plain HTTP on port 8080. For a shared or internet-facing installation, put a TLS-terminating reverse proxy in front, set a stable APP_URL, and restrict SSH_ALLOWED_CIDRS and KUBERNETES_ALLOWED_CIDRS by following the deployment guide.

Optional settings

docker-compose.yml sets only what the container needs. Set these from your shell or a .env file next to it:

| Variable | Default | Purpose | | ------------------- | ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | | APP_URL | Unset: serve whatever address the app is reached on | Public HTTPS address, such as https://nexusssh.example.com. Fixes the allowed browser origin and the MCP endpoint (<APP_URL>/mcp). | | HTTP_PORT | 8080 | Host port the gateway publishes. | | NEXUSSSH_IMAGE | ghcr.io/nooblk-98/nexusssh:latest | Image tag to run. |

Everything else is optional and has a working default. Cloud metadata addresses such as 169.254.169.254 are always refused, whatever the allowlists say. To set any of these, create a docker-compose.override.yml beside docker-compose.yml. Docker Compose merges it automatically, and replacing docker-compose.yml on upgrade leaves it in place:

services:
  nexusssh:
    environment:
      OIDC_ISSUER: https://login.example.com
      OIDC_CLIENT_ID: nexusssh
      OIDC_CLIENT_SECRET: change-me

| Variable | Default | Purpose | | -

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars3
CategoryOperations
Updated1d ago
Forks0

Languages

TypeScript

Trust signals

80/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 medium1 low