Agoreum
Marketplace where AI agents hire and pay other agents in USDC on Base, through on-chain escrow.
作者提供的说明(英文原文)
Agent-safe fleet management for independent Solana validators and RPC nodes
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"solfleet": {
"command": "uvx",
"args": [
"solfleet",
"--from",
"solfleet",
"solfleet-mcp"
]
}
}
}在终端中运行这条命令
claude mcp add solfleet -- uvx solfleet --from solfleet solfleet-mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"solfleet": {
"command": "uvx",
"args": [
"solfleet",
"--from",
"solfleet",
"solfleet-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"solfleet": {
"type": "stdio",
"command": "uvx",
"args": [
"solfleet",
"--from",
"solfleet",
"solfleet-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月9日
注册名称已通过 GitHub 账户 sanjeevkkansal 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.1.1)于4个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv)。
同一分类中有:Agoreum, Web3 Systemic Agent, Highwire
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Marketplace where AI agents hire and pay other agents in USDC on Base, through on-chain escrow.
Web3 security, DEX honeypot detector, and DAO governance auditor for Base & EVM chains.
Trade, launch and research higher.fun coins on Solana, from any AI agent. Unsigned or policy-signed.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
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.
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.
flowchart TB
claude["Claude / any MCP client"]
subgraph operator["operator machine"] mcp["solfleet-mcp (stdio)"] cli["solfleet CLI"] core["core: probe · safety gate · executor · dns"] audit[("audit log (SQLite)")] claude -->|MCP| mcp mcp --> core cli --> core core --> audit end
builder["build host (agave + geyser from source)"] ref["cluster reference RPC"] dns["DNS provider (Cloudflare / Route53)"]
subgraph fleet["fleet: devnet / testnet / mainnet"] rpc["RPC nodes"] val["voting validators"] end
core -->|JSON-RPC :8899| rpc core -->|JSON-RPC :8899| val core -->|SSH / scp| rpc core -->|SSH / scp| val core -->|SSH build, fetch artifacts| builder builder -. "artifact set + sha256" .-> core core -->|slot lag / delinquency| ref core -->|eject / restore A records| dns
sequenceDiagram
actor Op as Claude / operator participant SF as solfleet participant B as build host participant N as node participant R as reference RPC Op->>SF: upgrade node to version (confirm) SF->>SF: gate, policy + preflight (else stop) SF->>B: build agave + geyser (or reuse cache) B-->>SF: artifact set + sha256 SF->>N: scp artifacts as dest.solfleet-new SF->>N: sha256 on node matches builder (else abort) alt RPC node SF->>N: systemctl stop SF->>N: atomic swap (binary + geyser + marker) SF->>N: systemctl start else voting validator SF->>N: atomic swap (binary + geyser + marker) SF->>N: agave-validator exit (leader-aware), systemd relaunches end loop until healthy and caught up SF->>R: getSlot SF->>N: getHealth / getSlot end SF->>SF: verify reported version, write audit entry
sequenceDiagram
participant SF as solfleet watch participant N as pool members participant R as reference RPC participant D as DNS provider loop every interval SF->>N: getHealth / getSlot SF->>R: getSlot (cluster head) SF->>SF: per member: unhealthy, lag over limit, or delinquent alt every member failing SF->>SF: keep current records (never empty the pool) else at least one healthy SF->>D: ensure TXT ownership marker SF->>D: remove A record of each failing member SF->>D: add A record of each recovered member SF->>SF: write audit entry end end
.so), caches it, and distributes the artifact set to the fleet.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:
status, validate, vote-status, inspectrestart (RPC via systemctl; validator via leader-aware safe-exit)upgrade end 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 nodesbootstrap-builder (toolchain + deps on a bare builder)provision a voting validator from bare disks (format NVMe, install, render the voting unit, start, catch up, vote)dns status / eject / restore and last-member protection, against a live Cloudflare zoneUnit-tested but not yet run live:
watch loop (probe -> decide -> act); its decision logic is unit-tested and it reuses the now-proven Cloudflare driverNot built yet: HTTP transport (MCP is stdio-only today). See PLAN.md (M6).
pipx install solfleet # not yet published; for now:
pipx install git+https://github.com/sanjeevkkansal/solfleet pipx install 'solfleet[route53]' # if you use Route53 for DNS
cp fleet.example.yaml fleet.yaml # edit with your nodes
cp policy.example.yaml policy.yaml # optional; sane defaults if absent solfleet status # probe the fleet solfleet status --watch # refreshing live table solfleet validate # structural + live readiness check solfleet vote-status mn-val-1 # voting health: credits, balance, delinquency, leader solfleet inspect mn-val-1 # read-only SSH detail for one node solfleet bootstrap-builder b1 # install build toolchain on a builder; --confirm solfleet provision rpc-1 4.1.0 # dry-run bring-up plan; --confirm to run solfleet plan-upgrade mn-val-1 4.1.0 # dry-run upgrade plan solfleet upgrade mn-val-1 4.1.0 # dry-run; add --confirm to execute solfleet watch --dry-run # DNS failover loop, decide-only
MCP (Claude Code):
claude mcp add solfleet -- solfleet-mcp
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:
$ solfleet status
CLUSTER NODE ROLE HEALTH VERSION SLOT LAG VOTE devnet rpc-1 rpc ok 4.1.0-rc.1 0 - devnet rpc-2 rpc ok 4.1.0-rc.1 0 -
An upgrade is dry-run by default. It returns the ordered plan and the gate decision and changes nothing until you pass --confirm:
$ solfleet plan-upgrade rpc-1 4.1.0
{ "decision": { "operation": "upgrade", "cluster": "devnet", "node": "rpc-1", "mode": "dry-run", "allowed": true, "plan": [ "on builder 'build-1': build agave 4.1.0 from source", "distribute artifact set to rpc-1; checksum-verify each (abort on mismatch)", "stop solana-validator, swap, start", "swap /usr/local/bin/agave-validator + geyser .so + version marker atomically", "wait until healthy + caught up to https://api.devnet.solana.com", "verify reported version == 4.1.0; record before/after" ], "reasons": [ "dry-run: preflight checks pass; pass confirm=true to execute" ] }, "target_version": "4.1.0" }
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.
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.
confirm=true.policy.yaml: allowed version globs, disk floor, and require_leader_window_minutes for validators.uv venv && uv pip install -e '.[dev]'
uv run pytest
Published to the MCP Registry.
mcp-name: io.github.sanjeevkkansal/solfleet