Ir para o conteúdo
Todas as ferramentas

run_terminal_command

Diagnóstico e sistema · macOS · Windows

Efeito: execução. Estado: disponibilidade condicionada.

«Disponibilidade condicionada» significa que a ferramenta pode depender da versão, plataforma, permissões, conta ou configuração. Não significa que esteja ativa em todas as instalações.

macOS

Finalidade

Executa um comando shell no Mac do usuário e retorna a sua saída. Sempre ativo. Desativado quando o LMCP está no modo somente leitura. Três tipos de comando são recusados, porque não podem ser desfeitos: formatar ou sobrescrever um disco (mkfs, newfs, fdisk, diskutil erase/partition, dd de ou para um dispositivo de disco), apagar recursivamente uma pasta do sistema, a pasta pessoal do usuário ou uma das suas pastas de dados (Documents, Desktop, Downloads, Library, Pictures, Movies, Music), tudo o que está diretamente dentro de uma delas, ou um alvo ou pasta que o texto do comando não deencerra (uma variável, uma substituição de comando, um cd dentro de uma subshell), e uma fork bomb. Um comando que menciona uma localização de credenciais (chaveiros, chaves privadas de ~/.ssh, ~/.aws, ~/.config/gh, logins do navegador, a pasta pessoal de outro usuário), escreve um arquivo que executa código mais tarde (LaunchAgents, arquivos de inicialização da shell, pastas de clientes de IA), controla outra app com um script, abre um script ou uma app de encerral, controla um serviço do sistema ou a energia, encaminha um script baixado para uma shell, escreve num arquivo de dispositivo ou altera permissões recursivamente num caminho do sistema NÃO é recusado: a prévia e o resultado trazem um aviso que diz o que faz. Antes de confirmar, diga ao usuário o que vai ler ou alterar, a menos que ele tenha pedido exatamente isso. Os avisos leem apenas o texto do comando, por isso um comando que esconda um caminho não recebe nenhum. Os comandos são executados num sandbox do macOS que protege apenas o próprio Local MCP: o encerral não pode abrir nem alterar os arquivos do próprio Local MCP pelo seu caminho (as suas configurações e token, binários, registro de atividade, sessões de mensagens e web, iprecisa inicialização), não pode comunicar com o seu socket e não pode abrir os arquivos de uma conta cuja caixa Read ou Write o usuário desativou. Nenhuma definição volta a abrir isto. Por causa desse sandbox, os programas de sistema setuid, exceto ps e top, não arrancam (sudo, su, crontab, at, traceroute): o aviso di-lo antes de o comando ser executado, e o comando `log` não é executado. Dentro do sandbox o SwiftPM precisa de --disable-sandbox. Destrutivo: mostra primeiro uma prévia do comando — passe confirm:true para o executar realmente. A saída e o tempo de execução são limitados.

Entradas obrigatórias

Os nomes são mantidos exatamente como a ferramenta exige. As definições técnicas canónicas em inglês estão no esquema expansível abaixo.

Permissões e confirmação

O esquema declara um parâmetro explícito de confirmação. Reveja a pré-visualização e autorize a operação real de acordo com o contrato da plataforma.

Esquema técnico canónico em 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"
}

Exemplo documental

Exemplo de documentação para run_terminal_command. Não execute este exemplo. Os argumentos apresentados pertencem a um conjunto de dados fictício; resolva identificadores reais e obtenha autorização antes de uma chamada real.

{
  "command": "echo Hello from LMCP",
  "confirm": false
}

Windows

Finalidade

Executa um comando shell no computador do usuário. Alguns comandos de nível de sistema (sudo/escalonamento de privilégios, exclusões recursivas de caminhos do sistema ou da pasta pessoal, formatação de disco, desligamento/reinicialização, encaminhar um script baixado para um shell, fork bombs) são recusados. Destrutivo: mostra primeiro uma prévia do comando — passe confirm:true para executá-lo de fato. A saída e o tempo de execução são limitados. No Windows o comando é executado via `cmd /c`; nos demais, via `sh -c`.

Entradas obrigatórias

Os nomes são mantidos exatamente como a ferramenta exige. As definições técnicas canónicas em inglês estão no esquema expansível abaixo.

Permissões e confirmação

O esquema declara um parâmetro explícito de confirmação. Reveja a pré-visualização e autorize a operação real de acordo com o contrato da plataforma.

Esquema técnico canónico em 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"
}

Exemplo documental

Exemplo de documentação para run_terminal_command. Não execute este exemplo. Os argumentos apresentados pertencem a um conjunto de dados fictício; resolva identificadores reais e obtenha autorização antes de uma chamada real.

{
  "command": "echo Hello from LMCP",
  "confirm": false
}