Bash MCP
Ejecutar comandos de shell sin solicitudes de permiso.
Documentación
bash-mcp
Un servidor MCP (Model Context Protocol) simple que permite a Claude ejecutar comandos de shell sin solicitudes de permiso.
⚠️ Advertencia de seguridad: Este servidor ejecuta comandos de shell arbitrarios. Úsalo con precaución y solo en entornos de confianza.
Instalación
# Install globally
npm install -g bash-mcp
# Or use with npx
npx bash-mcp
Inicio rápido
Para Claude Desktop
Añade a tu claude_desktop_config.json:
{
"mcpServers": {
"bash": {
"command": "npx",
"args": ["bash-mcp"]
}
}
}
Para Claude Code (Cursor, VS Code)
- Abre la paleta de comandos (Cmd/Ctrl + Shift + P)
- Ejecuta "MCP: Add Server"
- Selecciona "NPM" como tipo de servidor
- Introduce:
bash-mcp
Herramientas disponibles
run - Ejecutar un comando
// Simple command
run("ls -la")
// With working directory
run("npm test", { cwd: "/path/to/project" })
// With timeout (milliseconds)
run("long-running-command", { timeout: 60000 })
run_background - Iniciar un proceso en segundo plano
// Start a dev server
run_background("npm run dev", "frontend")
// Start backend service with working directory
run_background("./gradlew bootRun", "backend", { cwd: "./backend" })
kill_background - Detener un proceso en segundo plano
kill_background("frontend")
list_background - Listar todos los procesos en segundo plano
list_background()
Ejemplo de uso
User: Start the development servers
Assistant: I'll start both frontend and backend servers for you.
[Uses run_background tool]
Started frontend server (PID: 12345)
Started backend server (PID: 12346)
User: Check if they're running
Assistant: [Uses list_background tool]
Both servers are running successfully!
Formato de respuesta
Todas las herramientas devuelven respuestas en formato JSON:
{
"success": true,
"stdout": "command output",
"stderr": "error output if any",
"command": "executed command"
}
Para procesos en segundo plano:
{
"success": true,
"name": "frontend",
"pid": 12345,
"command": "npm run dev",
"message": "Started background process 'frontend' (PID: 12345)"
}
Características
- Ejecutar cualquier comando de shell sin solicitudes de permiso
- Ejecutar procesos de larga duración en segundo plano
- Gestionar procesos en segundo plano (listar, matar)
- Capturar stdout y stderr
- Establecer directorio de trabajo para comandos
- Configurar tiempo de espera para comandos
- Limpieza automática al apagar el servidor
- NUEVO: Truncamiento automático de salida con salida completa guardada en archivos temporales
- NUEVO: Límites de tamaño de salida configurables y directorio temporal mediante variables de entorno
Variables de entorno
BASH_MCP_MAX_OUTPUT_SIZE: Tamaño máximo de salida en bytes antes del truncamiento (por defecto: 51200/50KB)BASH_MCP_TEMP_DIR: Directorio para almacenar la salida completa cuando se trunca (por defecto: directorio temporal del sistema)
Ejemplo de configuración
{
"mcpServers": {
"bash": {
"command": "npx",
"args": ["bash-mcp"],
"env": {
"BASH_MCP_MAX_OUTPUT_SIZE": "102400",
"BASH_MCP_TEMP_DIR": "/tmp/bash-mcp-outputs"
}
}
}
}
Manejo de desbordamiento de salida
Cuando la salida del comando excede BASH_MCP_MAX_OUTPUT_SIZE:
- La salida se trunca al límite especificado
- La salida completa se guarda en un archivo temporal
- La respuesta incluye la ruta del archivo donde se puede encontrar la salida completa
- Si el directorio temporal personalizado falla, se recurre al directorio temporal del sistema
Consideraciones de seguridad
Este servidor MCP ejecuta comandos de shell arbitrarios con los mismos privilegios que el proceso de Node.js. Úsalo solo en entornos de desarrollo o contextos de confianza.
Requisitos
- Node.js >= 16.0.0
- npm o npx
Licencia
MIT
Autor
tinywind tinywind0@gmail.com
Contribuciones
Las incidencias y solicitudes de extracción son bienvenidas en GitHub.