mcp-system-monitor
by VZilvinskus
README.md
# MCP System Monitor
A production-grade Model Context Protocol (MCP) server that provides Claude with comprehensive system monitoring and diagnostics capabilities.
## What It Does
This MCP server gives Claude direct access to system metrics and diagnostics, enabling it to:
- Monitor CPU, memory, and disk usage in real-time
- Analyze running processes and resource consumption
- Inspect network connections and listening ports
- Monitor Docker containers and images
- Access system logs via journalctl (Linux)
Perfect for system diagnostics, performance troubleshooting, DevOps automation, and infrastructure monitoring.
## Features
### Available Tools
1. **get_system_resources** - Real-time system resource monitoring
- CPU usage, cores, and load
- Memory usage and swap statistics
- Disk usage and filesystem info
- System uptime and OS details
2. **list_processes** - Process monitoring and analysis
- Top processes by CPU or memory usage
- Process state and resource consumption
- Command line and user information
- Sortable and filterable results
3. **get_network_connections** - Network connection analysis
- Active network connections
- Listening ports and services
- Connection states (ESTABLISHED, LISTEN, etc.)
- Process-to-port mapping
4. **get_docker_status** - Docker container monitoring
- Running and stopped containers
- Container status and health
- Image inventory
- Port mappings and resource usage
5. **get_system_logs** - System log analysis (Linux only)
- Recent journalctl entries
- Filterable by priority level
- Filterable by systemd unit
- Structured log output
## Installation
```bash
cd mcp-system-monitor
npm install
npm run build
```
## Configuration
### Claude Code Configuration
Add to your Claude Code MCP settings (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
```json
{
"mcpServers": {
"system-monitor": {
"command": "node",
"args": ["/absolute/path/to/mcp-system-monitor/dist/index.js"]
}
}
}
```
### Permissions
Some features require elevated permissions:
- **Docker status**: User must be in the `docker` group
- **System logs**: May require sudo access to journalctl (depending on system configuration)
- **Process details**: Full process info may require elevated privileges
## Example Usage with Claude Code
Once configured, you can ask Claude:
> "What's my current CPU and memory usage?"
> "Show me the top 10 processes by CPU usage"
> "List all listening ports and which processes are using them"
> "What Docker containers are running right now?"
> "Show me the last 100 error-level system logs"
> "Which process is using port 8080?"
> "Is my disk usage getting high?"
## Platform Support
- **CPU/Memory/Disk/Processes**: All platforms (Linux, macOS, Windows)
- **Network connections**: All platforms
- **Docker status**: Requires Docker installation
- **System logs**: Linux only (requires systemd/journalctl)
Gracefully degrades on platforms where features aren't available.
## Development
```bash
# Watch mode for development
npm run dev
# Build for production
npm run build
# Start the server
npm start
```
## Security Considerations
This server provides read-only access to system information. It does not:
- Modify system configuration
- Kill or start processes
- Change permissions
- Execute arbitrary commands
However, it does expose system information including:
- Running processes and their arguments
- Network connections
- System logs
Only use in trusted environments and be mindful of what information you share.
## Error Handling
The server includes comprehensive error handling for:
- Missing system utilities (docker, journalctl)
- Permission denied errors
- Platform-specific features
- Malformed data
- Schema validation errors
Features that aren't available will return clear messages instead of errors.
## Tech Stack
- TypeScript for type safety
- @modelcontextprotocol/sdk for MCP protocol
- systeminformation for cross-platform system metrics
- Zod for runtime schema validation
- Native child_process for Docker and journalctl integration
## Use Cases
- **DevOps**: Automated system health checks
- **Troubleshooting**: Quick diagnostics without leaving Claude
- **Monitoring**: Resource usage tracking and alerting
- **Documentation**: Generate system reports and inventories
- **Development**: Debug resource leaks and performance issues
## License
MIT
TDQS
A4/5.0
Scored across 5 tools
Disambiguation5/5
Each tool targets a distinct monitoring domain: system resources, network, processes, Docker, and logs. There is no overlap or ambiguity between the tools.
Naming Consistency5/5
All tool names follow the same get_<object> pattern, using snake_case consistently. The naming is predictable and easy to navigate.
Tool Count5/5
Five tools is a well-scoped size for a system monitoring server, covering the primary monitoring surfaces without unnecessary bloat.
Completeness4/5
The tool surface covers the main system monitoring areas: resources, network, processes, containers, and logs. Minor gaps like disk I/O statistics or service management exist, but the core monitoring workflows are well supported.
Maintenance
ActivityInactive
ResponsivenessNo issues