惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
博客园 - 司徒正美
宝玉的分享
宝玉的分享
阮一峰的网络日志
阮一峰的网络日志
The Cloudflare Blog
月光博客
月光博客
博客园 - 【当耐特】
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
博客园 - 聂微东
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Apple Machine Learning Research
Apple Machine Learning Research
V
V2EX
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
罗磊的独立博客
雷峰网
雷峰网
博客园 - 叶小钗
量子位
IT之家
IT之家

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
I didn't trust an AI with my Proxmox cluster — so I built...
John Broadway (Broadway) · 2026-06-20 · via DEV Community

John Broadway (Broadway)

I wanted an AI agent that could actually run my Proxmox cluster — create VMs, fix storage, tail logs inside a container — not just read it back to me. Then I pictured it deleting a storage pool and learning, at the exact second I did, which VMs just lost their boot disks. That image is why I never wired one up.

So I built the version I'd actually trust: Proximo, an open-source (Apache-2.0) Proxmox MCP + A2A server. The whole design goal is one sentence — the AI has to show me what it's about to do before it does it, and I keep the receipts.

The two things on offer, and the third I wanted

Go looking for a Proxmox MCP server today and you find two shapes: a read-mostly "safe inspector" (the most-starred one is exactly this — a handful of read tools, popular because it doesn't hold the knives), or a feature-rich mutator you trust on faith. I wanted the third thing — full management I could point at a hypervisor I care about, with trust built into the substrate instead of bolted onto the door.

Four pillars, by construction

Every tool inherits these; they aren't per-tool flags you can forget to set:

  • PLAN — every mutation is dry-run first. It returns the exact change, the guest's live state, and a computed blast radius. Delete a storage and it doesn't just warn "this is dangerous" — it reads the cluster and names the guests that lose a disk:
$ (dry-run) pve_storage_delete storage=local-zfs
PLAN — RISK_HIGH
  affected (cluster-wide):
    - vm/104  won't-boot   (boot disk scsi0 on local-zfs)
    - vm/210  won't-boot   (only copy of scsi0)
    - ct/301  degraded     (mp1 data volume on local-zfs)
  recorded to ledger: chain ok (#1438)
  -> you cannot mutate without this plan existing first

In 0.6.0 that blast-radius reasoning spans the destructive surface — storage, disk-move, firewall rules (reach + lockout), network-apply, guest-destroy, ACL changes, migrations.

  • PROVE — a hash-chained, tamper-evident audit ledger. Plans and confirmations both land in it; the trail is verifiable after the fact, and it lives on your box, not a SaaS dashboard.
  • UNDO — auto-snapshot before a risky change (fail-closed if the storage can't snapshot), one-call rollback.
  • DIAGNOSE — a read-only evidence battery where an empty findings list never reads as a false clean bill.

Safe by default, honest about the sharp edge

Proximo is API-only out of the box — the hypervisor itself is never touched; management goes over the Proxmox REST API with a scoped token. The one genuinely sharp edge is running a command inside an LXC: the REST API has no container-exec endpoint at all (it lives in lxc-attach), so most API-based servers structurally can't do it. Proximo can — over your existing ssh — but it's opt-in (PROXIMO_ENABLE_EXEC=1), gated by a fail-closed CTID allowlist, and it says plainly that it grants near-root. The token is never read or logged.

The honesty section (because the tool is about trust)

I'd rather you trust the project than the marketing:

  • It's v0.6.0, days old, zero adoption.
  • 145 tools, 2394 tests — but most of that surface still runs against mocks. Live-proven against a real PVE 9.2 API: the trust spine end-to-end, the governance/dangerous plane (roles/groups/users/ACLs, storage, SDN/network, realms), offline guest migration, HA-config — full create→read→delete with the ledger verified. Not proven: HA fencing (needs a hardware watchdog), online live-migration (needs shared storage), production scale.
  • Risk ratings are an advisory heuristic, not a sandbox. LOW means "no state change," not "safe."
  • I'm not claiming first, most tools, or "the only one with trust." proxxx (a Rust cockpit with a pre-flight risk gate, an HMAC-keyed audit chain, and Telegram human-in-the-loop) and RekklesNA's ProxmoxMCP-Plus (command policy + approval tokens) both have real trust mechanisms. Proximo's specific bet is trust by construction across the whole control plane, plus auto-UNDO and exposing the governance plane to the agent at all.

There's a tailwind that isn't just my opinion: the OWASP MCP Top 10 now lists "Lack of Audit and Telemetry," and the official MCP security guidance explicitly names "blast radius" and "irrecoverable data loss on the host." PROVE is that recognized need, built; PLAN and UNDO go a step beyond what the spec has codified — ahead of the standard, not blessed by it.

How it was built (the honest version)

The direction, the design calls, and the trust model are mine — but I didn't build it alone, and I'd rather say so than have you wonder. It's an open human+AI partnership: Claude (Anthropic's model) did much of the actual implementation, and Maude (my own Claude-helper plugin) is the gates and second-lens that watched the work. Every commit carries its co-author trailer. For a tool whose whole pitch is transparency, telling you exactly how it was made felt like part of the deal.

Try it / break it

uvx proximo-proxmox
# or: pip install proximo-proxmox
# A2A face: pip install 'proximo-proxmox[a2a]' && proximo-a2a

Wire it into your MCP client (Claude Desktop/Code, Cursor, …) as the proximo command with PROXIMO_* env vars.

It's early, and I'd genuinely rather find the holes now than after someone trusts it with a real cluster. The blast-radius logic, the trust model, whether the honesty holds up — tear it apart in the comments or in an issue.