sysmcp について
sysmcp は、Cursor や Claude などのクライアントに Linux ホストのリアルタイム指標を提供する MCP サーバーです。root 権限なしで /proc から基本情報を取得し、必要な権限がある場合は eBPF の活動・トラフィック情報も利用できます。
主な機能
- 01CPU とメモリのリアルタイム統計
- 02プロセスとネットワーク接続の確認
- 03インターフェースと cgroup のレート
- 04オプションの eBPF 活動・トラフィック情報
- 05ブラウザダッシュボードと JSON API
活用シーン
- 01Linux システムの負荷を調査
- 02ネットワーク接続に関連するプロセスを特定
- 03インターフェースのトラフィックレートを監視
- 04ブラウザダッシュボードでホスト指標を確認
MCP 対応
システムスナップショット、プロセス一覧、ネットワーク接続、オプションの eBPF データなど、Linux ホストの指標と調査ツールを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
sysmcp
ホストのリアルタイムなシグナル(CPU、メモリ、プロセス、ネットワーク)を Cursor / Claude に公開する MCP サーバーです。デフォルトでは /proc を使用し、root 権限は不要です。CAP_BPF / CAP_PERFMON を利用できる場合は、オプションの eBPF ツールが有効になります。
リポジトリ: https://github.com/arunmm8335/sysmcp · バージョン: 0.5.0
ツール
| ツール | 返される情報 |
|---|---|
host_dashboard | スナップショット全体(CPU、メモリ、上位プロセス、リスナー、eBPF) |
poll_host_stats | 自動更新用の軽量な CPU/メモリ/プロセスのスナップショット |
system_stats | CPU 使用率、メモリ使用率、ロードアベレージ、NIC の受信/送信 B/s |
top_processes | サンプル期間内の CPU 使用率による上位 PID と skipped_count |
network_connections | IPv4+IPv6 の TCP/UDP。フィルターと resolve_pid に対応。行数制限(デフォルト 200) |
cgroup_cpu | CPU 使用率による上位 cgroup(cgroup v2 の cpu.stat) |
iface_rates | インターフェースごとのバイト/パケットレート(/proc/net/dev) |
ebpf_status | eBPF が機能するかどうか。機能しない場合は how_to_enable を含みます |
ebpf_activity | eBPF による fork + sched_switch レート。利用できない場合は available: false |
ebpf_traffic | カーネルの RX/TX パケットレート(netif_receive_skb / net_dev_xmit) |
接続ごとの正確なバイトカウンターには、ソケットレベルの eBPF が必要です。現時点では、より詳細なネットワークシグナルを得る実用的な方法として iface_rates と ebpf_traffic を利用できます。
ブラウザーダッシュボード(HTTP)
go build -o sysmcp ./cmd/sysmcp
./sysmcp serve
# open http://127.0.0.1:8787/
オプション:./sysmcp serve -addr 127.0.0.1:9000
API:/api/dashboard、/api/poll(JSON)。
Cursor のインタラクティブビュー
「ホストダッシュボードを開いて」/*「ホストダッシュボードを更新して」*と依頼します。エージェントが host_dashboard を呼び出し、チャットの横に Cursor Canvas を開きます。
MCP Apps リソース ui://sysmcp/dashboard は、Apps の iframe を表示するホスト向けに引き続き利用できます。Cursor では通常、代わりに Canvas + JSON が使用されます。
network_connections のフィルター
| 引数 | 効果 |
|---|---|
listen_only | TCP の LISTEN + バインドされていない UDP |
protocol | tcp / udp |
family | ipv4 / ipv6 |
state | 例:ESTABLISHED、LISTEN |
local_port | ローカルポートで絞り込み |
pid | 所有者の PID(resolve_pid を暗黙的に指定) |
limit | 最大行数(デフォルト 200、最大 1000)。結果に truncated が含まれます |
インストール
リリースバイナリ(linux amd64 / arm64)は、各 v* タグで公開されます。
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
またはソースから:
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(ワンクリック)
名前空間:io.github.arunmm8335/sysmcp。タグ付きリリースでは .mcpb アセットがビルドされ、mcp-publisher を介した OIDC 公開が試行されます。リリース後に手動で公開するには(OIDC が設定されていない場合に推奨):
# 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
https://modelcontextprotocol.io/registry/quickstart を参照してください。
Cursor / Claude MCP の設定
{
"mcpServers": {
"sysmcp": {
"command": "/absolute/path/to/sysmcp"
}
}
}
eBPF を有効にする(オプション)
go build -o sysmcp ./cmd/sysmcp
./scripts/grant-caps.sh ./sysmcp
# sets: cap_bpf,cap_perfmon+ep
cap を付与した後、MCP サーバーを再起動してください。cap がない場合、eBPF ツールは available: false を返します。/proc ツールは引き続き動作します。
デモ
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/
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。