Flux Cloud

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

使うべきか

品質と安全性

A
説明の品質
98%
スキーマの完全性
92%
命名の品質
80%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

検出事項(1)

  • LOWTool 'flux_get_app_stats' description lacks action verbflux_get_app_stats 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~5,743トークン数(ツール定義)
~3.9 KB一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 4.49%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "flux-cloud-mcp": {
      "command": "npx",
      "args": [
        "@runonflux/flux-cloud-mcp"
      ]
    }
  }
}

実行可能なパッケージ

npm@runonflux/flux-cloud-mcp0.2.7stdio

リモートエンドポイント

https://mcp.runonflux.com/mcpstreamable-http

できること

ツール一覧

ツール(15)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢flux_get_identity(fluxIdPrivateKey, paymentPrivateKey)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "fluxIdPrivateKey": {
      "description": "WIF private key of the Flux ID that owns the app. Use a dedicated key from flux_generate_keys, never a main wallet key.",
      "type": "string"
    },
    "paymentPrivateKey": {
      "description": "WIF private key of the Flux address that pays. Fund it with only what you intend to spend.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪flux_generate_keys(fluxIdPrivateKey, paymentPrivateKey)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "fluxIdPrivateKey": {
      "description": "WIF private key of the Flux ID that owns the app. Use a dedicated key from flux_generate_keys, never a main wallet key.",
      "type": "string"
    },
    "paymentPrivateKey": {
      "description": "WIF private key of the Flux address that pays. Fund it with only what you intend to spend.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢flux_get_pricing(fluxIdPrivateKey, paymentPrivateKey)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "fluxIdPrivateKey": {
      "description": "WIF private key of the Flux ID that owns the app. Use a dedicated key from flux_generate_keys, never a main wallet key.",
      "type": "string"
    },
    "paymentPrivateKey": {
      "description": "WIF private key of the Flux address that pays. Fund it with only what you intend to spend.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪flux_build_spec(name, description, components, instances, months, ...)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 63,
      "description": "Unique app name: letters, digits, inner hyphens. Not starting with \"flux\" or \"zel\"."
    },
    "description": {
      "type": "string",
      "maxLength": 256
    },
    "components": {
      "minItems": 1,
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 63
          },
          "description": {
            "type": "string",
            "maxLength": 256
          },
          "image": {
            "type": "string",
            "description": "Docker image with an explicit tag."
          },
          "ports": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "containerPort": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 65535
                },
                "port": {
                  "description": "Public port; auto-picked from 31000-39999 when omitted.",
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 65535
                },
                "domain": {
                  "type": "string"
                }
              },
              "required": [
                "containerPort"
              ]
            }
          },
          "env": {
            "anyOf": [
              {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {
                  "type": "string"
                }
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "commands": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "dataPath": {
            "description": "Path inside the container to persist. Default \"/data\".",
            "type": "string"
          },
          "replicateData": {
            "description": "Replicate the data path across instances. Default true.",
            "type": "boolean"
          },
          "cpu": {
            "type": "number",
            "description": "Cores, 0.1 to 15 in 0.1 steps."
          },
          "ram": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "MB, multiple of 100."
          },
          "hdd": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "GB."
          },
          "repoauth": {
            "type": "string"
          }
        },
        "required": [
          "image",
          "cpu",
          "ram",
          "hdd"
        ]
      }
    },
    "instances": {
      "description": "Copies on distinct nodes. Default 3.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "months": {
      "description": "Term in network months (88000 blocks each). Default 1.",
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 12
    },
    "expireBlocks": {
      "description": "Exact term in blocks; overrides months.",
      "type": "integer",
      "minimum": 1,
      "maximum": 1056000
    },
    "contacts": {
      "maxItems": 5,
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "geolocation": {
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "nodes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "staticip": {
      "type": "boolean"
    },
    "owner": {
      "description": "Flux ID that will own the app. Defaults to the configured or passed key.",
      "type": "string"
    },
    "fluxIdPrivateKey": {
      "description": "WIF private key of the Flux ID that owns the app. Use a dedicated key from flux_generate_keys, never a main wallet key.",
      "type": "string"
    },
    "paymentPrivateKey": {
      "description": "WIF private key of the Flux address that pays. Fund it with only what you intend to spend.",
      "type": "string"
    }
  },
  "required": [
    "name",
    "components"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪flux_validate_spec(spec, network, fluxIdPrivateKey, paymentPrivateKey)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "spec": {
      "type": "object",
      "properties": {
        "version": {
          "default": 8,
          "type": "number",
          "const": 8
        },
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 63
        },
        "description": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256
        },
        "owner": {
          "description": "Flux ID. Defaults to the configured FLUX_ID_PRIVATE_KEY identity.",
          "type": "string"
        },
        "compose": {
          "minItems": 0,
          "maxItems": 10,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "description": "Component name. Defaults to the app name.",
                "type": "string",
                "maxLength": 63
              },
              "description": {
                "type": "string",
                "maxLength": 256
              },
              "repotag": {
                "type": "string",
                "description": "Docker image with an explicit tag, e.g. \"nginx:1.27-alpine\"."
              },
              "ports": {
                "default": [],
                "description": "Public ports. Prefer 31000-39999.",
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                }
              },
              "containerPorts": {
                "default": [],
                "description": "Ports the container listens on, parallel to ports.",
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                }
              },
              "domains": {
                "default": [],
                "description": "Custom domain per port, \"\" for none. Parallel to ports.",
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "environmentParameters": {
                "default": [],
                "description": "\"KEY=value\" strings, max 20.",
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "commands": {
                "default": [],
                "description": "Container Cmd, max 20 strings.",
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "containerData": {
                "type": "string",
                "description": "Persisted path, e.g. \"r:/data\" (r: = replicated across instances)."
              },
              "cpu": {
                "type": "number",
                "description": "Cores, 0.1 to 15 in 0.1 steps."
              },
              "ram": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991,
                "description": "MB, 100 to 59000 in steps of 100."
              },
              "hdd": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991,
                "description": "GB, 1 to 820."
              },
              "repoauth": {
                "default": "",
                "description": "\"user:token\" for a private registry, else \"\".",
                "type": "string"
              }
            },
            "required": [
              "repotag",
              "containerData",
              "cpu",
              "ram",
              "hdd"
            ]
          }
        },
        "instances": {
          "default": 3,
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        },
        "contacts": {
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "geolocation": {
          "default": [],
          "description": "e.g. [\"acEU\"] allow Europe, [\"a!cAS\"] deny Asia.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "expire": {
          "default": 88000,
          "description": "Term in blocks; 88000 = 1 month.",
          "type": "integer",
          "minimum": 1,
          "maximum": 1056000
        },
        "nodes": {
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "staticip": {
          "default": false,
          "type": "boolean"
        },
        "enterprise": {
          "default": "",
          "type": "string"
        }
      },
      "required": [
        "name",
        "description",
        "compose"
      ]
    },
    "network": {
      "default": true,
      "description": "Also verify on a FluxOS node.",
      "type": "boolean"
    },
    "fluxIdPrivateKey": {
      "description": "WIF private key of the Flux ID that owns the app. Use a dedicated key from flux_generate_keys, never a main wallet key.",
      "type": "string"
    },
    "paymentPrivateKey": {
      "description": "WIF private key of the Flux address that pays. Fund it with only what you intend to spend.",
      "type": "string"
    }
  },
  "required": [
    "spec"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪flux_quote_app(spec, fluxIdPrivateKey, paymentPrivateKey)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "spec": {
      "type": "object",
      "properties": {
        "version": {
          "default": 8,
          "type": "number",
          "const": 8
        },
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 63
        },
        "description": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256
        },
        "owner": {
          "description": "Flux ID. Defaults to the configured FLUX_ID_PRIVATE_KEY identity.",
          "type": "string"
        },
        "compose": {
          "minItems": 0,
          "maxItems": 10,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "description": "Component name. Defaults to the app name.",
                "type": "string",
                "maxLength": 63
              },
              "description": {
                "type": "string",
                "maxLength": 256
              },
              "repotag": {
                "type": "string",
                "description": "Docker image with an explicit tag, e.g. \"nginx:1.27-alpine\"."
              },
              "ports": {
                "default": [],
                "description": "Public ports. Prefer 31000-39999.",
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                }
              },
              "containerPorts": {
                "default": [],
                "description": "Ports the container listens on, parallel to ports.",
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                }
              },
              "domains": {
                "default": [],
                "description": "Custom domain per port, \"\" for none. Parallel to ports.",
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "environmentParameters": {
                "default": [],
                "description": "\"KEY=value\" strings, max 20.",
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "commands": {
                "default": [],
                "description": "Container Cmd, max 20 strings.",
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "containerData": {
                "type": "string",
                "description": "Persisted path, e.g. \"r:/data\" (r: = replicated across instances)."
              },
              "cpu": {
                "type": "number",
                "description": "Cores, 0.1 to 15 in 0.1 steps."
              },
              "ram": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991,
                "description": "MB, 100 to 59000 in steps of 100."
              },
              "hdd": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991,
                "description": "GB, 1 to 820."
              },
              "repoauth": {
                "default": "",
                "description": "\"user:token\" for a private registry, else \"\".",
                "type": "string"
              }
            },
            "required": [
              "repotag",
              "containerData",
              "cpu",
              "ram",
              "hdd"
            ]
          }
        },
        "instances": {
          "default": 3,
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        },
        "contacts": {
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "geolocation": {
          "default": [],
          "description": "e.g. [\"acEU\"] allow Europe, [\"a!cAS\"] deny Asia.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "expire": {
          "default": 88000,
          "description": "Term in blocks; 88000 = 1 month.",
          "type": "integer",
          "minimum": 1,
          "maximum": 1056000
        },
        "nodes": {
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "staticip": {
          "default": false,
          "type": "boolean"
        },
        "enterprise": {
          "default": "",
          "type": "string"
        }
      },
      "required": [
        "name",
        "description",
        "compose"
      ]
    },
    "fluxIdPrivateKey": {
      "description": "WIF private key of the Flux ID that owns the app. Use a dedicated key from flux_generate_keys, never a main wallet key.",
      "type": "string"
    },
    "paymentPrivateKey": {
      "description": "WIF private key of the Flux address that pays. Fund it with only what you intend to spend.",
      "type": "string"
    }
  },
  "required": [
    "spec"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡flux_deploy_app(spec, enterprise, confirm, fluxIdPrivateKey, paymentPrivateKey)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "spec": {
      "type": "object",
      "properties": {
        "version": {
          "default": 8,
          "type": "number",
          "const": 8
        },
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 63
        },
        "description": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256
        },
        "owner": {
          "description": "Flux ID. Defaults to the configured FLUX_ID_PRIVATE_KEY identity.",
          "type": "string"
        },
        "compose": {
          "minItems": 0,
          "maxItems": 10,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "description": "Component name. Defaults to the app name.",
                "type": "string",
                "maxLength": 63
              },
              "description": {
                "type": "string",
                "maxLength": 256
              },
              "repotag": {
                "type": "string",
                "description": "Docker image with an explicit tag, e.g. \"nginx:1.27-alpine\"."
              },
              "ports": {
                "default": [],
                "description": "Public ports. Prefer 31000-39999.",
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                }
              },
              "containerPorts": {
                "default": [],
                "description": "Ports the container listens on, parallel to ports.",
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                }
              },
              "domains": {
                "default": [],
                "description": "Custom domain per port, \"\" for none. Parallel to ports.",
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "environmentParameters": {
                "default": [],
                "description": "\"KEY=value\" strings, max 20.",
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "commands": {
                "default": [],
                "description": "Container Cmd, max 20 strings.",
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "containerData": {
                "type": "string",
                "description": "Persisted path, e.g. \"r:/data\" (r: = replicated across instances)."
              },
              "cpu": {
                "type": "number",
                "description": "Cores, 0.1 to 15 in 0.1 steps."
              },
              "ram": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991,
                "description": "MB, 100 to 59000 in steps of 100."
              },
              "hdd": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991,
                "description": "GB, 1 to 820."
              },
              "repoauth": {
                "default": "",
                "description": "\"user:token\" for a private registry, else \"\".",
                "type": "string"
              }
            },
            "required": [
              "repotag",
              "containerData",
              "cpu",
              "ram",
              "hdd"
            ]
          }
        },
        "instances": {
          "default": 3,
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        },
        "contacts": {
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "geolocation": {
          "default": [],
          "description": "e.g. [\"acEU\"] allow Europe, [\"a!cAS\"] deny Asia.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "expire": {
          "default": 88000,
          "description": "Term in blocks; 88000 = 1 month.",
          "type": "integer",
          "minimum": 1,
          "maximum": 1056000
        },
        "nodes": {
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "staticip": {
          "default": false,
          "type": "boolean"
        },
        "enterprise": {
          "default": "",
          "type": "string"
        }
      },
      "required": [
        "name",
        "description",
        "compose"
      ]
    },
    "enterprise": {
      "description": "Make the app private: these components and contacts are encrypted so only the nodes running the app can read them. When set, spec.compose should be [] and spec.enterprise \"\".",
      "type": "object",
      "properties": {
        "compose": {
          "minItems": 1,
          "maxItems": 10,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "description": "Component name. Defaults to the app name.",
                "type": "string",
                "maxLength": 63
              },
              "description": {
                "type": "string",
                "maxLength": 256
              },
              "repotag": {
                "type": "string",
                "description": "Docker image with an explicit tag, e.g. \"nginx:1.27-alpine\"."
              },
              "ports": {
                "default": [],
                "description": "Public ports. Prefer 31000-39999.",
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                }
              },
              "containerPorts": {
                "default": [],
                "description": "Ports the container listens on, parallel to ports.",
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                }
              },
              "domains": {
                "default": [],
                "description": "Custom domain per port, \"\" for none. Parallel to ports.",
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "environmentParameters": {
                "default": [],
                "description": "\"KEY=value\" strings, max 20.",
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "commands": {
                "default": [],
                "description": "Container Cmd, max 20 strings.",
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "containerData": {
                "type": "string",
                "description": "Persisted path, e.g. \"r:/data\" (r: = replicated across instances)."
              },
              "cpu": {
                "type": "number",
                "description": "Cores, 0.1 to 15 in 0.1 steps."
              },
              "ram": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991,
                "description": "MB, 100 to 59000 in steps of 100."
              },
              "hdd": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991,
                "description": "GB, 1 to 820."
              },
              "repoauth": {
                "default": "",
                "description": "\"user:token\" for a private registry, else \"\".",
                "type": "string"
              }
            },
            "required": [
              "repotag",
              "containerData",
              "cpu",
              "ram",
              "hdd"
            ]
          }
        },
        "contacts": {
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "compose"
      ]
    },
    "confirm": {
      "default": false,
      "description": "Set true to actually sign, broadcast and pay.",
      "type": "boolean"
    },
    "fluxIdPrivateKey": {
      "description": "WIF private key of the Flux ID that owns the app. Use a dedicated key from flux_generate_keys, never a main wallet key.",
      "type": "string"
    },
    "paymentPrivateKey": {
      "description": "WIF private key of the Flux address that pays. Fund it with only what you intend to spend.",
      "type": "string"
    }
  },
  "required": [
    "spec"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪flux_wait_for_app(name, txid, previousHash, timeoutSeconds, fluxIdPrivateKey, ...)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "txid": {
      "description": "Payment txid from flux_deploy_app, to report confirmations.",
      "type": "string"
    },
    "previousHash": {
      "description": "For updates: the hash of the previous spec, so acceptance means a new hash.",
      "type": "string"
    },
    "timeoutSeconds": {
      "default": 45,
      "type": "integer",
      "minimum": 10,
      "maximum": 600
    },
    "fluxIdPrivateKey": {
      "description": "WIF private key of the Flux ID that owns the app. Use a dedicated key from flux_generate_keys, never a main wallet key.",
      "type": "string"
    },
    "paymentPrivateKey": {
      "description": "WIF private key of the Flux address that pays. Fund it with only what you intend to spend.",
      "type": "string"
    }
  },
  "required": [
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢flux_get_app(name, fluxIdPrivateKey, paymentPrivateKey)

Looks up any app on the network by name and returns its published specification, expiry, running instances and URLs.

入力スキーマ

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "fluxIdPrivateKey": {
      "description": "WIF private key of the Flux ID that owns the app. Use a dedicated key from flux_generate_keys, never a main wallet key.",
      "type": "string"
    },
    "paymentPrivateKey": {
      "description": "WIF private key of the Flux address that pays. Fund it with only what you intend to spend.",
      "type": "string"
    }
  },
  "required": [
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢flux_list_my_apps(owner, nameContains, fluxIdPrivateKey, paymentPrivateKey)

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

入力スキーマ

{
  "type": "object",
  "properties": {
    "owner": {
      "description": "Flux ID to list; defaults to the configured one.",
      "type": "string"
    },
    "nameContains": {
      "description": "Only apps whose name contains this text.",
      "type": "string"
    },
    "fluxIdPrivateKey": {
      "description": "WIF private key of the Flux ID that owns the app. Use a dedicated key from flux_generate_keys, never a main wallet key.",
      "type": "string"
    },
    "paymentPrivateKey": {
      "description": "WIF private key of the Flux address that pays. Fund it with only what you intend to spend.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢flux_get_app_logs(name, component, lines, nodeIp, fluxIdPrivateKey, ...)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "component": {
      "description": "Component name for multi-component apps.",
      "type": "string"
    },
    "lines": {
      "default": 200,
      "type": "integer",
      "minimum": 1,
      "maximum": 2000
    },
    "nodeIp": {
      "description": "ip[:port] of the instance; defaults to the first running one.",
      "type": "string"
    },
    "fluxIdPrivateKey": {
      "description": "WIF private key of the Flux ID that owns the app. Use a dedicated key from flux_generate_keys, never a main wallet key.",
      "type": "string"
    },
    "paymentPrivateKey": {
      "description": "WIF private key of the Flux address that pays. Fund it with only what you intend to spend.",
      "type": "string"
    }
  },
  "required": [
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢flux_get_app_stats(name, component, nodeIp, fluxIdPrivateKey, paymentPrivateKey)

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

入力スキーマ

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "component": {
      "description": "Component name for multi-component apps.",
      "type": "string"
    },
    "nodeIp": {
      "type": "string"
    },
    "fluxIdPrivateKey": {
      "description": "WIF private key of the Flux ID that owns the app. Use a dedicated key from flux_generate_keys, never a main wallet key.",
      "type": "string"
    },
    "paymentPrivateKey": {
      "description": "WIF private key of the Flux address that pays. Fund it with only what you intend to spend.",
      "type": "string"
    }
  },
  "required": [
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴flux_control_app(name, action, scope, nodeIp, hard, ...)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "action": {
      "type": "string",
      "enum": [
        "restart",
        "redeploy",
        "remove"
      ]
    },
    "scope": {
      "default": "global",
      "type": "string",
      "enum": [
        "node",
        "global"
      ]
    },
    "nodeIp": {
      "description": "Required for scope=node; also the node the global command is sent through.",
      "type": "string"
    },
    "hard": {
      "default": false,
      "description": "For redeploy: also delete the app data.",
      "type": "boolean"
    },
    "fluxIdPrivateKey": {
      "description": "WIF private key of the Flux ID that owns the app. Use a dedicated key from flux_generate_keys, never a main wallet key.",
      "type": "string"
    },
    "paymentPrivateKey": {
      "description": "WIF private key of the Flux address that pays. Fund it with only what you intend to spend.",
      "type": "string"
    }
  },
  "required": [
    "name",
    "action"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴flux_cancel_app(name, confirm, fluxIdPrivateKey, paymentPrivateKey)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "confirm": {
      "default": false,
      "type": "boolean"
    },
    "fluxIdPrivateKey": {
      "description": "WIF private key of the Flux ID that owns the app. Use a dedicated key from flux_generate_keys, never a main wallet key.",
      "type": "string"
    },
    "paymentPrivateKey": {
      "description": "WIF private key of the Flux address that pays. Fund it with only what you intend to spend.",
      "type": "string"
    }
  },
  "required": [
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢flux_get_network_info(fluxIdPrivateKey, paymentPrivateKey)

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

入力スキーマ

{
  "type": "object",
  "properties": {
    "fluxIdPrivateKey": {
      "description": "WIF private key of the Flux ID that owns the app. Use a dedicated key from flux_generate_keys, never a main wallet key.",
      "type": "string"
    },
    "paymentPrivateKey": {
      "description": "WIF private key of the Flux address that pays. Fund it with only what you intend to spend.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 15 件
検証済みバージョンは記録されていませんツール 15 件
検証済みバージョンは記録されていませんツール 15 件