Flux Cloud

io.github.RunOnFlux由 GitHub 帳號 RunOnFlux 發布v0.2.8更新於 Oct 24, 2026

Deploy, pay for and manage apps on Flux Cloud, the decentralized cloud. Prices in USD.

已驗證Streamable HTTP可網頁執行雲端與基礎設施金融

概覽

AI 產生的概覽

在去中心化雲端 Flux Cloud 上部署、付費與管理應用程式,讓助理完成報價、上線、監控、更新與取消。

可以做什麼
  • 查詢身分、餘額與網路價格,並產生新的金鑰對
  • 建立並驗證應用程式規格,取得美元與 FLUX 報價
  • 帶確認參數部署應用程式,或僅預覽方案與費用而不花錢
  • 輪詢部署狀態,查詢任一應用程式的規格、執行個體與網址
  • 列出自己擁有的應用程式,讀取容器日誌及 CPU、記憶體、網路統計
  • 重新啟動、重新部署、移除或取消應用程式,可依單一節點或全網執行
適用情境
適合讓助理完整管理 Flux Cloud 上應用程式的生命週期:以美元報價、用 FLUX 部署付費、觀察啟動、查看日誌與統計並最終關停。唯讀的報價、規格建立與應用程式查詢不需任何金鑰即可使用。
執行需求
可作為 npm 套件透過 npx 在本機執行(需 Node.js),也可連線託管的遠端端點(Streamable HTTP)。簽章與付費工具需要 FLUX_ID_PRIVATE_KEY 與 FLUX_PAYMENT_PRIVATE_KEY,託管服務上也可作為呼叫參數傳入;flux_generate_keys 可產生金鑰對。付款位址需持有 FLUX,並需連線 FluxOS API 與區塊瀏覽器。
安裝前請注意
部署與取消會實際花費付款位址中的 FLUX,僅在 confirm=true 時執行;付款不足的訊息會被默默丟棄且不退還。私鑰屬敏感資訊:託管服務上須作為呼叫參數傳入,會經過 AI 供應商與聊天紀錄,應使用餘額很少的一次性金鑰對,預算較大時改用本機服務。hard=true 的重新部署會清空資料,remove 並不會停止計費。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Flux Cloud,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.RunOnFlux%2Fflux-cloud-mcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "flux-cloud": {
      "type": "http",
      "url": "https://mcp.runonflux.com/mcp"
    }
  }
}

README

Flux Cloud MCP server

An MCP server that lets any AI agent use Flux Cloud, the decentralized cloud: quote an app in US dollars, deploy it, pay for it, watch it come up, read its logs, update it, and cancel it. Works with Claude Code, Claude Desktop, Cursor, Windsurf, OpenCode and every other MCP host.

There is no account. Two keys are the whole identity:

KeyAddressRole
FLUX_ID_PRIVATE_KEYFlux ID, 1...Owns apps. Signs specifications and API sessions. Never holds funds.
FLUX_PAYMENT_PRIVATE_KEYFlux address, t1...Holds FLUX and pays deployment fees on-chain.

The server generates a pair for you (flux_generate_keys); fund the payment address with FLUX and deploy.

Pricing policy

Every price this server shows is the Flux Cloud USD price, the same one home.runonflux.io charges, converted to FLUX at the live market rate with the 5 percent pay-in-FLUX discount. Quotes come from the network itself (/apps/calculatefiatandfluxprice), so they include the $0.99 minimum, hardware and term discounts, and update credits.

The blockchain's own acceptance threshold is several times lower. It is never shown as a price; it is only checked as a guard before a payment is broadcast.

Install

bash
npm install -g @runonflux/flux-cloud-mcp     # or: yarn global add @runonflux/flux-cloud-mcp

Or run it without installing: npx @runonflux/flux-cloud-mcp.

Claude Code

bash
claude mcp add flux-cloud -s user \  -e FLUX_ID_PRIVATE_KEY=<wif> -e FLUX_PAYMENT_PRIVATE_KEY=<wif> \  -- npx -y @runonflux/flux-cloud-mcp

Claude Desktop, Cursor, Windsurf (JSON config)

json
{  "mcpServers": {    "flux-cloud": {      "command": "npx",      "args": ["-y", "@runonflux/flux-cloud-mcp"],      "env": {        "FLUX_ID_PRIVATE_KEY": "<wif of the Flux ID>",        "FLUX_PAYMENT_PRIVATE_KEY": "<wif of the payment address>"      }    }  }}

Keys are optional. Without them every read-only tool works, and flux_generate_keys will create a pair to put into the config.

OpenCode

json
{  "mcp": {    "flux-cloud": {      "type": "local",      "command": ["npx", "-y", "@runonflux/flux-cloud-mcp"],      "environment": {        "FLUX_ID_PRIVATE_KEY": "<wif>",        "FLUX_PAYMENT_PRIVATE_KEY": "<wif>"      }    }  }}

Tools

ToolWhat it doesSpends FLUX
flux_get_identityFlux ID, payment address, balance in FLUX and USDno
flux_generate_keysNew Flux ID + payment key pair with setup instructionsno
flux_get_pricingUSD rate card, FLUX/USD rate, discounts, reference sizesno
flux_build_specSimple description (image, ports, cpu/ram/hdd, months) to a full v8 specno
flux_validate_specLocal rules plus verification on a FluxOS nodeno
flux_quote_appUSD price and FLUX to pay, for a registration or an updateno
flux_deploy_appPlan (default) or, with confirm=true, sign, broadcast and paywith confirm
flux_wait_for_appPoll until accepted and instances run; returns URLsno
flux_get_appAny app's spec, expiry, instances, URLsno
flux_list_my_appsApps owned by the Flux ID, with instance counts and days leftno
flux_get_app_logsContainer logs from a running instance (owner only); component auto-selected, private apps decrypted with the owner keyno
flux_get_app_statsLive CPU/memory/network of an instance (owner only)no
flux_control_appRestart, redeploy or remove instances, per node or globallyno
flux_cancel_appEnd an app early by shortening its termwith confirm
flux_get_network_infoNode counts, height, FLUX/USD, deployment addressno

Resources flux://guide/overview, flux://guide/spec-format, flux://guide/pricing and flux://guide/gotchas give the agent the domain knowledge; the deploy_on_flux prompt walks it through a deployment.

A typical session

> deploy nginx on flux, 3 instances, one month
flux_get_identity      -> Flux ID 1Ab..., payer t1Cd..., 996.98 FLUX ($48.74)flux_build_spec        -> v8 spec, port 39978 -> 80, r:/data, validflux_quote_app         -> $0.99 for 1 month, pay 19.24 FLUX (5% FLUX discount)   user agreesflux_deploy_app confirm=true                       -> message hash 8d2f..., paid 19.24 FLUX, txid 0c41...flux_wait_for_app      -> accepted at height 2941560, 3/3 instances running                          https://myapp.app.runonflux.io

How a deployment works

  1. The spec is verified through api.runonflux.io exactly as it will be at registration (image reachable, architecture, ports, name free). If the balancer refuses, a few healthy nodes are probed and tried in turn.
  2. The network quotes the USD price; the server checks the payer's balance.
  3. With confirm=true the Flux ID signs the spec, the same endpoint broadcasts it to the network and returns a 64-character message hash.
  4. The payment address sends the quoted FLUX to the network deployment address with the hash in an OP_RETURN output. Right before signing, the amount is re-checked against a freshly fetched price table, because an underpaid message is dropped silently and the FLUX is not refunded.
  5. Nodes pair the confirmed payment with the message and publish the app. Instances then spawn and pull the image.

Private (enterprise) apps publish an empty component list, so flux_get_app, flux_get_app_logs and flux_get_app_stats fetch the decrypted specification from an ArcaneOS node with the owner key when it is configured or passed. Only component names, images, ports and sizes are returned; environment variables, commands and registry credentials never leave the server.

Updates use the same tool: an existing app of the same owner gets a fluxappupdate message and the network credits the unused part of the old term. Private (enterprise) apps are supported through the enterprise argument: components are encrypted for the network and only ArcaneOS nodes can run them.

Hosted server: mcp.runonflux.com

The same server also runs on Flux Cloud itself, over Streamable HTTP, for hosts that cannot start a local process (claude.ai connectors, ChatGPT, browser and mobile agents). Add it as a remote MCP server:

https://mcp.runonflux.com/mcp   (also https://mcp.runonflux.io/mcp)

The hosted server holds no keys. Read-only tools need none. Tools that sign or pay take fluxIdPrivateKey and paymentPrivateKey as call arguments, used in memory for that call and never logged or stored. The server's instructions tell agents to create a dedicated pair with flux_generate_keys and to have the user fund only what a deployment needs, rather than asking for the keys of a wallet used elsewhere. Anything typed into a chat passes through the AI vendor and the host's history, so treat such a pair as disposable and keep its balance small. For larger budgets, run the local server, where keys never leave your machine.

Run your own copy with Docker:

bash
docker run -p 3000:3000 runonflux/flux-cloud-mcp

It is stateless, so any number of instances can sit behind one load balancer. GET /healthz reports liveness. The Flux app specification that runs the public instance is in deploy/cloudmcp.json.

Configuration

VariableDefaultPurpose
FLUX_ID_PRIVATE_KEYWIF of the Flux ID (owner)
FLUX_PAYMENT_PRIVATE_KEYWIF of the paying address
FLUX_API_URLhttps://api.runonflux.ioLoad-balanced FluxOS API for reads and quotes
FLUX_NODE_URLautoPin one FluxOS node for registrations
FLUX_EXPLORER_URLSexplorer.runonflux.io,flux-explorer.sspwallet.ioInsight explorers for UTXOs and broadcast
FLUX_STATS_URLhttps://stats.runonflux.ioUSD rate card
FLUX_RATES_URLhttps://viprates.runonflux.ioFLUX market rate

Security notes

  • Private keys stay in the server process. No tool ever returns a configured key; flux_generate_keys returns only the keys it just created.
  • Nothing is spent unless a tool is called with confirm=true. Hosts that ask before tool calls will show the USD amount in the arguments' context.
  • FluxOS sessions are self-issued signed phrases valid for a few hours; no password or token is stored anywhere.
  • Use a dedicated payment address holding only what you intend to spend.

Development

bash
yarn installyarn type-check && yarn lint && yarn format:check && yarn build && yarn testyarn test:live      # differential test of the USD estimator against the network

The USD estimator, the specification formatter and the consensus guard mirror the FluxOS code (appSpecHelpers.js, appUtilities.js, messageVerifier.js) and the live test checks the estimator against the network on every run.

License

MIT

來源:README.md,提交 e10d2ad

工具

15

flux_get_identity

Show the configured Flux identity and balance

Returns the Flux ID (app owner address), the payment address and its spendable FLUX balance with its USD value. Explains what to configure if keys are missing. Never returns private keys.

輸入參數fluxIdPrivateKeypaymentPrivateKey

flux_generate_keys

Generate a new Flux ID and payment key pair

Creates two fresh private keys (WIF): one for the Flux ID that will own apps, one for the address that pays. The response contains the secrets; store them in the MCP server environment as FLUX_ID_PRIVATE_KEY and FLUX_PAYMENT_PRIVATE_KEY, then restart the server. Nothing is stored or sent anywhere by this tool.

輸入參數fluxIdPrivateKeypaymentPrivateKey

flux_get_pricing

Get the Flux Cloud rate card

Returns the current USD rate card, the live FLUX/USD rate, the pay-in-FLUX discount and instant USD estimates for a few reference sizes. Use flux_quote_app for the exact price of a specific app.

輸入參數fluxIdPrivateKeypaymentPrivateKey

flux_build_spec

Build a Flux app specification from a simple description

Turns images, ports, resources and a term into a complete, correctly formatted v8 specification, with public ports auto-picked and data replication enabled. Returns the spec plus local validation errors and warnings.

輸入參數name必填nodesownermonthscontactsstaticipinstancescomponents必填descriptiongeolocationexpireBlocksfluxIdPrivateKey另有 1 個

flux_validate_spec

Validate a specification locally and on the network

Runs the local rule checks, then asks a FluxOS node to verify the specification exactly as it would at registration (image reachable, architecture, ports, name availability). Returns the node-formatted spec on success.

輸入參數spec必填networkfluxIdPrivateKeypaymentPrivateKey

flux_quote_app

Quote the price of an app in USD and FLUX

Returns the Flux Cloud price for registering the given specification, or for updating it if an app of that name already exists (the unused part of the current term is credited). Price is in USD with the FLUX amount at market rate.

輸入參數spec必填fluxIdPrivateKeypaymentPrivateKey

flux_deploy_app

Deploy (register or update) an app and pay for it

Validates the specification on a node, quotes it, and with confirm=true signs it with the Flux ID, broadcasts it and pays the quoted FLUX from the payment address. Without confirm it only returns the plan (price, balance, warnings) and spends nothing. Registers a new name or updates an existing app of the same owner. Then call flux_wait_for_app with the returned txid.

輸入參數spec必填confirmenterprisefluxIdPrivateKeypaymentPrivateKey

flux_wait_for_app

Wait for a deployment to be accepted and its instances to run

Polls the network for up to timeoutSeconds (default 45 to fit hosts with a 60 s tool timeout, max 600). Returns payment confirmations, whether the spec was accepted, and the running instances with URLs. Safe to call repeatedly until done=true.

輸入參數name必填txidpreviousHashtimeoutSecondsfluxIdPrivateKeypaymentPrivateKey

flux_get_app

Get a deployed app: spec, status, instances, URLs

Looks up any app on the network by name and returns its published specification, expiry, running instances, URLs and a reachability check: probes the shared domain (HTTP) and each instance port (TCP and HTTP) and explains what a 503 means, including when it is expected for non-web apps.

輸入參數name必填portsfluxIdPrivateKeypaymentPrivateKey

flux_list_my_apps

List apps owned by the configured Flux ID

Lists every app registered by the owner (or a given Flux ID) with expiry and instance counts.

輸入參數ownernameContainsfluxIdPrivateKeypaymentPrivateKey

flux_get_app_logs

Read container logs from a running instance

Fetches the last N log lines of an app from one of the nodes running it. Requires the owner key. The component is picked automatically when the app has one (private apps are decrypted with the owner key); otherwise the available names are listed.

輸入參數name必填linesnodeIpcomponentfluxIdPrivateKeypaymentPrivateKey

flux_get_app_stats

Get live resource usage of a running instance

CPU, memory and network stats of the containers of an app on one node. Requires the owner key.

輸入參數name必填nodeIpcomponentfluxIdPrivateKeypaymentPrivateKey

flux_control_app

Restart, redeploy or remove app instances

restart: restarts containers. redeploy: pulls the image again and recreates containers (hard=true also wipes data). remove: uninstalls from nodes; the registration stays and the network re-spawns it elsewhere, so use flux_cancel_app to stop paying. Scope is one node (nodeIp) or every node running the app (global). Requires the owner key.

輸入參數hardname必填scopeaction必填nodeIpfluxIdPrivateKeypaymentPrivateKey

flux_cancel_app

Cancel an app (stop it and stop paying)

Ends an app early by updating its term so it expires within about an hour. The network then uninstalls it everywhere. With confirm=true this signs and pays the (usually minimal) update; without it, returns the plan.

輸入參數name必填confirmfluxIdPrivateKeypaymentPrivateKey

flux_get_network_info

Network overview

Node counts by tier, current block height, FLUX/USD rate and the deployment payment address.

輸入參數fluxIdPrivateKeypaymentPrivateKey

版本歷史

2
  1. v0.2.8最新Oct 16, 2026
  2. v0.2.7Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分