Vantage MCP
A powerful process management server for Claude Code via Model Context Protocol (MCP)
Ask AI about Vantage MCP
Powered by Claude Β· Grounded in docs
I know everything about Vantage MCP. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Vantage MCP
English | ζ₯ζ¬θͺ
Process as a Resource - Manage processes as resources
A powerful process management server for Claude Code via the Model Context Protocol (MCP).
β¨ Features
Core Features
- π Process Management: Control start, stop, and monitoring of any process via MCP tools
- π Real-time Logging: Capture and stream stdout/stderr outputs
- π Status Monitoring: Track process states and metrics
- π― Flexible Filtering: Search processes by state or pattern
- πΎ Persistence: Configuration management in KDL format (
.vantage/processes.kdl) - π Auto-start: Automatic process startup with
auto_startflag
Web Dashboard
- π Modern UI: Sophisticated SPA with Vue 3 + TypeScript + Tabler
- π Real-time Updates: Monitor process states with auto-refresh
- π Search Features: Process search and filtering
- π Dark Mode: Light/dark theme switching
- π± Responsive: Mobile to desktop support
- π― Type Safety: Complete typing with TypeScript
- π¦ Component-Oriented: Vue 3 SFC (Single File Component) architecture
MCP Integration
- π MCP Compliant Server: Fully compliant with Model Context Protocol
- π€ Claude Code Ready: Direct integration with Claude Code
- π οΈ Rich Tools: 12+ MCP tools provided
- π‘ Web API: RESTful API for external integration
π Installation
Using Cargo (Recommended)
# Install from GitHub repository
cargo install --git https://github.com/chronista-club/vantage-mcp --tag v0.2.0
# Or install latest from main branch
cargo install --git https://github.com/chronista-club/vantage-mcp
From Source
# Clone the repository
git clone https://github.com/chronista-club/vantage-mcp
cd vantage-mcp
# Release build
cargo build --release
# Binary will be at:
# target/release/vantage
Configuration
Claude Code Configuration
Add the server to your .mcp.json or Claude Code settings:
{
"mcpServers": {
"vantage": {
"type": "stdio",
"command": "vantage",
"env": {
"RUST_LOG": "info",
"VANTAGE_AUTO_EXPORT_INTERVAL": "300"
}
}
}
}
Verify Connection
In Claude Code, run:
/mcp
You should see "vantage" server as "connected".
Usage
Available Tools
Basic Tools
echo- Echo back messages for testingping- Simple health checkget_status- Get server status and uptime
Process Management
create_process- Register a new process configurationstart_process- Start a registered processstop_process- Stop a running process gracefullyget_process_status- Get detailed process statusget_process_output- Retrieve process stdout/stderr logslist_processes- List all managed processes with filtersremove_process- Remove a process from managementexport_processes- Export all processes to a YAML fileimport_processes- Import processes from a YAML file
Examples
Managing a Web Server
# Register a web server process
create_process(
id="webserver",
command="python",
args=["-m", "http.server", "8000"],
env={"PYTHONUNBUFFERED": "1"},
cwd="./public"
)
# Start the server
start_process(id="webserver")
# Check the logs
get_process_output(id="webserver", stream="Both", lines=50)
# Stop gracefully
stop_process(id="webserver", grace_period_ms=5000)
Running a Database
# Start PostgreSQL
create_process(
id="postgres",
command="postgres",
args=["-D", "/usr/local/var/postgres"],
env={"PGDATA": "/usr/local/var/postgres"}
)
start_process(id="postgres")
# Monitor status
get_process_status(id="postgres")
Batch Process Management
# List all running processes
list_processes(filter={"state": "Running"})
# Find specific processes by pattern
list_processes(filter={"name_pattern": "worker"})
# Stop all workers
for process in list_processes(filter={"name_pattern": "worker"}):
stop_process(id=process["id"])
API Reference
Process States
NotStarted- Process registered but not yet startedRunning- Process is currently running with PIDStopped- Process terminated normally with exit codeFailed- Process failed with error message
Output Streams
Stdout- Standard output onlyStderr- Standard error onlyBoth- Combined stdout and stderr
Process Filters
state- Filter by process state (Running/Stopped/Failed/All)name_pattern- Filter by ID pattern (supports wildcards)
π Persistence
KDL Configuration Files
Vantage MCP uses KDL (Cuddly Data Language) format for process persistence. Configuration files are automatically saved to .vantage/processes.kdl.
Example KDL Configuration
// Vantage MCP Process Configuration
meta {
version "1.0.0"
}
// Web server process
process "webserver" {
command "python"
args "-m" "http.server" "8000"
cwd "/path/to/public"
auto_start #false
}
// Background worker
process "worker" {
command "/usr/local/bin/worker"
args "--config" "worker.conf"
cwd "/app"
auto_start #true // Auto-start on server launch
}
Configuration Fields
| Field | Description | Required |
|---|---|---|
command | Path to executable | β |
args | Command line arguments (multiple allowed) | β |
cwd | Working directory | β |
auto_start | Auto-start on server launch | β |
YAML Export/Import
Process configurations can be exported/imported in YAML format for backup and migration:
# Export processes to YAML file
curl http://127.0.0.1:12700/api/export > vantage_export.yaml
# Import processes from YAML file
curl -X POST http://127.0.0.1:12700/api/import \
-H "Content-Type: application/yaml" \
-d @vantage_export.yaml
π Web Dashboard
Starting the Dashboard
# Start server (Web dashboard automatically enabled on port 12700)
vantagemcp
# Don't open browser automatically
vantagemcp --no-open
The web dashboard will be available at http://localhost:12700 (or another port if 12700 is in use)
Dashboard Features
Main Screen
- Stats Cards: Display total processes, running, stopped, and error states
- Process List: Table view of all processes
- Real-time Updates: Auto-refresh every 5 seconds
- Search: Search by process ID or command
Process Operations
- Start/Stop: One-click process control
- Log Viewing: Display latest stdout/stderr logs
- Delete: Remove unwanted processes
- Add New: Modal dialog for process creation
UI/UX
- Responsive Design: Mobile-friendly
- Dark Mode: Light/dark theme switching
- Modern Design: Tabler UI framework
REST API
| Endpoint | Method | Description |
|---|---|---|
/api/status | GET | Server status |
/api/dashboard | GET | Dashboard stats |
/api/processes | GET | List processes |
/api/processes | POST | Add process |
/api/processes/:id | GET | Process details |
/api/processes/:id | DELETE | Delete process |
/api/processes/:id/start | POST | Start process |
/api/processes/:id/stop | POST | Stop process |
/api/processes/:id/logs | GET | Get logs |
Development
Building from Source
# Debug build
cargo build
# Release build
cargo build --release
# Run tests
cargo test
# Run with debug logging
RUST_LOG=debug cargo run
Project Structure
vantage-mcp/
βββ crates/
β βββ vantage/ # Main server crate
β β βββ src/
β β β βββ lib.rs # Core server implementation
β β β βββ bin/
β β β β βββ vantage_server.rs # Binary entry point
β β β βββ process/ # Process management
β β β β βββ mod.rs
β β β β βββ manager.rs
β β β β βββ buffer.rs
β β β β βββ protocol.rs
β β β βββ web/ # Web server
β β β β βββ server.rs
β β β β βββ handlers.rs
β β β β βββ api.rs
β β β βββ messages/ # MCP message types
β β β βββ ci/ # CI/CD monitoring
β β β βββ events/ # Event system
β β βββ tests/
β βββ vantage-persistence/ # Persistence layer
β βββ src/
β β βββ lib.rs # Persistence interface
β β βββ kdl/ # KDL format persistence
β β βββ persistence/ # In-memory storage implementation
β β βββ yaml/ # YAML snapshot export/import
β βββ tests/
βββ ui/
β βββ web/ # Vue 3 SPA
β βββ src/
β β βββ App.vue # Root component
β β βββ main.ts # Entry point
β β βββ router/ # Vue Router config
β β βββ stores/ # Pinia stores
β β βββ components/ # Vue components
β β βββ views/ # Page components
β β βββ api/ # API client
β β βββ types/ # TypeScript types
β β βββ themes.ts # Theme configuration
β βββ package.json
β βββ tsconfig.json
β βββ vite.config.ts
β βββ dist/ # Production build
βββ .vantage/ # Data directory
β βββ processes.kdl # Process config file
βββ examples/ # Usage examples
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is dual-licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
π Environment Variables
| Variable | Description | Default |
|---|---|---|
RUST_LOG | Log level (error, warn, info, debug, trace) | info |
VANTAGE_DATA_DIR | Directory for data files | ~/.vantage/data |
VANTAGE_IMPORT_FILE | File to import on startup | ~/.vantage/data/processes.yaml |
VANTAGE_EXPORT_FILE | Export destination on shutdown | ~/.vantage/data/processes.yaml |
VANTAGE_STOP_ON_SHUTDOWN | Stop processes on vantage exit (true/false) | false (continue) |
VANTAGE_AUTO_EXPORT_INTERVAL | Auto-export interval in seconds | - |
π Acknowledgments
- rmcp - Rust MCP SDK
- Tera - Template engine
- UI framework: Vue 3 + TypeScript + Vite + Tabler
- KDL - Configuration format
- Inspired by the Model Context Protocol specification
- Part of the Chronista Club ecosystem
Support
For issues, questions, or suggestions:
- Open an issue on GitHub
- Check the documentation
Vantage MCP - Making process management simple and powerful for Claude Code
