Skip to main content
Glama
nqmn

SSH Remote MCP Server

by nqmn

Servidor MCP remoto SSH

Acceso remoto SSH para clientes compatibles con MCP a través del Protocolo de Contexto de Modelo (MCP).

Inicio rápido

Utilice un entorno virtual creado por el mismo sistema operativo que iniciará el servidor MCP. No comparta un venv entre Windows y WSL/Linux.

Windows

  1. Instalar:

    .\install.ps1
  2. Añadir el MCP en Claude Desktop, Claude Code o Codex:

    {
      "mcpServers": {
        "ssh-remote": {
          "command": "C:\\Users\\Intel\\Desktop\\adremote-mcp\\.venv-win\\Scripts\\python.exe",
          "args": [
            "C:\\Users\\Intel\\Desktop\\adremote-mcp\\ssh_mcp_server.py"
          ]
        }
      }
    }

    Si ya tiene un Python de Windows con paramiko y mcp instalados, puede usar ese intérprete directamente en lugar de .venv-win.

WSL/Linux

  1. Instalar:

    ./install.sh
  2. Añadir el MCP en Claude Desktop, Claude Code o Codex:

    {
      "mcpServers": {
        "ssh-remote": {
          "command": "/home/user/adremote-mcp/.venv-linux/bin/python",
          "args": [
            "/home/user/adremote-mcp/ssh_mcp_server.py"
          ]
        }
      }
    }

    Si se accede al repositorio a través de WSL desde la unidad de Windows, utilice la ruta de WSL:

    {
      "mcpServers": {
        "ssh-remote": {
          "command": "/mnt/c/Users/Intel/Desktop/adremote-mcp/.venv-linux/bin/python",
          "args": [
            "/mnt/c/Users/Intel/Desktop/adremote-mcp/ssh_mcp_server.py"
          ]
        }
      }
    }

Lanzadores portátiles

También puede apuntar un cliente MCP al lanzador incluido para el sistema operativo correspondiente:

  • Windows: C:\Users\Intel\Desktop\adremote-mcp\run-ssh-mcp.cmd

  • WSL/Linux: /path/to/adremote-mcp/run-ssh-mcp.sh

Los lanzadores prefieren el venv específico del sistema operativo y, si no, recurren a python3 o python. En Windows, se puede configurar SSH_MCP_PYTHON para forzar un intérprete de Python específico.

Para clientes WSL/Linux, utilice command: "/bin/sh" con args: ["/path/to/adremote-mcp/run-ssh-mcp.sh"] si el script no está marcado como ejecutable.

Ejecución directa

Después de instalar las dependencias, puede ejecutar el servidor directamente:

Windows:

.\.venv-win\Scripts\python.exe .\ssh_mcp_server.py

WSL/Linux:

./.venv-linux/bin/python ssh_mcp_server.py

Configuración automática

Descargue este repositorio, ejecute Claude o Codex y pídale que añada esta carpeta como un servidor MCP global para su sistema operativo actual. Después de eso, puede usarlo directamente desde el chat.

Solución de problemas

Si Windows informa:

No Python at '"/usr/bin\python.exe'

el MCP apunta a un venv creado por WSL/Linux. Cree un venv de Windows con .\install.ps1 y actualice el comando MCP a .venv-win\Scripts\python.exe.

Related MCP server: MCP SSH Server

Características

  • Funciona con clientes compatibles con MCP en Windows y Linux

  • Conexión a servidores remotos mediante SSH

  • Soporte nativo para SSH jump-host / bastion

  • Ejecución de comandos de forma remota

  • Carga/descarga de archivos mediante SFTP

  • Gestión de múltiples conexiones

  • Monitoreo de salud

Ejemplos de uso

Conectar con contraseña:

Connect to 192.168.1.100 with username ubuntu and password mypass

o en forma abreviada:

ssh 192.168.1.100:22 ubuntu mypass

El MCP primero prueba la conexión SSH con su nombre de usuario y contraseña. Si el inicio de sesión funciona, genera o instala una clave SSH, guarda la credencial basada en clave localmente y no guarda la contraseña. La contraseña solo se utiliza la primera vez.

Conectar con contraseña para una sesión única:

ssh 192.168.1.100:22 ubuntu mypass, save_credentials false

Esto mantiene solo la conexión en vivo. No se guarda ninguna credencial reutilizable y no se intenta el arranque automático de claves.

Conectar más tarde usando el nombre guardado:

ssh saved-name

Después de la primera configuración exitosa, simplemente use el nombre de la credencial guardada para volver a conectar.

Conectar con una clave privada cifrada (protegida por frase de contraseña):

Connect to 10.0.2.15 as ubuntu using private key ~/.ssh/id_ed25519 with passphrase mysecret

o mediante parámetros de herramienta:

{
  "hostname": "10.0.2.15",
  "username": "ubuntu",
  "private_key_path": "~/.ssh/id_ed25519",
  "private_key_passphrase": "mysecret"
}

La frase de contraseña se almacena junto con la credencial guardada, por lo que las llamadas futuras a ssh_connect_saved no la requieren de nuevo. Todavía puede proporcionar private_key_passphrase en ssh_connect_saved para anular el valor almacenado para una sola sesión.

Conectar a través de un jump host:

Utilice el objeto jump_host en ssh_connect o ssh_save_credentials:

{
  "hostname": "10.0.2.15",
  "username": "ubuntu",
  "private_key_path": "~/.ssh/id_ed25519",
  "jump_host": {
    "hostname": "203.0.113.10",
    "username": "bastion",
    "private_key_path": "~/.ssh/id_ed25519",
    "port": 22
  }
}

Las claves de jump host también pueden estar protegidas por frase de contraseña: añada private_key_passphrase dentro del objeto jump_host.

Esto utiliza un túnel SSH nativo al host de destino y las credenciales guardadas conservan la misma configuración de jump-host. Para credenciales guardadas reutilizables, el jump host debe usar private_key_path en lugar de una contraseña.

Ejecutar comandos:

List files in /home directory on my server
Run 'top' command on the remote server
Execute script.py and monitor its log

Transferencias de archivos:

Upload local file.txt to /home/user/ on the server
Download /var/log/app.log from the server

Salud de la conexión e inventario:

Check health of all SSH connections
Show me all active SSH connections

Requisitos

  • Python 3.10+

  • paramiko

  • mcp

Última actualización

La versión 1.0.3 persiste la frase de contraseña de la clave privada en las credenciales guardadas:

  • private_key_passphrase ahora se almacena en el archivo de credenciales al guardar mediante ssh_connect o ssh_save_credentials

  • ssh_connect_saved utiliza la frase de contraseña almacenada automáticamente; no es necesario proporcionarla en cada llamada

  • Proporcionar private_key_passphrase en ssh_connect_saved anula el valor almacenado solo para esa sesión

  • ssh_list_saved_credentials muestra private key (passphrase saved) cuando se almacena una frase de contraseña

La versión 1.0.2 añade soporte para claves privadas protegidas por frase de contraseña (cifradas):

  • private_key_passphrase aceptado en ssh_connect, ssh_connect_saved y ssh_save_credentials

  • Se aplica tanto a la clave del host de destino como a la clave del jump host

  • Mensajes de error claros cuando una clave está cifrada pero no se proporciona frase de contraseña, o cuando la frase de contraseña es incorrecta

La versión 1.0.1 añade flujos de trabajo SSH diarios más seguros y prácticos:

  • Los inicios de sesión directos siguen guardando credenciales reutilizables por defecto, pero save_credentials=false ahora permite optar por no hacerlo también para sesiones con contraseña

  • Los flujos de credenciales guardadas ahora incluyen ayudantes para conectar, guardar, listar, eliminar y configurar claves manualmente

  • Las reglas de confianza de host y transferencia de archivos son más estrictas, con restricciones de root local y fijación de host basada en la confianza al primer uso

  • Se admiten conexiones nativas de jump-host tanto para sesiones en vivo como para credenciales guardadas

  • Las credenciales guardadas se basan en claves, por lo que no se requiere una contraseña maestra para el uso normal

  • Las rutas de clave privada guardadas manualmente se validan cuando las guarda, no más tarde en la primera conexión

Soporte

Contácteme para colaborar.

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (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
    -
    maintenance
    Connects Claude to remote servers via SSH to execute commands, manage files, and browse directories. It allows users to add, edit, and switch between multiple server configurations through natural language conversations.
  • -
    license
    -
    quality
    -
    maintenance
    Enables Claude Code to control remote servers via SSH for automated deployment, testing, and operations, including command execution and file transfer.
    4

View all related MCP servers

Related MCP Connectors

  • Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.

  • Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.

  • Connect Claude to Fathom meeting recordings, transcripts, and summaries

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/nqmn/adremote-mcp'

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