run_terminal_command
Diagnóstico y sistema · macOS · Windows
Efecto: ejecución. Estado: disponibilidad controlada.
«Disponibilidad controlada» significa que la herramienta figura en los artefactos publicados y puede depender de versión, plataforma, permisos, cuenta o configuración. Esta referencia no promete que esté activa en todas las instalaciones. Que una herramienta figure para macOS no implica que esté disponible en Windows, ni al revés.
macOS
Propósito
Ejecuta un comando de shell en el Mac del usuario y devuelve su salida. Siempre activa. Desactivada cuando LMCP está en modo de solo lectura. Se rechazan tres tipos de comando, porque no se pueden deshacer: formatear o sobrescribir un disco (mkfs, newfs, fdisk, diskutil erase/partition, dd desde o hacia un dispositivo de disco), el borrado recursivo de una carpeta del sistema, de la carpeta personal del usuario o de una de sus carpetas de datos (Documents, Desktop, Downloads, Library, Pictures, Movies, Music), de todo lo que hay directamente dentro de una de ellas, o de un destino o carpeta que el texto del comando no determina (una variable, una sustitución de comandos, un cd dentro de una subshell), y una fork bomb. NO se rechaza un comando que nombre una ubicación de credenciales (llaveros, claves privadas de ~/.ssh, ~/.aws, ~/.config/gh, inicios de sesión del navegador, la carpeta personal de otro usuario), que escriba un archivo que ejecuta código más tarde (LaunchAgents, archivos de arranque del shell, carpetas de clientes de IA), que controle otra app con un script, que abra un script o una app de terminal, que controle un servicio del sistema o la energía, que canalice a un shell un script descargado, que escriba en un archivo de dispositivo o que cambie permisos de forma recursiva en una ruta del sistema: la vista previa y el resultado llevan una advertencia que dice lo que hace. Antes de confirmar, dile al usuario qué leerá o cambiará, salvo que haya pedido exactamente esto. Las advertencias solo leen el texto del comando, así que un comando que oculte una ruta no recibe ninguna. Los comandos se ejecutan en un sandbox de macOS que protege únicamente a Local MCP: el terminal no puede abrir ni modificar los archivos propios de Local MCP por su ruta (sus ajustes y token, binarios, registro de actividad, sesiones de mensajería y web, elemento de inicio), no puede comunicarse con su socket y no puede abrir los archivos de una cuenta cuya casilla de Leer o Escribir el usuario haya desactivado. Ningún ajuste vuelve a abrir estos accesos. Debido a ese sandbox, los programas setuid del sistema distintos de ps y top no pueden iniciarse (sudo, su, crontab, at, traceroute): la advertencia lo indica antes de ejecutar el comando, y el comando `log` no se ejecuta. Dentro del sandbox, SwiftPM necesita --disable-sandbox. Destructiva: primero muestra una vista previa del comando; pasa confirm:true para ejecutarlo de verdad. La salida y el tiempo de ejecución tienen un límite.
Entradas obligatorias
command
Los nombres se conservan exactamente como los exige la herramienta. Las definiciones técnicas canónicas, en inglés, están en el esquema expandible de abajo.
Permisos y confirmación
El esquema declara un parámetro explícito de confirmación. Revisa la vista previa y autoriza la operación real según el contrato de esta plataforma.
- Utilice únicamente las aplicaciones, cuentas y recursos autorizados por el usuario en esta plataforma. Consulte la descripción específica de la plataforma de esta herramienta para conocer sus requisitos de conexión y permisos. Este catálogo no afirma alcances OAuth adicionales ni derechos de sistema operativo.
Esquema técnico canónico en inglés — macOS
{
"properties": {
"command": {
"description": "The shell command to run (a single command line, executed with /bin/zsh -lc).",
"type": "string"
},
"confirm": {
"description": "Must be true to actually run. Without it, a preview of the command is returned.",
"type": "boolean"
},
"timeout_seconds": {
"description": "Max seconds to run before it is terminated (default 20, max 60).",
"type": "integer"
},
"working_dir": {
"description": "Optional absolute working directory. Defaults to the user's home directory.",
"type": "string"
}
},
"required": [
"command"
],
"type": "object"
}Ejemplo documental
Ejemplo de documentación para run_terminal_command. No ejecutes este ejemplo. Los argumentos mostrados pertenecen a un conjunto de datos ficticio; resuelve identificadores reales y obtén autorización antes de una llamada real.
{
"command": "echo Hello from LMCP",
"confirm": false
}Windows
Propósito
Ejecuta un comando de shell en el equipo del usuario. Se rechazan algunos comandos de nivel de sistema (sudo/elevación de privilegios, borrados recursivos de rutas del sistema o personales, formateo de discos, apagado/reinicio, canalizar a un shell un script descargado, fork bombs). Destructiva: primero muestra una vista previa del comando; pasa confirm:true para ejecutarlo de verdad. La salida y el tiempo de ejecución tienen un límite. En Windows el comando se ejecuta mediante `cmd /c`; en los demás sistemas, mediante `sh -c`.
Entradas obligatorias
command
Los nombres se conservan exactamente como los exige la herramienta. Las definiciones técnicas canónicas, en inglés, están en el esquema expandible de abajo.
Permisos y confirmación
El esquema declara un parámetro explícito de confirmación. Revisa la vista previa y autoriza la operación real según el contrato de esta plataforma.
- Utilice únicamente las aplicaciones, cuentas y recursos autorizados por el usuario en esta plataforma. Consulte la descripción específica de la plataforma de esta herramienta para conocer sus requisitos de conexión y permisos. Este catálogo no afirma alcances OAuth adicionales ni derechos de sistema operativo.
Esquema técnico canónico en inglés — Windows
{
"properties": {
"command": {
"description": "The shell command to run (a single command line).",
"type": "string"
},
"confirm": {
"description": "Must be true to actually run. Without it, a preview of the command is returned.",
"type": "boolean"
},
"timeout_seconds": {
"description": "Max seconds to run before it is terminated (default 30, max 60).",
"type": "integer"
},
"working_dir": {
"description": "Optional absolute working directory. Defaults to the user's home directory.",
"type": "string"
}
},
"required": [
"command"
],
"type": "object"
}Ejemplo documental
Ejemplo de documentación para run_terminal_command. No ejecutes este ejemplo. Los argumentos mostrados pertenecen a un conjunto de datos ficticio; resuelve identificadores reales y obtén autorización antes de una llamada real.
{
"command": "echo Hello from LMCP",
"confirm": false
}