88 lines
2 KiB
Markdown
88 lines
2 KiB
Markdown
# pyro-mcp
|
|
|
|
`pyro-mcp` is an MCP-compatible tool package for running ephemeral development environments with a VM lifecycle API.
|
|
|
|
## v0.1.0 Capabilities
|
|
|
|
- Split lifecycle tools for coding agents: `vm_list_profiles`, `vm_create`, `vm_start`, `vm_exec`, `vm_stop`, `vm_delete`, `vm_status`, `vm_reap_expired`.
|
|
- Standard environment profiles:
|
|
- `debian-base`: minimal Debian shell/core Unix tools.
|
|
- `debian-git`: Debian base with Git preinstalled.
|
|
- `debian-build`: Debian Git profile with common build tooling.
|
|
- Explicit sizing contract for agents (`vcpu_count`, `mem_mib`) with guardrails.
|
|
- Strict ephemerality for command execution (`vm_exec` auto-deletes VM on completion).
|
|
- Ollama demo that asks an LLM to run `git --version` through lifecycle tools.
|
|
|
|
## Runtime
|
|
|
|
The package includes a bundled Linux x86_64 runtime payload:
|
|
- Firecracker binary
|
|
- Jailer binary
|
|
- Profile artifacts for `debian-base`, `debian-git`, and `debian-build`
|
|
|
|
No system Firecracker installation is required for basic usage.
|
|
|
|
Host requirements still apply:
|
|
- Linux host
|
|
- `/dev/kvm` available for full virtualization mode
|
|
|
|
## Requirements
|
|
|
|
- Python 3.12+
|
|
- `uv`
|
|
- Optional for Ollama demo: local Ollama server and `llama:3.2-3b` model.
|
|
|
|
## Setup
|
|
|
|
```bash
|
|
make setup
|
|
```
|
|
|
|
## Run deterministic lifecycle demo
|
|
|
|
```bash
|
|
make demo
|
|
```
|
|
|
|
The demo creates a VM, starts it, runs `git --version`, and returns structured output.
|
|
|
|
## Runtime doctor
|
|
|
|
```bash
|
|
make doctor
|
|
```
|
|
|
|
This prints bundled runtime paths, profile availability, checksum validation status, and KVM host checks.
|
|
|
|
## Run Ollama lifecycle demo
|
|
|
|
```bash
|
|
ollama serve
|
|
ollama pull llama:3.2-3b
|
|
make ollama-demo
|
|
```
|
|
|
|
Defaults are configured in `Makefile`.
|
|
The demo streams lifecycle progress logs and ends with a short text summary.
|
|
|
|
## Run MCP server
|
|
|
|
```bash
|
|
make run-server
|
|
```
|
|
|
|
## Quality checks
|
|
|
|
```bash
|
|
make check
|
|
```
|
|
|
|
Includes `ruff`, `mypy`, and `pytest` with coverage threshold.
|
|
|
|
## Pre-commit
|
|
|
|
```bash
|
|
make install-hooks
|
|
```
|
|
|
|
Hooks execute the same lint/type/test gates.
|