English | 日本語
进程作为资源 - 将进程管理为资源
通过模型上下文协议(MCP)为Claude Code提供强大的进程管理服务器。
.vantage/processes.kdl)进行配置管理auto_start标志的进程自动启动# 从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
在你的.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服务器进程
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"])
NotStarted - 已注册但尚未启动的进程Running - 正在运行的进程,具有PIDStopped - 正常终止的进程,具有退出代码Failed - 出错的进程,具有错误信息Stdout - 仅标准输出Stderr - 仅标准错误Both - 组合的stdout和stderrstate - 按进程状态过滤(运行/停止/失败/全部)name_pattern - 按ID模式过滤(支持通配符)Vantage MCP使用KDL(Cuddly数据语言)格式进行进程持久化。配置文件会自动保存到.vantage/processes.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文件
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仪表板默认启用在12700端口)
vantagemcp
# 不自动打开浏览器
vantagemcp --no-open
Web仪表板将在http://localhost:12700(如果12700端口被占用,则为其他端口)可用。
| 端点 | 方法 | 描述 |
|---|---|---|
/api/status | GET | 服务器状态 |
/api/dashboard | GET | 仪表盘统计 |
/api/processes | GET | 列出进程 |
/api/processes | POST | 添加进程 |
/api/processes/:id | GET | 进程详情 |
/api/processes/:id | DELETE | 删除进程 |
/api/processes/:id/start | POST | 启动进程 |
/api/processes/:id/stop | POST | 停止进程 |
/api/processes/:id/logs | GET | 获取日志 |
# 调试构建
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。
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)该项目采用以下两种许可之一:
由您选择。
| 变量 | 描述 | 默认值 |
|---|---|---|
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 | 自动导出间隔(秒) | - |
对于问题、疑问或建议:
Vantage MCP - 让Claude Code的进程管理变得简单而强大