SSH List MCP

Servidor MCP que expone una lista de servidores SSH desde un archivo de configuración TOML

Documentación

mcp-server-ssh-list

Un servidor MCP (Model Context Protocol) mínimo que expone definiciones de servidores SSH desde un archivo de configuración TOML. Construido en Rust, permite a los asistentes de IA buscar detalles de conexión SSH por nombre o alias.

Se comunica mediante stdio usando JSON-RPC 2.0, como todos los servidores MCP.

Herramientas

HerramientaDescripción
list_serversLista todos los servidores SSH con sus alias, host, usuario, puerto y descripción
lookup_serverBusca un servidor por nombre o alias (sin distinción de mayúsculas/minúsculas), devuelve los detalles de conexión SSH

list_servers

Devuelve todos los servidores SSH configurados. Sin parámetros.

lookup_server

Encuentra un servidor por nombre o alias.

Parámetros:

NombreTipoObligatorioDescripción
querystringNombre o alias del servidor a buscar (sin distinción de mayúsculas/minúsculas)

Comportamiento de coincidencia:

  • La búsqueda por nombre usa coincidencia de subcadena (p. ej., "prod" coincide con "production-web")
  • La búsqueda por alias usa coincidencia exacta (p. ej., "web" solo coincide si "web" es un alias definido)

Requisitos previos

  • Rust (edición 2024)

Configuración

Crea el archivo de configuración:

mkdir -p ~/.config/mcp-server-ssh-list

Crea ~/.config/mcp-server-ssh-list/ssh-list.toml:

[[servers]]
name = "Production Web"
aliases = ["prod", "web"]
host = "192.168.1.100"
user = "deploy"
port = 22
description = "Main production web server"

[[servers]]
name = "Staging"
aliases = ["stage"]
host = "192.168.1.200"
description = "Staging environment"

Los campos user (predeterminado: root) y port (predeterminado: 22) son opcionales. Se incluye una configuración de ejemplo en la raíz del repositorio como ssh-list.toml.

Compilación

cargo build --release

Esto produce target/release/mcp-server-ssh-list.

Para desarrollo:

cargo build              # debug build
cargo run                # run in dev mode
RUST_LOG=debug cargo run # run with debug logging

Configuración de MCP

Agrega a tu configuración de Claude Desktop (~/.config/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "ssh-list": {
      "command": "/path/to/mcp-server-ssh-list"
    }
  }
}

Estructura del proyecto

src/
  main.rs    - entry point, reads config, starts stdio transport
  config.rs  - Config and SshServer structs, TOML deserialization, matching logic
  server.rs  - MCP tool definitions (list_servers, lookup_server)

Licencia

MIT