MCP server by TobiasArg
HW-Info MCP Server
A Model Context Protocol (MCP) server for system monitoring and process management. Get detailed information about CPU, memory, disk, network, processes, and ports.
Features
- System info - Hostname, platform, kernel, uptime
- CPU monitoring - Model, cores, usage per core, temperature
- Memory details - Total, available, active, wired, swap
- Disk usage - All filesystems or specific paths
- Process management - List, filter, kill with safety checks
- Network ports - Listening services, connections count
- Network info - Interfaces, gateway, DNS, public IP
- Cross-platform - macOS, Linux, Windows
Installation
NPX
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"hw-info": {
"command": "npx",
"args": ["-y", "hw-info"]
}
}
}
That's it! Claude Desktop will automatically download and run the MCP server via npx.
Alternative: Install from source
git clone https://github.com/argtobias/hw-info.git
cd hw-info
pnpm install
pnpm build
Then configure Claude Desktop:
{
"mcpServers": {
"hw-info": {
"command": "node",
"args": ["/path/to/hw-info/dist/index.js"]
}
}
}
Available Tools
System Information
| Tool | Description |
|------|-------------|
| system_info | Hostname, platform, arch, kernel, uptime, user info |
| cpu_usage | CPU model, cores (logical/physical), speed, usage %, temperature, threads |
| memory_usage | Total, free, used, available, active, wired, compressed, cached, swap |
| disk_usage | Filesystem, size, used, available, mount point. Use allDisks: true for all |
Process Management
| Tool | Description |
|------|-------------|
| processes | List processes with CPU, memory, state, threads. Filter by name, sort by cpu/memory/pid |
| ports | List open ports with protocol, address, state, PID, process name, connection count |
| kill_process | Kill by PID or name. Returns process info, children killed, graceful status |
Network
| Tool | Description |
|------|-------------|
| network_info | Interfaces (IP, MAC, status, traffic), gateway, DNS. Optional: public IP |
Usage Examples
Get system overview
{ "tool": "system_info" }
Check CPU usage per core
{ "tool": "cpu_usage", "arguments": { "perCore": true } }
Memory in GB with full details
{ "tool": "memory_usage", "arguments": { "unit": "gb" } }
List all disks
{ "tool": "disk_usage", "arguments": { "allDisks": true } }
Find processes by name
{ "tool": "processes", "arguments": { "filter": "node", "limit": 10 } }
Check what's on port 3000
{ "tool": "ports", "arguments": { "port": 3000 } }
Kill process by PID
{ "tool": "kill_process", "arguments": { "pid": 12345 } }
Get network info with public IP
{ "tool": "network_info", "arguments": { "includePublicIP": true } }
Output Examples
memory_usage
{
"total": 16,
"free": 0.36,
"used": 15.64,
"usedPercent": 98,
"unit": "GB",
"active": 4.84,
"inactive": 4.81,
"wired": 2.3,
"compressed": 3.07,
"cached": 2.86,
"available": 8.03,
"swap": { "total": 2, "used": 0.96, "free": 1.04 }
}
network_info
{
"interfaces": [
{ "name": "en0", "ip": "192.168.1.43", "mac": "aa:bb:cc:dd:ee:ff", "status": "up", "type": "ethernet", "bytesIn": 16424, "bytesOut": 1073 }
],
"defaultGateway": "192.168.1.1",
"dns": ["8.8.8.8", "8.8.4.4"],
"publicIP": "201.178.36.81"
}
Development
pnpm install
pnpm build
pnpm dev
# Run tests
./test.sh
License
ISC