内容
# 核心信息

一个轻量级的 Linux 系统监视器和 MCP 服务器,使用 Rust + GTK4 构建 — ~740KB 二进制文件,无膨胀。
双模式:启动 GUI 小部件,或使用 MCP 服务器为 AI 代理提供实时的系统统计数据。
## 功能
- **CPU** 每核心使用率,聚合火花图(2分钟),温度
- **GPU** 核心利用率,显存,温度(NVIDIA)
- **RAM** 已用/总容量,火花图
- **磁盘** 根分区使用率
- **网络** 实时上传/下载速度
- **顶部进程** 按 CPU 排序
- **可拖拽和可调整大小** 窗口
- **MCP 服务器** — stdin/stdout JSON-RPC 为 AI 代理
## AI 代理的 MCP 服务器
核心信息同时作为 [MCP](https://modelcontextprotocol.io) 服务器。AI 代理(Claude Desktop,Cline,Cursor 等)可以在无需守护进程、HTTP 端口或配置的情况下,查询实时的硬件状态。
### 暴露的工具
| 工具 | 返回 |
|------|---------|
| `get_cpu_usage` | 每核心 + 聚合使用率 %,温度,核心数量 |
| `get_gpu_stats` | GPU 核心 %,显存使用/总容量,温度 |
| `get_ram_stats` | RAM 使用/总容量 GB,百分比 |
| `get_disk_stats` | 磁盘使用率(默认 `/`) |
| `get_network_speed` | 实时下载/上传速度,附带接口名称 |
| `get_top_processes` | 顶部 N 个进程,按 CPU 排序(默认 5) |
### 与 AI 代理一起使用
**Claude Desktop / Cline / 任意 MCP 客户端:**
在您的 MCP 配置文件(`~/.config/opencode/mcp.json` 或 `claude_desktop_config.json`)中添加:
```json
{
"mcpServers": {
"ctrl-vitals": {
"command": "ctrl-vitals",
"args": ["mcp"]
}
}
}
```
然后在您的 AI 代理提示中:
> "我的当前 CPU 和 RAM 使用率是多少?"
> "显示 CPU 占用率最高的 5 个进程"
> "还有多少磁盘空间是空闲的?"
代理将调用相应的工具,并用实时数据响应。
### 手动测试
```bash
# 列出可用的工具
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | ctrl-vitals mcp
# 获取 CPU 使用率(大约 200ms 获取一个新的样本)
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_cpu_usage","arguments":{}}}' | ctrl-vitals mcp
# 获取 RAM 状态
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_ram_stats","arguments":{}}}' | ctrl-vitals mcp
```
## 安装
### 从发布版本
```bash
# tar.gz
tar xzf ctrl-vitals-v0.2.0-linux-x86_64.tar.gz
./install.sh # 用户安装(~/.local/bin)
# 或
sudo ./install.sh --system # 系统范围安装(/usr/local/bin)
# .deb
sudo dpkg -i ctrl-vitals_0.2.0_amd64.deb
```
这两种方法都将 `ctrl-vitals` 安装到您的 PATH 中。MCP 服务器和 GUI 小部件是**同一个二进制文件** — 只需使用 `ctrl-vitals mcp` 作为服务器或 `ctrl-vitals` 作为 GUI。
### 从源代码
```bash
sudo apt install libgtk-4-dev # Ubuntu/Debian
# 或
sudo dnf install gtk4-devel # Fedora
cargo install --git https://github.com/YOUR_USER/ctrl-vitals
```
## 用法
```bash
ctrl-vitals # 启动 GUI 小部件
ctrl-vitals mcp # 启动 MCP 服务器(stdin/stdout)
```
### GUI 控制
- **拖拽** 窗口的任意位置以移动它
- **调整大小** 通过拖拽边缘
- **关闭** 使用终端中的 Ctrl+C
## 卸载
**如果通过 .deb 安装:**
```bash
sudo dpkg -r ctrl-vitals
```
**如果通过 `install.sh --system` 安装:**
```bash
sudo rm /usr/local/bin/ctrl-vitals /usr/local/share/applications/ctrl-vitals.desktop
```
**如果通过 `install.sh` (用户)安装:**
```bash
rm ~/.local/bin/ctrl-vitals ~/.local/share/applications/ctrl-vitals.desktop
```
**如果通过 `cargo install` 安装:**
```bash
cargo uninstall ctrl-vitals
```
## 要求
- 带有 X11 或 Wayland 的 Linux x86_64
- GTK 4.14+(预装在 Ubuntu 24.04+,Fedora 39+ 上)— 仅需用于 GUI
- 带有 `nvidia-smi` 的 NVIDIA GPU,用于 GPU 状态(可选)
## 构建依赖
| 软件包 | Ubuntu/Debian | Fedora |
|---------|---------------|--------|
| GTK4 开发 | `libgtk-4-dev` | `gtk4-devel` |
| Rust | `rustc cargo` | `rust cargo` |
## 许可证
MIT