Remote MCP SSH Gateway

MIT License
3
  • Linux
  • Apple

Integrations

  • Provides access to MLB Stats API tools for retrieving and analyzing baseball statistics

Cliente SSH del servidor MCP

Un servidor de protocolo de contexto de modelo (cliente SSH remoto) que se conecta a servidores MCP remotos mediante SSH. Este cliente permite acceder y utilizar herramientas MCP alojadas en servidores remotos, proporcionando un canal seguro para la comunicación MCP.

Características

  • Conéctese a cualquier servidor MCP a través de SSH
  • Proxy de todos los comandos del protocolo MCP a través de un canal SSH seguro
  • Compatibilidad con autenticación basada en clave
  • Compatibilidad con las capacidades de MCP, incluidas herramientas, indicaciones y recursos

Instalación

En un proyecto de Python administrado uv , agregue dependencias mediante:

uv add m2m-mcp-server-ssh-client

Alternativamente, para proyectos que utilizan pip para dependencias:

pip install m2m-mcp-server-ssh-client

Para instalar directamente desde la fuente:

git clone https://github.com/Machine-To-Machine/m2m-mcp-server-ssh-client.git cd m2m-mcp-server-ssh-client pip install -e .

Para ejecutar el servidor dentro de su proyecto:

uv run m2m-mcp-server-ssh-client

Casos de uso comunes

1. Inicio rápido con el servidor de demostración

Mantenemos un servidor de demostración público con varias herramientas MCP ya configuradas y listas para usar. (Este servidor estará disponible hasta que lancemos nuestro registro abierto y descentralizado).

Este servidor de demostración tiene varios servidores MCP, incluidos HackerNews, MLB Stats API y herramientas API de Fórmula 1 para que puedas experimentar con ellos.

Claude

Para conectar a Claude a este servidor, simplemente agregue lo siguiente a la configuración de Claude Desktop.

"mcpServers": { "remote-mcp-tools": { "command": "uvx", "args": [ "m2m-mcp-server-ssh-client", "--host", "mcp-beta.machinetomachine.ai", "--port", "8022", "--use-key-server" ] } }
Línea de comandos
# Connect to the M2M public demo server with automatic key exchange uv run m2m-mcp-server-ssh-client --host mcp-beta.machinetomachine.ai --use-key-server

2. Pruebas de desarrollo local

Para configurar su propio servidor SSH, consulte m2m-mcp-server-ssh-server .

Para realizar pruebas locales con sus propias herramientas MCP:

# Connect to a local MCP SSH server uv run m2m-mcp-server-ssh-client

El comando anterior intentará conectarse a un servidor SSH local que escucha en el puerto 8022.

Al realizar pruebas locales, puede simplificar el intercambio de claves utilizando el servidor de claves:

# Use the key server for automatic key management (if server has --run-key-server enabled) uv run m2m-mcp-server-ssh-client --use-key-server

El comando anterior intentará utilizar el servidor de claves que se ejecuta en el puerto 8000.

3. Conexión al servidor remoto

Conéctese a su propio servidor MCP alojado:

# Using existing SSH keys uv run m2m-mcp-server-ssh-client --host your-server.example.com --client-key ~/.ssh/your_key --known-hosts ~/.ssh/known_hosts

Puede simplificar el intercambio de claves ejecutando el servidor de claves en su servidor remoto y configurándolo en el cliente.

Uso con plataformas de IA

Integración de escritorio de Claude

Agregue esto a la configuración de Claude Desktop:

"mcpServers": { "remote-mcp-tools": { "command": "uvx", "args": [ "m2m-mcp-server-ssh-client", "--host", "mcp-beta.machinetomachine.ai", "--port", "8022", "--use-key-server" ] } }

Inspector de MCP

Para depurar o explorar las herramientas disponibles:

npx @modelcontextprotocol/inspector -- uvx m2m-mcp-server-ssh-client --host mcp-beta.machinetomachine.ai --port 8022 --use-key-server

Uso

Opciones de línea de comandos

  • --host : host del servidor SSH remoto (predeterminado: "localhost")
  • --port : Puerto del servidor SSH remoto (predeterminado: 8022)
  • --username : nombre de usuario SSH (predeterminado: "mcp")
  • --client-key : archivo de clave privada del cliente (predeterminado: "~/.ssh/m2m_mcp_server_ssh_client")
  • --known-hosts : Ruta al archivo de hosts conocidos (predeterminado: "~/.ssh/known_hosts")
  • --passphrase : Frase de contraseña para la clave privada (predeterminado: Ninguna)
  • --disable-host-key-checking : omite la verificación de la firma del servidor (predeterminado: Falso)
  • --log-level : establece el nivel de registro (predeterminado: INFO)

Ejemplos detallados

Conexión básica a un servidor remoto

Conectarse a un servidor MCP remoto (servidor SSH) que se ejecuta en el puerto 8022:

uvx m2m-mcp-server-ssh-client --host mcp.example.com

Uso de una clave SSH personalizada

Especifique una clave SSH particular para la autenticación:

uvx m2m-mcp-server-ssh-client --host mcp.example.com --client-key ~/.ssh/mcp_custom_key

Si su clave está protegida con contraseña:

uvx m2m-mcp-server-ssh-client --host mcp.example.com --client-key ~/.ssh/mcp_custom_key --passphrase "your-passphrase"

Modo de depuración para la resolución de problemas

Habilitar el registro detallado para solucionar problemas de conexión:

uvx m2m-mcp-server-ssh-client --host mcp.example.com --log-level DEBUG

Integración de servidores clave

El cliente SSH de MCP puede utilizar un servidor de claves para el intercambio y verificación de claves dinámicas:

uvx m2m-mcp-server-ssh-client --host mcp.example.com --use-key-server

Al utilizar un servidor de claves:

  1. El cliente obtiene la clave pública del servidor desde http://host:key-server-port/server_pub_key
  2. El cliente registra su clave pública con el servidor en http://host:key-server-port/register
  3. Se crea un archivo known_hosts temporal para la conexión SSH

Esta característica es mutuamente excluyente con --known-hosts y --disable-host-key-checking .

Deshabilitar la comprobación de la clave del host

⚠️ Advertencia de seguridad : Usar --disable-host-key-checking hace que tu conexión sea vulnerable a ataques de intermediario. Usa esta opción solo en redes confiables o para fines de desarrollo y pruebas.

uvx m2m-mcp-server-ssh-client --host localhost --disable-host-key-checking

Configurar para Claude Desktop

Añade a tu configuración de Claude:

"mcpServers": { "remote-servers": { "command": "uvx", "args": [ "m2m-mcp-server-ssh-client", "--host", "example.com", "--port", "8022", "--username", "mcp" ] } }

Para una configuración más segura con una clave específica:

"mcpServers": { "remote-servers": { "command": "uvx", "args": [ "m2m-mcp-server-ssh-client", "--host", "mcp-server.example.com", "--port", "8022", "--username", "claude-mcp", "--client-key", "~/.ssh/claude_mcp_key", "--known-hosts", "~/.ssh/mcp_remote_server" ] } }

Cómo funciona

El cliente SSH del servidor MCP establece una conexión SSH con un servidor remoto que ejecuta el servidor SSH del servidor MCP para herramientas MCP ( m2m-mcp-server-ssh-server . A continuación:

  1. Crea un servidor proxy local que refleja las capacidades del servidor MCP remoto
  2. Reenvía todas las solicitudes MCP al servidor remoto a través de la conexión SSH
  3. Devuelve respuestas del servidor remoto al cliente local

Esto le permite utilizar herramientas que se ejecutan en máquinas remotas como si estuvieran instaladas localmente.

Flujo de autenticación

Consideraciones de seguridad

  • Utilice siempre la verificación de clave de host en entornos de producción
  • Utilice claves SSH protegidas con contraseña para una mayor seguridad
  • Considere usar claves SSH dedicadas para conexiones MCP
  • Establezca los permisos adecuados (600) para sus archivos de clave SSH
  • Utilice un usuario dedicado con privilegios limitados en el servidor remoto

Solución de problemas comunes

Conexión rechazada

Error running MCP SSH client: [Errno 111] Connection refused

Solución : Verifique que el host y el puerto sean correctos y que el servicio SSH esté ejecutándose.

Error de autenticación

Error running MCP SSH client: Authentication failed

Solución : Verifique la ruta del archivo de clave. Asegúrese de que el servidor remoto tenga instalada su clave pública.

Error en la verificación de la clave del host

Error running MCP SSH client: Host key verification failed

Solución : agregue la clave de host a su archivo known_hosts o use --disable-host-key-checking (sólo para pruebas).

Dependencias

  • anyio (>=4.5.0)
  • asyncssh (>=2.20.0)
  • mcp (>=1.1.3)
  • pydantic (>=2.0.0)

Desarrollo

Configurar el entorno de desarrollo

git clone https://github.com/Machine-To-Machine/m2m-mcp-server-ssh-client.git cd m2m-mcp-server-ssh-client uv venv source .venv/bin/activate # On Windows: .venv\Scripts\activate uv pip install -e ".[dev]"

Calidad del código

# Run linting uv run ruff check . # Run formatting check uv run ruff format --check . # Run security checks uv run bandit -r src/

Depuración

Puede utilizar el inspector MCP para depurar el cliente:

npx @modelcontextprotocol/inspector uvx m2m-mcp-server-ssh-client --host example.com

Para una depuración avanzada, utilice el siguiente flujo de trabajo:

  1. Inicie el cliente con --log-level DEBUG
  2. Verifique los parámetros de conexión SSH y el proceso de protocolo de enlace
  3. Si utiliza claves personalizadas, verifique que las rutas y los permisos sean correctos
  4. Utilice ssh -v directamente para probar primero la conectividad básica

Contribuyendo

Agradecemos sus contribuciones para ampliar y mejorar m2m-mcp-server-ssh-client . Ya sea que desee añadir nuevas funciones, mejorar la funcionalidad existente o mejorar la documentación, su opinión es muy valiosa.

¡Aceptamos solicitudes de incorporación de cambios! Siéntete libre de contribuir con nuevas ideas, correcciones de errores o mejoras.

Pautas de contribución

  1. Bifurcar el repositorio
  2. Crear una rama de características: git checkout -b feature-name
  3. Confirme sus cambios: git commit -am 'Add some feature'
  4. Empujar a la rama: git push origin feature-name
  5. Enviar una solicitud de extracción

Licencia

Licencia MIT: consulte el archivo LICENCIA para obtener más detalles.

Autores

  • De máquina a máquina
-
security - not tested
A
license - permissive license
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

El cliente m2m-mcp-server-ssh-client proporciona una interfaz de servidor MCP unificada que se conecta de forma segura mediante SSH al backend m2m-mcp-server-ssh-server, que agrupa los servidores MCP. Esta configuración ofrece acceso seguro y único a diversas herramientas remotas mediante una robusta autenticación basada en claves SSH.

  1. Features
    1. Installation
      1. Common Use Cases
        1. 1. Quick Start with Demo Server
        2. 2. Local Development Testing
        3. 3. Remote Server Connection
      2. Usage with AI Platforms
        1. Claude Desktop Integration
        2. MCP Inspector
      3. Usage
        1. Command Line Options
      4. Detailed Examples
        1. Basic Connection to a Remote Server
        2. Using a Custom SSH Key
        3. Debug Mode for Troubleshooting
        4. Key Server Integration
        5. Disabling Host Key Checking
        6. Configure for Claude Desktop
      5. How It Works
        1. Authentication Flow
      6. Security Considerations
        1. Troubleshooting Common Issues
          1. Connection Refused
          2. Authentication Failure
          3. Host Key Verification Failed
        2. Dependencies
          1. Development
            1. Setup Development Environment
            2. Code Quality
          2. Debugging
            1. Contributing
              1. Contribution Guidelines
            2. License
              1. Authors

                Related MCP Servers

                • A
                  security
                  A
                  license
                  A
                  quality
                  An MCP server that enables secure terminal command execution, directory navigation, and file system operations through a standardized interface for LLMs.
                  Last updated -
                  10
                  23
                  Python
                  MIT License
                  • Apple
                • -
                  security
                  A
                  license
                  -
                  quality
                  A secure MCP (Model Context Protocol) server hosted on Google Cloud Run that enables team collaboration by providing authenticated access via Google Cloud IAM, allowing teams to share custom MCP servers over the internet before official MCP authentication is implemented.
                  Last updated -
                  16
                  TypeScript
                  MIT License
                • -
                  security
                  F
                  license
                  -
                  quality
                  A personal MCP server for securely storing and accessing API keys across projects using the macOS Keychain, letting AI assistants and applications retrieve credentials through natural language.
                  Last updated -
                  10
                  TypeScript
                  • Apple
                • -
                  security
                  F
                  license
                  -
                  quality
                  A server that enables remote command execution over SSH through the Model Context Protocol (MCP), supporting both password and private key authentication.
                  Last updated -
                  JavaScript

                View all related MCP servers

                ID: n9j5lavce3