About sysmcp
sysmcp is an MCP server that exposes live Linux host metrics to clients such as Cursor and Claude. It reads standard signals from /proc without root and adds optional eBPF activity and traffic data when capabilities are available.
Key features
- 01Live CPU and memory statistics
- 02Process and network connection inspection
- 03Per-interface and cgroup rates
- 04Optional eBPF activity and traffic data
- 05Browser dashboard and JSON APIs
Use cases
- 01Inspect host load while diagnosing a Linux system
- 02Find processes associated with network connections
- 03Monitor interface traffic rates
- 04View host metrics in a browser dashboard
MCP support
Exposes Linux host metrics and inspection tools to MCP clients, including system snapshots, process lists, network connections, and optional eBPF data.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEsysmcp
MCP server that exposes live host signal — CPU, memory, processes, network —
to Cursor / Claude. Default path is /proc (no root). Optional eBPF tools
activate when CAP_BPF / CAP_PERFMON is available.
Repo: https://github.com/arunmm8335/sysmcp · Version: 0.5.0
Tools
| Tool | What it returns |
|---|---|
host_dashboard | Full snapshot (CPU, mem, top procs, listeners, eBPF) |
poll_host_stats | Lightweight CPU/mem/process snapshot for auto-refresh |
system_stats | CPU %, memory %, load averages, NIC rx/tx B/s |
top_processes | Top PIDs by CPU % over a sample window, plus skipped_count |
network_connections | IPv4+IPv6 TCP/UDP; filters + resolve_pid; row limit (default 200) |
cgroup_cpu | Top cgroups by CPU % (cgroup v2 cpu.stat) |
iface_rates | Per-interface byte/packet rates (/proc/net/dev) |
ebpf_status | Whether eBPF works; includes how_to_enable when not |
ebpf_activity | Fork + sched_switch rates via eBPF, or available: false |
ebpf_traffic | Kernel RX/TX packet rates (netif_receive_skb / net_dev_xmit) |
True per-connection byte counters need sock-level eBPF; iface_rates +
ebpf_traffic are the practical deeper network signal today.
Browser dashboard (HTTP)
go build -o sysmcp ./cmd/sysmcp
./sysmcp serve
# open http://127.0.0.1:8787/
Optional: ./sysmcp serve -addr 127.0.0.1:9000
APIs: /api/dashboard, /api/poll (JSON).
Interactive views in Cursor
Ask “Open the host dashboard” / “Refresh the host dashboard”. The agent
calls host_dashboard and opens a Cursor Canvas beside the chat.
MCP Apps resource ui://sysmcp/dashboard remains for hosts that render Apps
iframes. Cursor often uses Canvas + JSON instead.
network_connections filters
| Arg | Effect |
|---|---|
listen_only | TCP LISTEN + unbound UDP |
protocol | tcp / udp |
family | ipv4 / ipv6 |
state | e.g. ESTABLISHED, LISTEN |
local_port | filter by local port |
pid | owning PID (implies resolve_pid) |
limit | max rows (default 200, max 1000); truncated in result |
Install
Release binaries (linux amd64 / arm64) ship on each v* tag:
https://github.com/arunmm8335/sysmcp/releases
# example amd64
curl -fsSL -o sysmcp.tgz \
https://github.com/arunmm8335/sysmcp/releases/download/v0.5.0/sysmcp_0.5.0_linux_amd64.tar.gz
tar -xzf sysmcp.tgz
Or from source:
go install github.com/arunmm8335/sysmcp/cmd/sysmcp@latest
# or
git clone https://github.com/arunmm8335/sysmcp.git
cd sysmcp
go build -o sysmcp ./cmd/sysmcp
MCP Registry (one-click)
Namespace: io.github.arunmm8335/sysmcp. Tag releases build .mcpb assets and
attempt an OIDC publish via mcp-publisher. To publish manually after a
release (recommended if OIDC is not set up):
# fill fileSha256 in server.json from the release *.mcpb.sha256 files, then:
curl -fsSL -o mcp-publisher.tgz \
https://github.com/modelcontextprotocol/registry/releases/download/v1.8.0/mcp-publisher_linux_amd64.tar.gz
tar -xzf mcp-publisher.tgz mcp-publisher
./mcp-publisher login github
./mcp-publisher publish ./server.json
See https://modelcontextprotocol.io/registry/quickstart
Cursor / Claude MCP config
{
"mcpServers": {
"sysmcp": {
"command": "/absolute/path/to/sysmcp"
}
}
}
Enable eBPF (optional)
go build -o sysmcp ./cmd/sysmcp
./scripts/grant-caps.sh ./sysmcp
# sets: cap_bpf,cap_perfmon+ep
Restart the MCP server after granting caps. Without caps, eBPF tools return
available: false — /proc tools still work.
Demo
go test ./... -count=1
go build -o sysmcp ./cmd/sysmcp
go run ./scripts/smoke.go ./sysmcp
./sysmcp serve # then open http://127.0.0.1:8787/
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.