{
  "markdown": "# sysmcp\n\nMCP server that exposes live host signal — CPU, memory, processes, network —\nto Cursor / Claude. Default path is `/proc` (no root). Optional eBPF tools\nactivate when `CAP_BPF` / `CAP_PERFMON` is available.\n\n**Repo:** https://github.com/arunmm8335/sysmcp · **Version:** 0.5.0\n\n## Tools\n\n| Tool | What it returns |\n|------|-----------------|\n| `host_dashboard` | Full snapshot (CPU, mem, top procs, listeners, eBPF) |\n| `poll_host_stats` | Lightweight CPU/mem/process snapshot for auto-refresh |\n| `system_stats` | CPU %, memory %, load averages, NIC rx/tx B/s |\n| `top_processes` | Top PIDs by **CPU % over a sample window**, plus `skipped_count` |\n| `network_connections` | IPv4+IPv6 TCP/UDP; filters + `resolve_pid`; row limit (default 200) |\n| `cgroup_cpu` | Top cgroups by CPU % (cgroup v2 `cpu.stat`) |\n| `iface_rates` | Per-interface byte/packet rates (`/proc/net/dev`) |\n| `ebpf_status` | Whether eBPF works; includes `how_to_enable` when not |\n| `ebpf_activity` | Fork + `sched_switch` rates via eBPF, or `available: false` |\n| `ebpf_traffic` | Kernel RX/TX packet rates (`netif_receive_skb` / `net_dev_xmit`) |\n\nTrue per-connection byte counters need sock-level eBPF; `iface_rates` +\n`ebpf_traffic` are the practical deeper network signal today.\n\n## Browser dashboard (HTTP)\n\n```bash\ngo build -o sysmcp ./cmd/sysmcp\n./sysmcp serve\n# open http://127.0.0.1:8787/\n```\n\nOptional: `./sysmcp serve -addr 127.0.0.1:9000`\n\nAPIs: `/api/dashboard`, `/api/poll` (JSON).\n\n## Interactive views in Cursor\n\nAsk *“Open the host dashboard”* / *“Refresh the host dashboard”*. The agent\ncalls `host_dashboard` and opens a **Cursor Canvas** beside the chat.\n\nMCP Apps resource `ui://sysmcp/dashboard` remains for hosts that render Apps\niframes. Cursor often uses Canvas + JSON instead.\n\n### `network_connections` filters\n\n| Arg | Effect |\n|-----|--------|\n| `listen_only` | TCP `LISTEN` + unbound UDP |\n| `protocol` | `tcp` / `udp` |\n| `family` | `ipv4` / `ipv6` |\n| `state` | e.g. `ESTABLISHED`, `LISTEN` |\n| `local_port` | filter by local port |\n| `pid` | owning PID (implies `resolve_pid`) |\n| `limit` | max rows (default 200, max 1000); `truncated` in result |\n\n## Install\n\n**Release binaries** (linux amd64 / arm64) ship on each `v*` tag:\n\nhttps://github.com/arunmm8335/sysmcp/releases\n\n```bash\n# example amd64\ncurl -fsSL -o sysmcp.tgz \\\n  https://github.com/arunmm8335/sysmcp/releases/download/v0.5.0/sysmcp_0.5.0_linux_amd64.tar.gz\ntar -xzf sysmcp.tgz\n```\n\nOr from source:\n\n```bash\ngo install github.com/arunmm8335/sysmcp/cmd/sysmcp@latest\n# or\ngit clone https://github.com/arunmm8335/sysmcp.git\ncd sysmcp\ngo build -o sysmcp ./cmd/sysmcp\n```\n\n### MCP Registry (one-click)\n\nNamespace: `io.github.arunmm8335/sysmcp`. Tag releases build `.mcpb` assets and\nattempt an OIDC publish via `mcp-publisher`. To publish manually after a\nrelease (recommended if OIDC is not set up):\n\n```bash\n# fill fileSha256 in server.json from the release *.mcpb.sha256 files, then:\ncurl -fsSL -o mcp-publisher.tgz \\\n  https://github.com/modelcontextprotocol/registry/releases/download/v1.8.0/mcp-publisher_linux_amd64.tar.gz\ntar -xzf mcp-publisher.tgz mcp-publisher\n./mcp-publisher login github\n./mcp-publisher publish ./server.json\n```\n\nSee https://modelcontextprotocol.io/registry/quickstart\n\n## Cursor / Claude MCP config\n\n```json\n{\n  \"mcpServers\": {\n    \"sysmcp\": {\n      \"command\": \"/absolute/path/to/sysmcp\"\n    }\n  }\n}\n```\n\n## Enable eBPF (optional)\n\n```bash\ngo build -o sysmcp ./cmd/sysmcp\n./scripts/grant-caps.sh ./sysmcp\n# sets: cap_bpf,cap_perfmon+ep\n```\n\nRestart the MCP server after granting caps. Without caps, eBPF tools return\n`available: false` — `/proc` tools still work.\n\n## Demo\n\n```bash\ngo test ./... -count=1\ngo build -o sysmcp ./cmd/sysmcp\ngo run ./scripts/smoke.go ./sysmcp\n./sysmcp serve   # then open http://127.0.0.1:8787/\n```\n\n## License\n\nMIT\n",
  "bytes": 3851,
  "sha": "1fee8f5f3b99ec14c5ec5cb075e602af9d399f1855a7b8964546195dd1841403",
  "repo_slug": "arunmm8335/sysmcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_arunmm8335_sysmcp_8a80592d/readme"
}