Labsco
ranvirw18 logo

System Metrics MCP Server

β˜… 1

from ranvirw18

Real-time system monitoring MCP server built with Python and FastMCP - exposes CPU, memory, disk, and process metrics to any MCP-compatible AI client.

πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedFreeQuick setup

System Metrics MCP

System Metrics MCP is a Python-based Model Context Protocol server that exposes system health, process information, disk details, network statistics, battery status, temperature sensors, and secure log file access.

Available Tools

  • get_system_status()
  • list_high_cpu_processes(limit=5)
  • list_high_memory_processes(limit=5)
  • get_disk_details()
  • read_log_file(filename)
  • get_network_stats()
  • get_battery_status()
  • get_top_process_details(pid)
  • get_system_temperature()

Important Security Notes

  • read_log_file only allows files inside the local ./logs/ directory.
  • Absolute paths and path traversal attempts are rejected.
  • Log files larger than 1 MB are refused to prevent denial-of-service or memory exhaustion.
  • MCP tool inputs are validated using FastMCP strict input validation.

Example Prompts

  • "What is the current CPU and RAM usage on the system?"
  • "List the top 5 processes by CPU usage."
  • "Show the top 5 memory-hungry processes."
  • "Return the current disk utilization details."
  • "Read the contents of app.log from the logs directory."
  • "Provide the system network statistics."
  • "What is the battery charge percentage and is the system plugged in?"
  • "Give me detailed metrics for PID 1234."
  • "Do we have temperature sensors available and what are their readings?"

Security Design

  • Log files can only be read from the local ./logs/ directory.
  • Absolute file paths are rejected.
  • Path traversal attempts such as ../ or ../../ are blocked using pathlib.Path.resolve() and strict directory validation.
  • Invalid file access attempts are logged and returned as human-readable errors.
  • Each tool implements exception handling for FileNotFoundError, PermissionError, psutil.AccessDenied, psutil.NoSuchProcess, and unexpected exceptions.

Logging

Application logging is written to logs/server.log and also streamed to the console. The server logs:

  • tool invocations
  • access errors
  • unexpected failures

Notes

  • The server is designed for production-quality usage with async support and modular implementation.
  • The logs/ directory is intentionally included as an empty folder for secure log access and server logging.