by thanhtung0201
MCP System Health Monitoring is a robust, real-time solution for comprehensive health metrics and alerts for remote Linux servers, designed for seamless integration with AI assistants like Claude.
MCP System Health Monitoring is a server monitoring system built on the Multi-Channel Protocol (MCP) framework. It provides real-time health and performance metrics for remote Linux servers by establishing SSH connections to collect various system metrics.
pip install -r requirements.txt
.mcp_launcher.py
script with command-line options for username, password/key-path, SSH port, and server IPs. It can also be used as a library by configuring server details and calling the serve
function.system_status
, cpu_metrics
, memory_metrics
, disk_metrics
, network_metrics
, security_metrics
, process_list
, system_alerts
, and health_summary
.Q: What operating systems are supported? A: Currently, it only supports Linux-based servers.
Q: Does it store historical data? A: No, metrics are real-time only and there is no historical data storage.
Q: Does it have a notification system for alerts? A: No, alerts are only available via tool calls and there is no built-in notification system.
Q: Can I customize alert thresholds? A: There is limited customization of alert thresholds.
Q: What are the security considerations? A: It is recommended to prefer key-based authentication, use dedicated monitoring accounts with limited permissions, store SSH credentials securely, and run the MCP server on a secure, trusted host.
Q: How can I troubleshoot issues? A: Ensure SSH credentials are correct, target servers allow SSH connections, the user has sufficient permissions, and enable debug logging for detailed output.
A robust server monitoring system built on the Multi-Channel Protocol (MCP) framework, designed for seamless integration with Claude and other AI assistants.
MCP System Health Monitoring provides real-time health and performance metrics for remote Linux servers. It establishes SSH connections to collect system metrics including CPU usage, memory utilization, disk space, network statistics, security metrics, and more.
Clone the repository:
git clone https://github.com/yourusername/mcp-system-health.git
cd mcp-system-health
Create a virtual environment:
python -m venv venv
Activate the virtual environment
source venv/bin/activate
venv\Scripts\activate
Install dependencies:
pip install -r requirements.txt
Create a configuration file for each server you want to monitor:
{
"hostname": "server1",
"ip": "192.168.1.100",
"ssh_port": 22,
"username": "admin",
"key_path": "~/.ssh/id_rsa"
}
Alternatively, you can use the command-line launcher to dynamically create configurations.
./mcp_launcher.py --username=admin --key-path=~/.ssh/id_rsa --servers=192.168.1.100,192.168.1.101
--username
: SSH username (required)--password
: SSH password (either this or key-path required)--key-path
: Path to SSH private key (either this or password required)--ssh-port
: SSH port (default: 22)--servers
: Comma-separated list of server IPs (required)--repository
: Path to existing server repository--log-level
: Logging level (debug, info, warning, error)To use the MCP System Health server with MCP clients like Claude, you'll need to add the server configuration to your client's MCP settings.
Add this configuration to Claude's MCP settings and restart for changes to take effect: You can use either password or key_path
{
"mcpServers": {
"system-health": {
"command": "/path/to/your/venv/bin/python3",
"args": [
"/path/to/your/system-health-mcp-server/src/mcp_launcher.py",
"--username=your_ssh_username",
"--password=your_ssh_password",
"--key-path=~/.ssh/id_rsa",
"--servers=server1.example.com,server2.example.com",
"--log-level=debug"
],
"description": "System Health MCP Server for monitoring remote servers"
}
}
}
#Using as a Library
#Configure your servers, you can use either password or key_path
from src.server import serve
server_configs = [
{
"hostname": "server1",
"ip": "192.168.1.100",
"ssh_port": 22,
"username": "admin",
"password": "password",
"key_path": "~/.ssh/id_rsa"
}
]
#Start the MCP server
await serve(server_configs)
The MCP server exposes the following tools:
The system provides automatic alerts based on these default thresholds:
CPU:
Memory:
Disk:
Security:
Contributions are welcome! Please feel free to submit a Pull Request.
Reviews feature coming soon
Stay tuned for community discussions and feedback