sysmcp

io.github.arunmm8335Published by GitHub account arunmm8335v0.5.0Updated Oct 24, 2026

Live Linux host signal (CPU, memory, processes, network, optional eBPF) for MCP clients.

Overview

AI-generated overview

A local MCP server that exposes live Linux host signals — CPU, memory, processes and network — to AI assistants such as Cursor and Claude.

What you can do
Read CPU, memory, load averages and per-interface network rates, and poll lightweight snapshots for auto-refresh or a full host dashboard snapshot including top processes and listeners. List top processes by CPU usage over a sample window and top cgroups by CPU usage. Inspect IPv4 and IPv6 TCP/UDP connections with filters for listen-only, protocol, family, state, local port, owning PID and row limit. Optionally report eBPF status, fork and scheduler activity, and kernel packet rates when capabilities are granted.
When to use it
Useful when you want an assistant to diagnose or monitor a Linux machine it runs on: checking load, finding CPU-heavy processes, seeing which ports are listening, or watching network throughput during debugging.
Requirements
Runs as a local process on Linux (amd64 or arm64), installed from a release binary, built from source with Go, or configured by absolute path in the MCP client config. Default data comes from /proc and needs no root. Optional eBPF tools require CAP_BPF and CAP_PERFMON granted to the binary, plus a restart.
Before you install
The server reads live host data such as process lists and network connections, which may include sensitive details about running services; review what your assistant host sends onward. Granting CAP_BPF and CAP_PERFMON gives the binary elevated kernel-level monitoring privileges, so only do so if you trust the build. It is read-only monitoring and does not change host state.

Installation

In SourceWeft

  1. Open sysmcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

sysmcp

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

ToolWhat it returns
host_dashboardFull snapshot (CPU, mem, top procs, listeners, eBPF)
poll_host_statsLightweight CPU/mem/process snapshot for auto-refresh
system_statsCPU %, memory %, load averages, NIC rx/tx B/s
top_processesTop PIDs by CPU % over a sample window, plus skipped_count
network_connectionsIPv4+IPv6 TCP/UDP; filters + resolve_pid; row limit (default 200)
cgroup_cpuTop cgroups by CPU % (cgroup v2 cpu.stat)
iface_ratesPer-interface byte/packet rates (/proc/net/dev)
ebpf_statusWhether eBPF works; includes how_to_enable when not
ebpf_activityFork + sched_switch rates via eBPF, or available: false
ebpf_trafficKernel 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)

bash
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

ArgEffect
listen_onlyTCP LISTEN + unbound UDP
protocoltcp / udp
familyipv4 / ipv6
statee.g. ESTABLISHED, LISTEN
local_portfilter by local port
pidowning PID (implies resolve_pid)
limitmax 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

bash
# example amd64curl -fsSL -o sysmcp.tgz \  https://github.com/arunmm8335/sysmcp/releases/download/v0.5.0/sysmcp_0.5.0_linux_amd64.tar.gztar -xzf sysmcp.tgz

Or from source:

bash
go install github.com/arunmm8335/sysmcp/cmd/sysmcp@latest# orgit clone https://github.com/arunmm8335/sysmcp.gitcd sysmcpgo 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):

bash
# 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.gztar -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

json
{  "mcpServers": {    "sysmcp": {      "command": "/absolute/path/to/sysmcp"    }  }}

Enable eBPF (optional)

bash
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

bash
go test ./... -count=1go build -o sysmcp ./cmd/sysmcpgo run ./scripts/smoke.go ./sysmcp./sysmcp serve   # then open http://127.0.0.1:8787/

License

MIT

Source: README.md at commit 8868a43

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.5.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts