MCP-ShellJS

by erniebrodeur
Verified

local-only server

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

Integrations

  • Provides controlled access to ShellJS commands for filesystem operations, including read-only functions (ls, grep, find) and optional read-write capabilities (mkdir, touch, cp, mv, rm, sed).

  • Built with TypeScript for strong typing, enabling integration with TypeScript applications through a programmatic API.

  • Implements schema-based validation for command inputs and responses, ensuring that all operations conform to defined security constraints.

MCP-ShellJS

Un servidor MCP que proporciona acceso ShellJS seguro y controlado para LLM como Claude.

Descripción general

MCP-ShellJS conecta el Protocolo de Contexto de Modelo (MCP) con ShellJS, lo que permite que los sistemas de IA ejecuten comandos de shell dentro de un entorno de pruebas seguro. Proporciona acceso controlado al sistema de archivos con múltiples capas de seguridad.

Características

  • Seguridad simplificada :
    • Modo de solo lectura por defecto
    • Modo de lectura y escritura opcional mediante el indicador de línea de comandos
    • Permiso de ejecución opcional a través de la bandera de la línea de comandos
  • Validación basada en esquemas con Zod
  • Funcionalidad completa de ShellJS ( ls , grep , sed , find , etc.)
  • Implementación de TypeScript con tipado fuerte
  • API sencilla para la integración de LLM

Instalación

# Clone the repository git clone https://github.com/yourusername/mcp-shelljs.git cd mcp-shelljs # Install dependencies npm install # Build the project npm run build

Uso

Línea de comandos

# Default mode (read-only) node dist/index.js # Enable read-write operations node dist/index.js --enable-rw # Enable exec command (careful!) node dist/index.js --enable-exec # Enable both node dist/index.js --enable-rw --enable-exec

Integración con TypeScript

// Import and initialize the MCP server import { startMCPServer } from 'mcp-shelljs'; // Start the server with default configuration (read-only) startMCPServer(); // Or with custom security configuration startMCPServer({ enableRw: true, // Enable read-write operations enableExec: false // Keep exec disabled });

Diseño de seguridad

MCP-ShellJS implementa un modelo de seguridad simple:

  1. Modo de solo lectura (predeterminado): solo están disponibles los comandos que no modifican el sistema de archivos
  2. Modo de lectura y escritura ( --enable-rw ): habilita comandos que pueden crear, modificar o eliminar archivos
  3. Modo de ejecución ( --enable-exec ): habilita el comando exec potencialmente peligroso para ejecutar comandos de shell arbitrarios

El servidor funciona únicamente con transporte stdio, lo que lo hace adecuado para la integración con aplicaciones LLM de escritorio.

¿Por qué utilizar MCP-ShellJS?

Para los desarrolladores de IA, MCP-ShellJS permite potentes capacidades de sistema de archivos con riesgo controlado:

  • Exploración eficiente : búsqueda rápida con grep y find en bases de código
  • Procesamiento de texto : Transforme archivos con sed sin cargarlos por completo
  • Automatización segura : deje que la IA le ayude con la organización y gestión de archivos
  • Tuberías potentes : operaciones en cadena con tuberías de estilo Unix

Recursos

Recurso de directorio

directory://{path}?include={glob}&exclude={glob}&honor_gitignore={boolean}

Proporciona un listado de directorios con potentes capacidades de filtrado:

ParámetroDescripción
includePatrones glob a incluir (por ejemplo, *.js,*.ts )
excludePatrones globales a excluir (por ejemplo, node_modules,dist )
honor_gitignoreCuando true , filtra los archivos que coinciden con patrones en .gitignore
recursiveCuando true , incluye subdirectorios recursivamente

Ejemplo:

directory:///project/src?include=*.ts&exclude=*.test.ts&honor_gitignore=true

Recurso de archivo

file://{path}?lines={boolean}&start={number}&end={number}

Proporciona contenidos de archivos con opciones para ver partes específicas:

ParámetroDescripción
linesCuando true , incluye números de línea en la salida
startPrimera línea a incluir (indexación basada en 1)
endÚltima línea a incluir
highlightPatrón de globo para resaltar el texto coincidente

Ejemplo:

file:///project/src/index.ts?lines=true&start=10&end=50

Herramientas

MCP-ShellJS expone los comandos ShellJS como herramientas, agrupados por nivel de riesgo de seguridad:

Herramientas de solo lectura

HerramientaDescripciónArgumentos
catContenido del archivo de salidafiles : Cadena/Matriz, options : Objeto con -n (líneas numéricas)
grepBuscar archivos de patronesregex , files , options : Objeto con -v (invertir), -l (solo nombres de archivo), -i (ignorar mayúsculas y minúsculas)
findBuscar archivos recursivamentepaths : cadena/matriz (devuelve rutas de archivos, incluidos los directorios base)
lsListar el contenido del directoriopaths : cadena/matriz, options : objeto con -R (recursivo), -A (todos), -L (seguir enlaces simbólicos), -d (solo directorios)
whichLocalizar un comandocommand : cadena (devuelve la ruta al comando)
pwdImprimir directorio de trabajo(sin argumentos)
testCondiciones del archivo de pruebaexpression : cadena (por ejemplo, -d path del directorio, -f path del archivo)
headMostrar las primeras líneasfiles : Cadena/Matriz, options : Objeto con -n <num> (líneas a mostrar)
tailMostrar últimas líneasfiles : Cadena/Matriz, options : Objeto con -n <num> (líneas a mostrar)
sortOrdenar líneasfiles : Cadena/Matriz, options : Objeto con -r (inverso), -n (numérico)
uniqFiltrar líneas duplicadasinput : Cadena, output : Cadena, options : Objeto con -i (ignorar mayúsculas y minúsculas), -c (contar), -d (solo duplicados)

Herramientas de lectura y escritura

HerramientaDescripciónArgumentos
mkdirCrear directoriosdir : cadena/matriz, options : objeto con -p (crear directorios intermedios)
touchCrear/actualizar archivosfiles : cadena/matriz, options : objeto con -c (sin creación), -a (solo tiempo de acceso), -m (solo tiempo de modificación)
cpCopiar archivos/directoriossource : cadena/matriz, dest : cadena, options : objeto con -R (recursivo), -n (sin modificación), -f (forzar)
mvMover archivos/directoriossource : cadena/matriz, dest : cadena, options : objeto con -f (forzar), -n (sin modificar)
rmEliminar archivos/directoriosfiles : Cadena/Matriz, options : Objeto con -r/-R (recursivo), -f (forzado)
sedEditor de flujo de archivossearch_regex : RegExp, replacement : Cadena, files : Cadena/Matriz, options : Objeto con -i (en el lugar)

Herramientas de permisos especiales

HerramientaDescripciónArgumentos
execEjecutar comandocommand : Cadena, options : Objeto con async , silent , requiere allowExec: true

Licencia

GPL-3.0 o posterior

-
security - not tested
F
license - not found
-
quality - not tested

Un servidor MCP seguro que proporciona acceso controlado a ShellJS para LLM, lo que permite que los sistemas de IA ejecuten de forma segura comandos de shell e interactúen con el sistema de archivos dentro de un entorno de seguridad configurable.

  1. Overview
    1. Features
      1. Installation
        1. Usage
          1. Command Line
          2. TypeScript Integration
        2. Security Design
          1. Why Use MCP-ShellJS?
            1. Resources
              1. Directory Resource
              2. File Resource
            2. Tools
              1. Read-Only Tools
              2. Read-Write Tools
              3. Special Permission Tools
            3. License
              ID: lyxa7v4e53