GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Descripción del creador (original en inglés)
Persistent stateful remote SSH sessions for AI agents via MCP + OpenSSH.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
SSH_MCP_ALLOWED_HOSTS, SSH_MCP_CONFIGNecesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"remote-ssh": {
"command": "npx",
"args": [
"-y",
"@zyluo/remote-ssh-mcp"
],
"env": {
"SSH_MCP_ALLOWED_HOSTS": "your-value",
"SSH_MCP_CONFIG": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add remote-ssh --env SSH_MCP_ALLOWED_HOSTS=your-value --env SSH_MCP_CONFIG=your-value -- npx -y @zyluo/remote-ssh-mcpCompleta los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"remote-ssh": {
"command": "npx",
"args": [
"-y",
"@zyluo/remote-ssh-mcp"
],
"env": {
"SSH_MCP_ALLOWED_HOSTS": "your-value",
"SSH_MCP_CONFIG": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"remote-ssh": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@zyluo/remote-ssh-mcp"
],
"env": {
"SSH_MCP_ALLOWED_HOSTS": "your-value",
"SSH_MCP_CONFIG": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
SSH_MCP_ALLOWED_HOSTS envSSH_MCP_CONFIG envEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 8 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub the-nine-nation, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (0.2.0) llegó al registro hace 3 meses.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.
En la misma categoría: GitHub, Desktop Commander, Cloudflare MCP
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
Remote SSH MCP
Persistent, stateful remote Bash sessions for AI agents
via the Model Context Protocol
Why · Features · How it works · Tools · Quick start · Config · Security · 简体中文
Most agents reach remote machines like this:
bash → ssh host "cmd" → disconnect → repeat
Every call pays the same tax:
| Pain | What happens |
|---|---|
| 🔁 Token waste | Banners, MOTD, login noise, and pwd / whoami probes flood the context |
| 🧊 Lost state | cwd, export, venv activation, and shell side effects vanish |
| 🔌 Unstable | Fresh connects hit timeouts, host-key prompts, ProxyJump, and auth jitter |
| 🌀 Error spiral | The model compensates with longer probe commands → more tokens |
Remote SSH MCP turns a long-lived remote Bash into first-class MCP tools. One session ID keeps working directory, environment variables, and shell side effects. Open a new session when you need a clean environment.
ssh in bash?Concrete gains for agent workflows (multi-step remote work: deploy, debug, build, inspect logs):
| Dimension | One-shot ssh host "…" | Remote SSH MCP |
|---|---|---|
| 💰 Tokens | Each step re-pays connect noise + state probes; models often re-cd / re-pwd | Pay once on ssh_open; later ssh_run returns mostly command output. Structured tools + head/tail caps cut tool-result bloat. In multi-step sessions this commonly cuts remote-tool context by ~50–80% vs reconnect-every-time (exact savings depend on MOTD size and how chatty the model is). |
| ✅ Success rate | *N* steps ≈ *N* handshakes → *N* chances to fail (timeout, jump, agent, host key) | One handshake per session; subsequent commands ride a live shell. Long jobs use running + ssh_peek instead of killing the tool call and restarting. Fewer reconnects → far fewer false “SSH failed” loops mid-task. |
| 🧳 Portability | Remote needs nothing extra — but every agent machine reimplements the same brittle ssh … patterns | Install once on the machine that runs Claude / Cursor / Grok / etc. Remote hosts install nothing (no Node, no MCP daemon, no agent). Only a normal shell account + tools already required for SSH (bash, base64, stty, …). Keys and jump hosts stay in local ~/.ssh/config. |
| 🧠 Model ergonomics | Model invents ssh strings, escapes, and recovery | Stable tools: open → run → peek → close. Session id is the only handle. |
| 🔐 Trust boundary | Easy to over-expose keys or prompt for passwords in-band | OpenSSH client only; tools never accept passwords or private-key material |
Portability in one line: put the MCP on your dev box / AI host; every server already in your SSH config is reachable — zero package install on the remote fleet.
┌─────────────────────────┐ SSH (OpenSSH) ┌──────────────────┐
│ Your laptop / CI agent │ ───────────────────────────► │ prod / staging │ │ Claude · Cursor · Grok │ ~/.ssh/config · agent │ no MCP install │ │ + remote-ssh-mcp │ │ plain Bash OK │ └─────────────────────────┘ └──────────────────┘
Token sketch (illustrative multi-step remote debug):
One-shot path (per step × 8):
ssh wrapper + banner/MOTD + pwd/whoami + re-cd + command output → noise dominates; context fills with reconnect junk
Session path: ssh_open → once (handshake + READY) ssh_run × 8 → mostly the real stdout/stderr (truncated head+tail) → context stays on the work product, not the transport
It does not reimplement SSH. Your system OpenSSH client stays in charge — so ~/.ssh/config, known hosts, the SSH agent, ProxyJump routes, and hardware keys keep working exactly as they already do.
ssh_hosts() → discover allowed Host aliases
ssh_open(host) → session id ssh_run(id, command) → same cwd + env as last time ssh_peek / ssh_interrupt → observe or recover long / stuck work ssh_close(id) → release the shell and connection
ssh_run callsmaxSessions)Include, agent sockets, and ProxyJumpssh_run waits up to wait_sec (default 10s), then returns status: "running" while the remote command continuesdocker pull, builds, downloads, and deploys that must not block the tool call foreverssh_config + optional config / env overrides*, ?, or ! are ignored0600) with hashed commandsTERM=dumb, NO_COLOR, bracketed-paste off — less junk at the sourcestderr, false truncation flags, and request-echo fields so dual content + structuredContent stays cheapssh_hosts returns only safe metadata: alias, hostname, user, port, proxy_jumpIdentityFile, certificates, agent sockets, or ProxyCommandflowchart LR
A[AI Agent] -->|MCP tools| B[Remote SSH MCP] B -->|spawn| C[OpenSSH client] C -->|SSH + PTY| D[Remote Bash] D --> E[(cwd / env / side effects)]
subgraph Local machine B C F[~/.ssh/config agent / keys] C -.-> F end
subgraph Remote host D E end
Typical agent flow
1. ssh_hosts() # pick an alias from the allowlist
| Tool | What it does |
|---|---|
| 🗂️ `ssh_hosts` | List allowed Host aliases (safe metadata only). Pass reload=true after editing ~/.ssh/config |
| 🔓 `ssh_open` | Open a clean persistent shell for an allowed Host alias → returns session id |
| ▶️ `ssh_run` | Run a non-interactive command in an existing session |
| 👀 `ssh_peek` | Latest N lines of output + status; optional wait_sec long-polls while running |
| ⛔ `ssh_interrupt` | Send Ctrl-C and wait for confirmed shell recovery |
| 📋 `ssh_list` | List sessions, cwd, state, idle countdown, and capacity |
| 🔒 `ssh_close` | Tear down remote temp state and close the connection |
| Tool | Key params |
|---|---|
ssh_open | host (required Host alias), optional name label |
ssh_run | id, command, optional wait_sec, optional timeout_sec |
ssh_peek | id, optional lines (default 50, max 1000), optional wait_sec |
ssh_interrupt / ssh_close | id |
ssh_hosts | optional reload boolean |
| Requirement | Notes |
|---|---|
| Node.js | 20 or newer |
| OpenSSH client | System ssh on PATH (or set sshPath) |
| Remote host | Bash + base64, stty, mkdir, cat, rm |
| SSH setup | Host alias in ~/.ssh/config, host key already trusted |
⚠️ First-time host-key confirmation and authentication must be completed in a normal terminal. The MCP server never shows password or trust prompts.
git clone https://github.com/the-nine-nation/remote-ssh-mcp.git
cd remote-ssh-mcp npm install npm run build npm test
Run the server:
node /absolute/path/to/remote-ssh-mcp/dist/index.js
Or install from npm (once published):
npx @zyluo/remote-ssh-mcp
npm install -g @zyluo/remote-ssh-mcp remote-ssh-mcp
Or, after a local package install from this repo, use the remote-ssh-mcp executable.
Most stdio hosts accept a shape like this (outer key may differ by product):
{
"mcpServers": { "remote-ssh": { "command": "node", "args": [ "/absolute/path/to/remote-ssh-mcp/dist/index.js" ], "env": { "SSH_MCP_ALLOWED_HOSTS": "prod,staging" } } } }
Cursor · Claude Desktop · Claude Code · other MCP-capable hosts: point command / args at the bu
Solo se muestra el principio; lee el resto en el repo