Process Manager MCP

Gerencie processos bash de longa duração e persista seus logs.

Documentação

PM-MCP (Process Manager MCP)

Um servidor Model Context Protocol (MCP) que permite ao Claude e outros LLMs gerenciar processos bash de longa duração. Perfeito para gerenciar servidores de desenvolvimento, processos de build e outras tarefas em segundo plano durante sessões de desenvolvimento.

Recursos

  • Iniciar Processos: Execute comandos bash de longa duração com nomes e descrições
  • Gerenciamento de Processos: Encerre processos individuais ou todos os processos de uma vez
  • Gerenciamento de Logs: Capture, recupere e pesquise logs de stdout/stderr
  • Interação com Processos: Envie entrada para processos em execução
  • Detecção de Falhas: Relato imediato de erros para processos que falham ao iniciar
  • Ferramenta CLI: Interface de linha de comando independente para gerenciamento de processos
  • Registro Persistente: Todos os logs de processos são salvos em disco para recuperação posterior

Instalação

npm install -g pm-mcp

Uso

Como Servidor MCP

Configure seu cliente MCP para usar este servidor:

{
  "mcpServers": {
    "pm-mcp": {
      "command": "npx",
      "args": ["pm-mcp"]
    }
  }
}

Ferramentas MCP Disponíveis

  1. start_process - Iniciar um novo processo

    • name (obrigatório): Nome do processo para identificação
    • command (obrigatório): Comando bash a ser executado
    • description (opcional): Descrição do processo
    • cwd (opcional): Diretório de trabalho
  2. terminate_process - Parar um processo específico

    • id (obrigatório): ID do processo a ser encerrado
  3. terminate_all_processes - Parar todos os processos gerenciados

  4. list_processes - Listar todos os processos

    • id (opcional): Obter informações de um processo específico
  5. get_logs - Recuperar logs do processo

    • id (obrigatório): ID do processo
    • lines (opcional): Número de linhas recentes
  6. grep_logs - Pesquisar logs do processo

    • id (obrigatório): ID do processo
    • pattern (obrigatório): Padrão de pesquisa regex
  7. send_input - Enviar entrada para o processo em execução

    • id (obrigatório): ID do processo
    • input (obrigatório): String de entrada a ser enviada

Ferramenta CLI

# Start a process
npx pm-mcp cli start "dev-server" "npm run dev" --description "Development server"

# List all processes
npx pm-mcp cli list

# Get logs
npx pm-mcp cli logs <process-id>

# Search logs
npx pm-mcp cli grep <process-id> "error"

# Send input to process
npx pm-mcp cli input <process-id> "some input"

# Terminate process
npx pm-mcp cli terminate <process-id>

# Terminate all processes
npx pm-mcp cli terminate-all

Exemplo de Uso com Claude

Claude: I'll start your development servers for you.

User: Start a React dev server on port 3000 and an API server on port 8080

Claude: I'll start both servers for you.

[Uses start_process tool]
- Name: "react-dev"
- Command: "npm run dev"
- Description: "React development server on port 3000"

[Uses start_process tool]  
- Name: "api-server"
- Command: "npm run api:dev"
- Description: "API development server on port 8080"

Both servers are now running. You can check their logs or terminate them anytime.

User: Check if there are any errors in the React server

Claude: [Uses grep_logs tool with pattern "error"]
No errors found in the React server logs.

User: Send "q" to quit the API server

Claude: [Uses send_input tool]
Input "q" sent to the API server process.

Arquivos de Log

Os logs dos processos são armazenados no diretório ./pm-mcp-logs/ com o formato <process-id>.log. Cada entrada de log inclui:

  • Carimbo de data/hora
  • Tipo de fluxo (stdout/stderr)
  • Conteúdo do log

Desenvolvimento

# Build the project
npm run build

# Watch mode for development
npm run dev

# Run the MCP server
npm start

# Use the CLI
npx pm-mcp cli --help

Arquitetura

  • ProcessManager: Classe principal que gerencia o ciclo de vida do processo, registro e gerenciamento
  • Servidor MCP: Expõe a funcionalidade de gerenciamento de processos via protocolo MCP
  • Ferramenta CLI: Interface independente para gerenciamento direto de processos
  • Registro: Registro persistente baseado em arquivos com rastreamento de carimbo de data/hora e tipo de fluxo