
Solfleet
io.github.sanjeevkkansal由 GitHub 帳號 sanjeevkkansal 發布v0.1.1更新於 Oct 24, 2026
Agent-safe fleet management for independent Solana validators and RPC nodes
概覽
Solfleet 是本地 MCP 伺服器,用於管理 Solana 驗證節點與 RPC 節點機群:Solana 感知的健康狀態、受控原地升級、重啟和 DNS 容錯移轉
- 可以做什麼
- 讀取機群健康:狀態、節點詳情、版本漂移、投票狀態、出塊者排程、驗證與稽核日誌,依 slot 落後和失職判斷而非只看 HTTP 健康。規劃並執行節點變更:初始化建置主機、開通節點、重啟與原地升級,預設演練,僅在 confirm=true 時執行。管理 DNS 容錯移轉池:查看池狀態、剔除故障成員、恢復已復原成員,且不會清空整個池。查看記錄每次演練與執行操作的 SQLite 稽核日誌。
- 適用情境
- 適合在 devnet、testnet 和 mainnet 上運行獨立 Solana 驗證節點或 RPC 節點的維運人員,希望由助理檢查機群健康、規劃升級與重啟,並在策略閘控下執行 DNS 容錯移轉。
- 執行需求
- 以 Python 套件形式透過 stdio 在本機執行(用 pipx 或 uvx 安裝)。需要描述節點的機群設定檔、可選的策略檔、對節點和建置主機的 SSH/scp 存取、節點與參考 RPC 的 JSON-RPC 連通性,以及 Cloudflare 或 Route53 容錯移轉所需的 DNS 供應商憑證。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Solfleet,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
solfleet
Agent-safe fleet management for independent Solana validators and RPC nodes. One config file describes your fleet across devnet, testnet, and mainnet. An MCP server (and a CLI) exposes Solana-aware status, safe in-place upgrades, and health-driven DNS failover to Claude or any MCP client. Every operation that changes a node is dry-run by default, policy-gated, and audited. solfleet never reads or moves your keypairs.
See PLAN.md for the roadmap and design notes.
Architecture
solfleet runs on the operator's machine (or a small VM). It talks to the fleet over JSON-RPC (read) and SSH/scp (act), builds artifacts on a separate build host, computes slot lag against each cluster's reference RPC, and manages failover records at the DNS provider. Every mutation flows through one gate and is written to a SQLite audit log.
How an in-place upgrade runs
How failover runs
Why
- Solana-aware health. A generic health check sees HTTP 200; a Solana node can be 500 slots behind and still return 200. solfleet checks slot lag against the cluster, delinquency, and version drift.
- Build-and-distribute. Agave v3.0 dropped prebuilt validator
binaries, so every operator now has to build from source. solfleet
builds once on a dedicated builder node (with the ABI-matched
Yellowstone geyser
.so), caches it, and distributes the artifact set to the fleet. - Leader-aware restarts. Restarting a voting validator during its own leader slots skips blocks. solfleet restarts validators via a leader-aware safe-exit; RPC nodes cycle via systemctl.
- Safe failover. The watch loop pulls lagging/unhealthy nodes out of DNS and restores them on recovery, and refuses to ever empty a pool.
Status
v1. Built and unit-tested (91 tests, CI on Python 3.11-3.13). Most paths are also proven live against a disposable devnet node and a real Cloudflare zone.
Proven live:
- read path:
status,validate,vote-status,inspect restart(RPC via systemctl; validator via leader-aware safe-exit)- in-place
upgradeend to end (build agave from source on a builder, distribute, sha256-verify on the target, atomic swap, catch-up) for both RPC and voting-validator nodes bootstrap-builder(toolchain + deps on a bare builder)provisiona voting validator from bare disks (format NVMe, install, render the voting unit, start, catch up, vote)- DNS driver plus
dns status/eject/restoreand last-member protection, against a live Cloudflare zone
Unit-tested but not yet run live:
- the autonomous
watchloop (probe -> decide -> act); its decision logic is unit-tested and it reuses the now-proven Cloudflare driver - the Route53 driver (no AWS zone to point at yet)
Not built yet: HTTP transport (MCP is stdio-only today). See PLAN.md (M6).
Install
Quick start
MCP (Claude Code):
Example session
Pointed at a small devnet fleet. With no flags, commands are read-only or dry-run.
Fleet health is Solana-aware, not just an HTTP 200:
An upgrade is dry-run by default. It returns the ordered plan and the gate
decision and changes nothing until you pass --confirm:
Over MCP, the same operations are tools (fleet_status, plan_node_upgrade,
upgrade, ...). Claude gets that same plan back and has to pass confirm=true
to execute, so an agent cannot mutate a node by accident.
Tools
Read-only: fleet_status, node_detail, version_drift, vote_status,
leader_schedule, validate, plan_node_upgrade, dns_pool_status,
audit_log.
Gated (dry-run by default; confirm=true to execute):
bootstrap_builder_host, provision, restart, upgrade,
dns_pool_eject, dns_pool_restore.
Every mutation is dry-run by default, checked against policy.yaml
(allowed versions, disk floor, leader-window minimum), and written to a
SQLite audit log. The watch loop is the one autonomous mutator; it is
bounded by the same audit log and the never-empty-a-pool rule.
Safety model
- Dry-run by default. Mutations return their ordered plan and
preflight unless called with
confirm=true. - Policy gate. Per-cluster
policy.yaml: allowed version globs, disk floor, andrequire_leader_window_minutesfor validators. - Checksum-verified distribution. Upgrade artifacts are sha256-checked on the target against the builder before any swap.
- No keys, ever. solfleet does not read, move, or generate identity/vote keypairs. Voting-validator identity failover is out of scope by design (double-signing risk).
- Audit log. Every dry-run and execute is recorded in SQLite.
Development
MCP registry
Published to the MCP Registry.
mcp-name: io.github.sanjeevkkansal/solfleet
來源:README.md,提交 4fb5c9e
工具
0版本歷史
1- v0.1.1最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分