Remote Command MCP Server

MIT License
  • Linux

Integrations

  • Enables execution of Chocolatey commands for Windows package management through the remote command interface

  • Provides ability to execute Git commands remotely with support for repository operations like status checks and working directory specification

  • Supports execution of Linux-specific commands with automatic command normalization between Windows and Unix-like systems

Servidor MCP de comando remoto

Un servidor de Protocolo de Contexto de Modelo (MCP) que permite la ejecución remota de comandos en diferentes sistemas operativos. Este servidor proporciona una interfaz unificada para ejecutar comandos de shell, gestionando automáticamente las diferencias específicas de la plataforma entre Windows y sistemas similares a Unix.

Características

  • Ejecución de comandos multiplataforma
  • Normalización automática de comandos entre Windows y Unix
  • Manejo de errores integrado y transmisión de salida
  • Compatibilidad con especificaciones de directorios de trabajo
  • Selección de shell específica de la plataforma

Instalación

  1. Clonar el repositorio:
git clone https://github.com/deepsuthar496/Remote-Command-MCP cd remote-command-server
  1. Instalar dependencias:
npm install
  1. Construir el servidor:
npm run build
  1. Configure el servidor MCP en su archivo de configuración:

Para la extensión Cline de VSCode ( cline_mcp_settings.json ):

{ "mcpServers": { "remote-command": { "command": "node", "args": ["path/to/remote-command-server/build/index.js"], "disabled": false, "autoApprove": [] } } }

Uso

El servidor proporciona una única herramienta llamada execute_remote_command que puede ejecutar cualquier comando de shell válido en el host. Esto incluye:

  • Comandos del sistema
  • Comandos del administrador de paquetes (apt, yum, chocolatey, etc.)
  • Herramientas de desarrollo (git, npm, python, etc.)
  • Operaciones con archivos
  • Comandos de red
  • Gestión de servicios
  • Y cualquier otro comando CLI disponible en el sistema

Herramienta: execute_remote_command

Parámetros:

  • command (obligatorio): cualquier comando de shell válido que pueda ejecutarse en el sistema operativo host
  • cwd (opcional): Directorio de trabajo para la ejecución de comandos

Ejemplos

  1. Información del sistema:
<use_mcp_tool> <server_name>remote-command</server_name> <tool_name>execute_remote_command</tool_name> <arguments> { "command": "systeminfo" // Windows // or "uname -a" // Linux } </arguments> </use_mcp_tool>
  1. Gestión de paquetes:
<use_mcp_tool> <server_name>remote-command</server_name> <tool_name>execute_remote_command</tool_name> <arguments> { "command": "npm list -g --depth=0" // List global NPM packages } </arguments> </use_mcp_tool>
  1. Operaciones de red:
<use_mcp_tool> <server_name>remote-command</server_name> <tool_name>execute_remote_command</tool_name> <arguments> { "command": "netstat -an" // Show all network connections } </arguments> </use_mcp_tool>
  1. Operaciones de Git:
<use_mcp_tool> <server_name>remote-command</server_name> <tool_name>execute_remote_command</tool_name> <arguments> { "command": "git status", "cwd": "/path/to/repo" } </arguments> </use_mcp_tool>
  1. Operaciones de archivo:
<use_mcp_tool> <server_name>remote-command</server_name> <tool_name>execute_remote_command</tool_name> <arguments> { "command": "ls -la", // List files with details "cwd": "/path/to/directory" } </arguments> </use_mcp_tool>
  1. Gestión de procesos:
<use_mcp_tool> <server_name>remote-command</server_name> <tool_name>execute_remote_command</tool_name> <arguments> { "command": "ps aux" // List all running processes (Unix) // or "tasklist" // Windows equivalent } </arguments> </use_mcp_tool>
  1. Control de servicio:
<use_mcp_tool> <server_name>remote-command</server_name> <tool_name>execute_remote_command</tool_name> <arguments> { "command": "systemctl status nginx" // Check service status (Linux) // or "sc query nginx" // Windows equivalent } </arguments> </use_mcp_tool>

Consideraciones de seguridad

Dado que este servidor puede ejecutar cualquier comando del sistema, tenga en cuenta las siguientes prácticas de seguridad:

  1. Control de acceso : limite el acceso al servidor MCP únicamente a usuarios de confianza
  2. Validación de comandos : valide los comandos antes de su ejecución en la lógica de su aplicación
  3. Directorio de trabajo : utilice el parámetro cwd para restringir la ejecución de comandos a directorios específicos
  4. Entorno : Tenga cuidado con los comandos que modifican la configuración del sistema o archivos confidenciales.
  5. Permisos : Ejecute el servidor MCP con los permisos de usuario adecuados

Manejo de comandos multiplataforma

El servidor gestiona automáticamente las diferencias específicas de cada plataforma:

  1. Traducción de comandos:
    • lsdir (convertido automáticamente según la plataforma)
    • Formato adecuado del operador de tubería para cada plataforma
  2. Selección de conchas:
    • Windows: utiliza cmd.exe
    • Unix/Linux: utiliza /bin/sh

Manejo de errores

El servidor proporciona mensajes de error detallados e incluye tanto la salida estándar como la salida estándar en la respuesta. Si un comando falla, recibirá un mensaje de error con detalles sobre el problema.

Ejemplo de respuesta de error:

{ "content": [ { "type": "text", "text": "Command execution error: Command failed with exit code 1" } ], "isError": true }

Desarrollo

Estructura del proyecto

remote-command-server/ ├── src/ │ └── index.ts # Main server implementation ├── package.json ├── tsconfig.json └── README.md

Edificio

npm run build

Esto compilará el código TypeScript y creará el ejecutable en el directorio build .

Contribuyendo

  1. Bifurcar el repositorio
  2. Crea tu rama de funciones ( git checkout -b feature/amazing-feature )
  3. Confirme sus cambios ( git commit -m 'Add some amazing feature' )
  4. Empujar a la rama ( git push origin feature/amazing-feature )
  5. Abrir una solicitud de extracción

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

-
security - not tested
A
license - permissive license
-
quality - not tested

Un servidor de protocolo de contexto de modelo que permite la ejecución remota de comandos de shell en diferentes sistemas operativos, manejando automáticamente las diferencias específicas de la plataforma entre Windows y sistemas similares a Unix.

  1. Features
    1. Installation
      1. Usage
        1. Tool: execute_remote_command
        2. Examples
        3. Security Considerations
        4. Cross-Platform Command Handling
        5. Error Handling
      2. Development
        1. Project Structure
        2. Building
      3. Contributing
        1. License
          ID: mshw9wfbs6