返回市场
一滴蜜服务器

一滴蜜服务器

作者:chronista-club2 星标更新:2025-11-02

项目介绍

Vantage MCP

English | 日本語

进程作为资源 - 将进程管理为资源

通过模型上下文协议(MCP)为Claude Code提供强大的进程管理服务器。

版本 许可证 MCP兼容

✨ 特性

核心特性

  • 🚀 进程管理:通过MCP工具控制进程的启动、停止和监控
  • 📊 实时日志:捕获并流式传输stdout/stderr输出
  • 🔍 状态监控:跟踪进程状态和指标
  • 🎯 灵活过滤:按状态或模式搜索进程
  • 💾 持久化:以KDL格式(.vantage/processes.kdl)进行配置管理
  • 🔄 自动启动:带有auto_start标志的进程自动启动

Web仪表板

  • 🌐 现代UI:基于Vue 3 + TypeScript + Tabler的复杂SPA
  • 📈 实时更新:自动刷新监控进程状态
  • 🔍 搜索功能:进程搜索和过滤
  • 🌙 暗模式:浅色/深色主题切换
  • 📱 响应式设计:支持从移动设备到桌面
  • 🎯 类型安全:完全使用TypeScript进行类型定义
  • 📦 组件导向:Vue 3 SFC(单文件组件)架构

MCP集成

  • 🔌 符合MCP规范的服务器:完全符合Model Context Protocol
  • 🤖 与Claude Code直接集成:直接集成到Claude Code
  • 🛠️ 丰富的工具:提供12种以上的MCP工具
  • 📡 Web API:用于外部集成的RESTful API

🚀 安装

使用Cargo(推荐)

# 从GitHub仓库安装
cargo install --git https://github.com/chronista-club/vantage-mcp --tag v0.2.0

# 或者从主分支安装最新版本
cargo install --git https://github.com/chronista-club/vantage-mcp

从源码安装

# 克隆仓库
git clone https://github.com/chronista-club/vantage-mcp
cd vantage-mcp

# 发布构建
cargo build --release

# 构建后的二进制文件位于:
# target/release/vantage

配置

Claude Code配置

在你的.mcp.json或Claude Code设置中添加服务器:

{
    "mcpServers": {
        "vantage": {
            "type": "stdio",
            "command": "vantage",
            "env": {
                "RUST_LOG": "info",
                "VANTAGE_AUTO_EXPORT_INTERVAL": "300"
            }
        }
    }
}

验证连接

在Claude Code中运行:

/mcp

你应该能看到“vantage”服务器已连接。

使用

可用工具

基本工具

  • echo - 测试消息回显
  • ping - 简单健康检查
  • get_status - 获取服务器状态和运行时间

进程管理

  • create_process - 注册新的进程配置
  • start_process - 启动已注册的进程
  • stop_process - 平稳地停止正在运行的进程
  • get_process_status - 获取详细的进程状态
  • get_process_output - 获取进程的stdout/stderr日志
  • list_processes - 列出所有管理的进程,并可进行过滤
  • remove_process - 从管理中移除进程
  • export_processes - 导出所有进程到YAML文件
  • import_processes - 从YAML文件导入进程

示例

管理一个Web服务器

# 注册一个Web服务器进程
create_process(
    id="webserver",
    command="python",
    args=["-m", "http.server", "8000"],
    env={"PYTHONUNBUFFERED": "1"},
    cwd="./public"
)

# 启动服务器
start_process(id="webserver")

# 检查日志
get_process_output(id="webserver", stream="Both", lines=50)

# 平稳地停止
stop_process(id="webserver", grace_period_ms=5000)

运行数据库

# 启动PostgreSQL
create_process(
    id="postgres",
    command="postgres",
    args=["-D", "/usr/local/var/postgres"],
    env={"PGDATA": "/usr/local/var/postgres"}
)

start_process(id="postgres")

# 监控状态
get_process_status(id="postgres")

批量进程管理

# 列出所有正在运行的进程
list_processes(filter={"state": "Running"})

# 按模式查找特定进程
list_processes(filter={"name_pattern": "worker"})

# 停止所有worker
for process in list_processes(filter={"name_pattern": "worker"}):
    stop_process(id=process["id"])

API参考

进程状态

  • NotStarted - 已注册但尚未启动的进程
  • Running - 正在运行的进程,具有PID
  • Stopped - 正常终止的进程,具有退出代码
  • Failed - 出错的进程,具有错误信息

输出流

  • Stdout - 仅标准输出
  • Stderr - 仅标准错误
  • Both - 组合的stdout和stderr

进程过滤器

  • state - 按进程状态过滤(运行/停止/失败/全部)
  • name_pattern - 按ID模式过滤(支持通配符)

📝 持久化

KDL配置文件

Vantage MCP使用KDL(Cuddly数据语言)格式进行进程持久化。配置文件会自动保存到.vantage/processes.kdl

示例KDL配置

// Vantage MCP进程配置
meta {
    version "1.0.0"
}

// Web服务器进程
process "webserver" {
    command "python"
    args "-m" "http.server" "8000"
    cwd "/path/to/public"
    auto_start #false
}

// 后台worker
process "worker" {
    command "/usr/local/bin/worker"
    args "--config" "worker.conf"
    cwd "/app"
    auto_start #true  // 服务器启动时自动启动
}

配置字段

字段描述必填
command可执行文件路径
args命令行参数(允许多个)
cwd工作目录
auto_start服务器启动时自动启动

YAML导出/导入

进程配置可以导出/导入为YAML格式,用于备份和迁移:

# 导出进程到YAML文件
curl http://127.0.0.1:12700/api/export > vantage_export.yaml

# 从YAML文件导入进程
curl -X POST http://127.0.0.1:12700/api/import \
  -H "Content-Type: application/yaml" \
  -d @vantage_export.yaml

🌐 Web仪表板

启动仪表板

# 启动服务器(Web仪表板默认启用在12700端口)
vantagemcp

# 不自动打开浏览器
vantagemcp --no-open

Web仪表板将在http://localhost:12700(如果12700端口被占用,则为其他端口)可用。

仪表板功能

主屏幕

  • 统计卡片:显示总进程数、运行中的、已停止的和错误状态
  • 进程列表:所有进程的表格视图
  • 实时更新:每5秒自动刷新
  • 搜索:按进程ID或命令搜索

进程操作

  • 启动/停止:一键进程控制
  • 日志查看:显示最新的stdout/stderr日志
  • 删除:移除不需要的进程
  • 新增:创建新进程的模态对话框

UI/UX

  • 响应式设计:移动友好
  • 暗模式:浅色/深色主题切换
  • 现代设计:Tabler UI框架

REST API

端点方法描述
/api/statusGET服务器状态
/api/dashboardGET仪表盘统计
/api/processesGET列出进程
/api/processesPOST添加进程
/api/processes/:idGET进程详情
/api/processes/:idDELETE删除进程
/api/processes/:id/startPOST启动进程
/api/processes/:id/stopPOST停止进程
/api/processes/:id/logsGET获取日志

开发

从源码构建

# 调试构建
cargo build

# 发布构建
cargo build --release

# 运行测试
cargo test

# 使用调试日志运行
RUST_LOG=debug cargo run

项目结构

vantage-mcp/
├── crates/
│   ├── vantage/                 # 主服务器crate
│   │   ├── src/
│   │   │   ├── lib.rs          # 核心服务器实现
│   │   │   ├── bin/
│   │   │   │   └── vantage_server.rs  # 二进制入口点
│   │   │   ├── process/        # 进程管理
│   │   │   │   ├── mod.rs
│   │   │   │   ├── manager.rs
│   │   │   │   ├── buffer.rs
│   │   │   │   └── protocol.rs
│   │   │   ├── web/            # Web服务器
│   │   │   │   ├── server.rs
│   │   │   │   ├── handlers.rs
│   │   │   │   └── api.rs
│   │   │   ├── messages/       # MCP消息类型
│   │   │   ├── ci/             # CI/CD监控
│   │   │   └── events/         # 事件系统
│   │   └── tests/
│   └── vantage-persistence/     # 持久层
│       ├── src/
│       │   ├── lib.rs          # 持久接口
│       │   ├── kdl/            # KDL格式持久化
│       │   ├── persistence/    # 内存存储实现
│       │   └── yaml/           # YAML快照导出/导入
│       └── tests/
├── ui/
│   └── web/                    # Vue 3 SPA
│       ├── src/
│       │   ├── App.vue         # 根组件
│       │   ├── main.ts         # 入口点
│       │   ├── router/         # Vue Router配置
│       │   ├── stores/         # Pinia商店
│       │   ├── components/     # Vue组件
│       │   ├── views/          # 页面组件
│       │   ├── api/            # API客户端
│       │   ├── types/          # TypeScript类型
│       │   └── themes.ts       # 主题配置
│       ├── package.json
│       ├── tsconfig.json
│       └── vite.config.ts
│       ├── dist/               # 生产构建
├── .vantage/                    # 数据目录
│   └── processes.kdl           # 进程配置文件
└── examples/                   # 使用示例

贡献

欢迎贡献!请随意提交Pull Request。

  1. 分叉仓库
  2. 创建功能分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add some amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开Pull Request

许可证

该项目采用以下两种许可之一:

由您选择。

🔑 环境变量

变量描述默认值
RUST_LOG日志级别(error, warn, info, debug, trace)info
VANTAGE_DATA_DIR数据文件目录~/.vantage/data
VANTAGE_IMPORT_FILE启动时要导入的文件~/.vantage/data/processes.yaml
VANTAGE_EXPORT_FILE关闭时的导出目标~/.vantage/data/processes.yaml
VANTAGE_STOP_ON_SHUTDOWN在vantage退出时停止进程(true/false)false(继续)
VANTAGE_AUTO_EXPORT_INTERVAL自动导出间隔(秒)-

🙏 致谢

  • rmcp - Rust MCP SDK
  • Tera - 模板引擎
  • UI框架:Vue 3 + TypeScript + Vite + Tabler
  • KDL - 配置格式
  • 受Model Context Protocol规范启发
  • 属于Chronista Club生态系统的一部分

支持

对于问题、疑问或建议:


Vantage MCP - 让Claude Code的进程管理变得简单而强大