Servidor MCP (Model Context Protocol) para monitoramento de processos locais com Python.
Este projeto expõe ferramentas para:
- listar processos ativos ordenados por uso de memória;
- consultar detalhes de um PID específico;
- encerrar processos locais (com opção de término forçado).
O servidor implementa 3 ferramentas MCP:
-
listar_processos(limite: int = 15) -> list[dict]- Retorna processos ativos ordenados por
memoria_rss_mb(descendente). - O
limiteé normalizado entre1e100.
- Retorna processos ativos ordenados por
-
detalhes_processo(pid: int) -> dict- Retorna dados detalhados do processo:
- PID, nome, status, usuário, uso de CPU e memória;
- linha de comando (
cmdline); - quantidade de threads;
- timestamp de criação.
- Retorna dados detalhados do processo:
-
encerrar_processo(pid: int, forcar: bool = False) -> str- Encerra o processo por
terminate()oukill()quandoforcar=True. - Possui proteção para impedir que o servidor encerre a si próprio.
- Encerra o processo por
.
├── server.py
└── README.md
- Python 3.10+
- Ambiente Linux/macOS/Windows com acesso aos processos locais
python -m venv .venv
source .venv/bin/activate # Linux/macOS
# .venv\Scripts\activate # Windows (PowerShell)
pip install --upgrade pip
pip install mcp psutilpython server.pyO servidor inicia em modo MCP e disponibiliza as ferramentas via transporte padrão do SDK (stdio).
Use o interpretador da sua venv para registrar o servidor no cliente MCP:
{
"mcpServers": {
"process-monitor": {
"command": "/caminho/para/projeto/.venv/bin/python",
"args": ["/caminho/para/projeto/server.py"]
}
}
}- As ações refletem permissões do usuário que executa o servidor.
encerrar_processopode interromper serviços críticos se usado sem cuidado.- Alguns PIDs podem retornar
AccessDenieddependendo do sistema.
- adicionar métricas de uso de disco/rede por processo;
- incluir filtros por usuário/nome de processo;
- adicionar testes automatizados para as ferramentas MCP.