Highwire
Trade, launch and research higher.fun coins on Solana, from any AI agent. Unsigned or policy-signed.
제작자가 쓴 설명(영어 원문)
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는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 8일 점검
레지스트리 이름이 GitHub 계정 sanjeevkkansal 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.1.1)은 4개월 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Python (uv)도 있어야 해요.
같은 카테고리에는: Highwire, DeFi Quant Yield & Risk Engine, gasrescue
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Trade, launch and research higher.fun coins on Solana, from any AI agent. Unsigned or policy-signed.
Quantitative DeFi carry ROE, borrow kink slippage & risk simulation across 6 protocols.
Rescue USDC, USDT and USDG from wallets with no gas: send or swap them on EVM, Solana and Tron.
제작자의 저장소에서 쓰인 그대로 가져왔어요. 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