SSH MCP Server

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Manages SSH credentials storage through a SQLite database, enabling persistence of connection details for remote command execution.

Servidor SSH MCP

Una implementación de servidor del Protocolo de Contexto de Modelo (MCP) que proporciona funcionalidades SSH. Este servidor permite el acceso y la ejecución remotos seguros mediante el protocolo MCP.

Características

  • Implementación de servidor SSH utilizando el protocolo MCP
  • Integración de bases de datos SQLite para la persistencia de datos
  • Implementación de TypeScript para seguridad de tipos y una mejor experiencia de desarrollo

Prerrequisitos

  • Node.js (se recomienda v16 o superior)
  • gestor de paquetes npm o yarn
  • Conocimientos de TypeScript para el desarrollo

Instalación

  1. Clonar el repositorio:
git clone <repository-url> cd ssh-server
  1. Instalar dependencias:
npm install
  1. Construir el proyecto:
npm run build

Uso

Configuración

El servidor utiliza una base de datos SQLite ( ssh.db ) para almacenar las credenciales SSH. El archivo de la base de datos se creará automáticamente al iniciar el servidor.

Herramientas

El servidor proporciona las siguientes herramientas:

ssh_exec

Ejecutar un comando a través de SSH.

Parámetros de entrada:

  • host : El host al que conectarse. (obligatorio)
  • command : El comando a ejecutar. (obligatorio)
  • username : el nombre de usuario que se utilizará para la conexión SSH. (obligatorio)
  • privateKeyPath : La ruta al archivo de clave privada. (obligatorio)

Ejemplo de uso:

{ "tool_name": "ssh_exec", "arguments": { "host": "example.com", "command": "ls -l", "username": "user", "privateKeyPath": "/path/to/private/key" } }

Nota: privateKeyPath debe ser una ruta válida a un archivo de clave privada.

agregar_credencial

Agregar una nueva credencial SSH.

Parámetros de entrada:

  • name : El nombre de la credencial. (obligatorio)
  • host : El host al que conectarse. (obligatorio)
  • username : el nombre de usuario que se utilizará para la conexión SSH. (obligatorio)
  • privateKeyPath : La ruta al archivo de clave privada. (obligatorio)

Ejemplo de uso:

{ "tool_name": "add_credential", "arguments": { "name": "my_credential", "host": "example.com", "username": "user", "privateKeyPath": "/path/to/private/key" } }

Nota: privateKeyPath debe ser una ruta válida a un archivo de clave privada.

lista_credenciales

Enumere todas las credenciales SSH almacenadas.

Parámetros de entrada:

  • Ninguno

Ejemplo de uso:

{ "tool_name": "list_credentials", "arguments": {} }

eliminar_credencial

Eliminar una credencial SSH almacenada.

Parámetros de entrada:

  • name : El nombre de la credencial que se eliminará. (obligatorio)

Ejemplo de uso:

{ "tool_name": "remove_credential", "arguments": { "name": "my_credential" } }

Iniciando el servidor

npm start

El servidor comenzará a ejecutarse en el puerto configurado (la configuración predeterminada se puede modificar en el código fuente).

Estructura del proyecto

  • src/ - Directorio del código fuente
  • build/ - Salida de JavaScript compilada
  • node_modules/ - Dependencias del proyecto

Dependencias

  • @modelcontextprotocol/sdk : Implementación del protocolo MCP
  • sqlite3 : controlador de base de datos SQLite
  • typescript : Dependencia de desarrollo para compatibilidad con TypeScript

Desarrollo

Para realizar cambios en el proyecto:

  1. Realice sus cambios en el directorio src/
  2. Reconstruir el proyecto:
npm run build
  1. Inicie el servidor para probar sus cambios:
npm start

Licencia

ISC

Contribuyendo

  1. Bifurcar el repositorio
  2. Crea tu rama de funciones
  3. Confirme sus cambios
  4. Empujar hacia la rama
  5. Crear una nueva solicitud de extracción

You must be authenticated.

A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Una implementación de servidor de protocolo de contexto de modelo que permite la ejecución segura de comandos remotos a través de SSH, con funciones para administrar y usar credenciales SSH.

  1. Features
    1. Prerequisites
      1. Installation
        1. Usage
          1. Configuration
          2. Tools
          3. Starting the server
        2. Project Structure
          1. Dependencies
            1. Development
              1. License
                1. Contributing
                  ID: miatd78x95