Flux Cloud
by RunOnFlux · remote · local (npm) · no sign-in to list tools · v0.2.8 · published by GitHub user RunOnFlux
Deploy, pay for and manage apps on Flux Cloud, the decentralized cloud. Prices in USD.
15 tools: 3 can delete or cancel things, 3 change things and 9 only read.
Scanned Oct 21, 2026
- Deletes or cancels3Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things3Claude Code: ask: see these tools
- Only reads9Claude Code: allow: see these tools
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http flux-cloud https://mcp.runonflux.com/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "flux_generate_keys" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "flux_generate_keys" says "generate": a word for a change.
The server marks "flux_validate_spec" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "flux_validate_spec" says "validate": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
15 tools
Deletes or cancels 3Claude Code: deny
flux_cancel_appEnds an app early by updating its term so it expires within about an hour.No findings
Why it is in this group
- The name "flux_cancel_app" says "cancel": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
flux_control_apprestart: restarts containers.No findings
Why it is in this group
- The description's first verb is "restart": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
flux_deploy_appValidates 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.No findings
Why it is in this group
- The name "flux_deploy_app" says "deploy": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
Changes things 3Claude Code: ask
flux_build_specTurns images, ports, resources and a term into a complete, correctly formatted v8 specification, with public ports auto-picked and data replication enabled.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
flux_generate_keysCreates two fresh private keys (WIF): one for the Flux ID that will own apps, one for the address that pays.1 finding
Why it is in this group
- The name "flux_generate_keys" says "generate": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "flux_generate_keys" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "flux_generate_keys" says "generate": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
flux_validate_specRuns 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).1 finding
Why it is in this group
- The name "flux_validate_spec" says "validate": a word for reading.
- The description's first verb is "run": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "flux_validate_spec" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "flux_validate_spec" says "validate": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
Only reads 9Claude Code: allow
flux_get_appLooks 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 …No findings
Why it is in this group
- The name "flux_get_app" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
flux_get_app_logsFetches the last N log lines of an app from one of the nodes running it.No findings
Why it is in this group
- The name "flux_get_app_logs" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
flux_get_app_statsCPU, memory and network stats of the containers of an app on one node.No findings
Why it is in this group
- The name "flux_get_app_stats" says "get": a word for reading.
Description, as the server wrote it CPU, memory and network stats of the containers of an app on one node. Requires the owner key.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
flux_get_identityReturns the Flux ID (app owner address), the payment address and its spendable FLUX balance with its USD value.No findings
Why it is in this group
- The name "flux_get_identity" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
flux_get_network_infoNode counts by tier, current block height, FLUX/USD rate and the deployment payment address.No findings
Why it is in this group
- The name "flux_get_network_info" says "get": a word for reading.
Description, as the server wrote it Node counts by tier, current block height, FLUX/USD rate and the deployment payment address.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
flux_get_pricingReturns the current USD rate card, the live FLUX/USD rate, the pay-in-FLUX discount and instant USD estimates for a few reference sizes.No findings
Why it is in this group
- The name "flux_get_pricing" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
flux_list_my_appsLists every app registered by the owner (or a given Flux ID) with expiry and instance counts.No findings
Why it is in this group
- The name "flux_list_my_apps" says "list": a word for reading.
Description, as the server wrote it Lists every app registered by the owner (or a given Flux ID) with expiry and instance counts.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
flux_quote_appReturns 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).No findings
Why it is in this group
- The description's first verb is "return": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
flux_wait_for_appPolls the network for up to timeoutSeconds (default 45 to fit hosts with a 60 s tool timeout, max 600).No findings
Why it is in this group
- The name "flux_wait_for_app" says "wait": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.2.8. Values in angle brackets are yours to fill in.
claude mcp add --transport http flux-cloud https://mcp.runonflux.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__flux-cloud__flux_get_identity",
"mcp__flux-cloud__flux_get_pricing",
"mcp__flux-cloud__flux_quote_app",
"mcp__flux-cloud__flux_wait_for_app",
"mcp__flux-cloud__flux_get_app",
"mcp__flux-cloud__flux_list_my_apps",
"mcp__flux-cloud__flux_get_app_logs",
"mcp__flux-cloud__flux_get_app_stats",
"mcp__flux-cloud__flux_get_network_info"
],
"ask": [
"mcp__flux-cloud__flux_generate_keys",
"mcp__flux-cloud__flux_build_spec",
"mcp__flux-cloud__flux_validate_spec"
],
"deny": [
"mcp__flux-cloud__flux_deploy_app",
"mcp__flux-cloud__flux_control_app",
"mcp__flux-cloud__flux_cancel_app"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as flux-cloud. Review it before you use it.
