MCP SSH Server
Ejecuta comandos remotos de forma segura y realiza operaciones de archivos a través de SSH, con soporte para autenticación basada en contraseña y clave.
GitHub
57
Prueba este MCPPatrocinadoDocumentación
MCP SSH Server
Una potente implementación de servidor SSH para el Protocolo de Contexto de Modelo (MCP). Este servidor permite la ejecución segura de comandos remotos y operaciones de archivos a través del protocolo SSH, con soporte tanto para autenticación por contraseña como por clave.
Características
- ✨ Gestión segura de conexiones SSH
- 🔑 Autenticación por contraseña y por clave
- 💻 Ejecución de comandos remotos
- 📁 Operaciones de archivos (subir/descargar)
- 📊 Seguimiento de progreso para transferencias de archivos
- 🔐 Gestión de permisos
- 📂 Operaciones de directorios
- 🚀 Transferencias masivas de archivos
- 📝 Registro detallado
Instalación
- Instale el paquete:
npm install mcp-ssh
- Añada a su configuración de escritorio de Claude (
claude_desktop_config.json):
{
"mcpServers": {
"ssh": {
"command": "node",
"args": ["%APPDATA%/npm/node_modules/mcp-ssh/dist/server.js"],
"env": {
"SSH_PORT": "8889",
"SSH_LOG_LEVEL": "info"
}
}
}
}
Uso
Autenticación por contraseña
$body = @{
id = "test"
host = "example.com"
port = 22
username = "user"
password = "pass123"
} | ConvertTo-Json
Invoke-RestMethod -Uri "http://localhost:8889/connect" -Method Post -Body $body -ContentType "application/json"
Autenticación por clave
$body = @{
id = "test"
host = "example.com"
port = 22
username = "user"
privateKey = Get-Content ~/.ssh/id_rsa | Out-String
passphrase = "optional-key-passphrase" # if your key is protected
} | ConvertTo-Json
Invoke-RestMethod -Uri "http://localhost:8889/connect" -Method Post -Body $body -ContentType "application/json"
Ejecutar comandos
$execBody = @{
id = "test"
command = "ls -la"
} | ConvertTo-Json
Invoke-RestMethod -Uri "http://localhost:8889/exec" -Method Post -Body $execBody -ContentType "application/json"
Operaciones de archivos
# Upload file
$uploadForm = @{
file = Get-Item -Path "localfile.txt"
remotePath = "/remote/path/file.txt"
}
Invoke-RestMethod -Uri "http://localhost:8889/upload/test" -Method Post -Form $uploadForm
# Download file
Invoke-RestMethod -Uri "http://localhost:8889/download/test?remotePath=/remote/path/file.txt" -Method Get -OutFile "downloaded.txt"
Operaciones de directorios
# List directory
Invoke-RestMethod -Uri "http://localhost:8889/ls/test?path=/remote/path" -Method Get
# Get connection status
Invoke-RestMethod -Uri "http://localhost:8889/status/test" -Method Get
Desarrollo
- Clone el repositorio:
git clone https://github.com/shaike1/mcp-server-ssh.git
cd mcp-server-ssh
- Instale las dependencias:
npm install
- Compile:
npm run build
- Inicie el servidor:
npm start
Variables de Entorno
SSH_PORT: Puerto del servidor (por defecto: 8889)SSH_LOG_LEVEL: Nivel de registro (por defecto: info)
Contribuciones
- Haga un fork del repositorio
- Cree su rama de características (
git checkout -b feature/amazing-feature) - Haga commit de sus cambios (
git commit -m 'Add some amazing feature') - Haga push a la rama (
git push origin feature/amazing-feature) - Abra un Pull Request
Licencia
MIT