Flux Cloud MCP server
OfficialFlux Cloud MCP server lets AI agents deploy, pay for, monitor, update, and cancel decentralized Flux Cloud apps from any MCP host.
Generate a Flux ID and payment key pair, and show the configured identity, payment address, and FLUX/USD balance.
Fetch the current Flux Cloud USD rate card, FLUX/USD rate, discounts, and reference prices.
Build and validate v8 app specifications locally and against FluxOS nodes.
Quote exact USD/FLUX prices for registering or updating an app, including term credits.
Deploy apps with optional confirm=true to sign, broadcast, and pay; then wait until accepted and instances are running with URLs.
Retrieve any app's spec, expiry, instances, and URLs; list apps owned by a Flux ID.
Read container logs and live CPU/memory/network stats of running instances (owner only).
Restart, redeploy, or remove instances per node or globally.
Cancel an app early and stop paying.
Get network overview: node counts, block height, FLUX/USD rate, and deployment address.
Supports private/enterprise apps with encrypted components, and read-only tools work without keys.
Enables AI agents to deploy, manage, and pay for applications on the decentralized Flux Cloud, including quoting apps in USD, deploying them, watching them come up, reading logs, updating, and canceling them.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Flux Cloud MCP server deploy nginx, 3 instances, 1 month, and give me the URLs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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:
Key | Address | Role |
| Flux ID, | Owns apps. Signs specifications and API sessions. Never holds funds. |
| Flux address, | 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.
Related MCP server: Nexlayer MCP
Install
npm install -g @runonflux/flux-cloud-mcp # or: yarn global add @runonflux/flux-cloud-mcpOr run it without installing: npx @runonflux/flux-cloud-mcp.
Claude Code
claude mcp add flux-cloud -s user \
-e FLUX_ID_PRIVATE_KEY=<wif> -e FLUX_PAYMENT_PRIVATE_KEY=<wif> \
-- npx -y @runonflux/flux-cloud-mcpClaude Desktop, Cursor, Windsurf (JSON config)
{
"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
{
"mcp": {
"flux-cloud": {
"type": "local",
"command": ["npx", "-y", "@runonflux/flux-cloud-mcp"],
"environment": {
"FLUX_ID_PRIVATE_KEY": "<wif>",
"FLUX_PAYMENT_PRIVATE_KEY": "<wif>"
}
}
}
}Tools
Tool | What it does | Spends FLUX |
| Flux ID, payment address, balance in FLUX and USD | no |
| New Flux ID + payment key pair with setup instructions | no |
| USD rate card, FLUX/USD rate, discounts, reference sizes | no |
| Simple description (image, ports, cpu/ram/hdd, months) to a full v8 spec | no |
| Local rules plus verification on a FluxOS node | no |
| USD price and FLUX to pay, for a registration or an update | no |
| Plan (default) or, with | with |
| Poll until accepted and instances run; returns URLs | no |
| Any app's spec, expiry, instances, URLs | no |
| Apps owned by the Flux ID, with instance counts and days left | no |
| Container logs from a running instance (owner only); component auto-selected, private apps decrypted with the owner key | no |
| Live CPU/memory/network of an instance (owner only) | no |
| Restart, redeploy or remove instances, per node or globally | no |
| End an app early by shortening its term | with |
| Node counts, height, FLUX/USD, deployment address | no |
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, valid
flux_quote_app -> $0.99 for 1 month, pay 19.24 FLUX (5% FLUX discount)
user agrees
flux_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.ioHow a deployment works
The spec is verified through
api.runonflux.ioexactly 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.The network quotes the USD price; the server checks the payer's balance.
With
confirm=truethe Flux ID signs the spec, the same endpoint broadcasts it to the network and returns a 64-character message hash.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.
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:
docker run -p 3000:3000 runonflux/flux-cloud-mcpIt 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
Variable | Default | Purpose |
| WIF of the Flux ID (owner) | |
| WIF of the paying address | |
|
| Load-balanced FluxOS API for reads and quotes |
| auto | Pin one FluxOS node for registrations |
|
| Insight explorers for UTXOs and broadcast |
|
| USD rate card |
|
| FLUX market rate |
Security notes
Private keys stay in the server process. No tool ever returns a configured key;
flux_generate_keysreturns 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
yarn install
yarn type-check && yarn lint && yarn format:check && yarn build && yarn test
yarn test:live # differential test of the USD estimator against the networkThe 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
Available Tools
15 toolsflux_build_specBuild a Flux app specification from a simple descriptionBInspect
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.
Inputs: name (required), components (required), nodes, months, +6 more.
flux_cancel_appCancel an app (stop it and stop paying)AInspect
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.
Inputs: name (required), confirm.
flux_control_appRestart, redeploy or remove app instancesAInspect
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.
Inputs: name (required), action (required), hard, scope, +1 more.
flux_deploy_appDeploy (register or update) an app and pay for itAInspect
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.
Inputs: spec (required), confirm, enterprise.
flux_generate_keysGenerate a new Flux ID and payment key pairAInspect
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.
Inputs: no named parameters.
flux_get_appGet a deployed app: spec, status, instances, URLsBInspect
Looks up any app on the network by name and returns its published specification, expiry, running instances and URLs.
Inputs: name (required).
flux_get_app_logsRead container logs from a running instanceAInspect
Fetches the last N log lines of an app (or one component of it) from one of the nodes running it. Requires the owner key.
Inputs: name (required), lines, nodeIp, component.
flux_get_app_statsGet live resource usage of a running instanceBInspect
CPU, memory and network stats of the containers of an app on one node. Requires the owner key.
Inputs: name (required), nodeIp, component.
flux_get_identityShow the configured Flux identity and balanceAInspect
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.
Inputs: no named parameters.
flux_get_network_infoNetwork overviewBInspect
Node counts by tier, current block height, FLUX/USD rate and the deployment payment address.
Inputs: no named parameters.
flux_get_pricingGet the Flux Cloud rate cardAInspect
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.
Inputs: no named parameters.
flux_list_my_appsList apps owned by the configured Flux IDBInspect
Lists every app registered by the owner (or a given Flux ID) with expiry and instance counts.
Inputs: owner, nameContains.
flux_quote_appQuote the price of an app in USD and FLUXAInspect
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.
Inputs: spec (required).
flux_validate_specValidate a specification locally and on the networkAInspect
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.
Inputs: spec (required), network.
flux_wait_for_appWait for a deployment to be accepted and its instances to runAInspect
Polls the network for up to timeoutSeconds (default 300, max 600). Returns payment confirmations, whether the spec was accepted, and the running instances with URLs. Safe to call repeatedly until done=true.
Inputs: name (required), txid, previousHash, timeoutSeconds.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 15 tools
Most tools have clearly distinct purposes across the deployment lifecycle, with explicit descriptions separating build/validate/quote/deploy. The main potential confusion is between flux_cancel_app and flux_control_app's remove option, but the descriptions clarify that cancel stops payment while remove only uninstalls from nodes.
All tool names use the same flux_ prefix and consistent snake_case verb_noun pattern, such as flux_get_app, flux_deploy_app, flux_list_my_apps, and flux_get_app_logs. There are no mixed conventions or ambiguous naming styles.
15 tools is well within the appropriate range for a cloud deployment and management server. Each tool covers a distinct step in the Flux app lifecycle, from key generation and pricing to deployment, monitoring, and cancellation.
The surface covers the full app lifecycle: identity and keys, pricing and quotes, spec building and validation, deployment and waiting, listing and inspection, logs and stats, runtime control, cancellation, and network info. Update is handled through deploy_app for existing apps, so no major gaps are apparent.
Related MCP Connectors
Deploy and manage your apps, databases, storage, and scheduled jobs from your AI agent
Deploy and run apps in your own AWS, Google Cloud, Azure or DigitalOcean account from any AI agent.
Deploy and run your apps by asking your AI: services, Postgres, logs, traces, rollbacks, costs.
The cloud for agents. Tools for AI agents to register, build, and deploy other agents. Zero human required.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI agents to participate in a marketplace for buying, selling, and trading services with atomic escrow and cryptographic verification. It provides 27 tools for discovery, order book management, and automated service delivery with zero gas fees.3260 npmMIT

Nexlayer MCPofficial
FlicenseNot gradedqualityDmaintenanceAgentic cloud platform with 45+ MCP tools. Deploy any containerized stack, debug live pods (shell, file editing, DB queries), manage custom domains & TLS, push to built-in container registry, scale pods, and manage GPU workloads. The infrastructure layer where AI agents ship software to production.9-- AlicenseNot gradedqualityCmaintenanceEnables developers and AI agents to check, price, pay for, and follow paid work on a network of AI agents over stdio or streamable HTTP, exposing eight tools where only ordering can spend and only behind four safety gates. Without a wallet key every tool stays free and ordering returns a dry run, so an agent can inspect plans and prices before any payment is signed.MIT
- AlicenseNot gradedqualityBmaintenanceEnables an AI agent to check live GPU prices, get a cost quote, rent a per-minute GPU instance, upload code and data, run jobs in the background, tail logs, download results and destroy the instance to stop billing. Includes guardrail limits on spend, hours and idle time, safe file transfer, and access to an OpenAI-compatible model API for inference without renting a GPU.1,341 npmMIT