Flux Cloud MCP server
OfficialEnables 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 "Install 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 serverdeploy 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) | 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 by a FluxOS node exactly as it will be at registration (image reachable, architecture, ports, name free).
The network quotes the USD price; the server checks the payer's balance.
With
confirm=truethe Flux ID signs the spec, one node 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.
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.
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 descriptionB
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 | Required | Description | Default |
|---|---|---|---|
| name | Yes | Unique app name: letters, digits, inner hyphens. Not starting with "flux" or "zel". | |
| nodes | No | ||
| months | No | Term in network months (88000 blocks each). Default 1. | |
| contacts | No | ||
| staticip | No | ||
| instances | No | Copies on distinct nodes. Default 3. | |
| components | Yes | ||
| description | No | ||
| geolocation | No | ||
| expireBlocks | No | Exact term in blocks; overrides months. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden, and it does add real behavior: public ports are auto-picked and data replication is enabled by default. It also states the return content (spec plus local validation errors and warnings). It omits whether the tool has any side effects or persistence (build vs. deploy), which is the key behavioral question for this sibling family.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core transformation and followed by the auto-fill/return behavior; no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter tool with no annotations and no output schema, the description covers the return value well but leaves most parameters and the build-vs-deploy relationship unexplained. It is minimally adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40% across 10 parameters, so the description should compensate more than it does. It loosely maps to components/images, ports, resources, and 'a term' (months/expireBlocks), but says nothing about name, instances, nodes, contacts, staticip, geolocation, or per-component env/commands/dataPath.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific transformation ('turns images, ports, resources and a term into a complete, correctly formatted v8 specification'), so the verb and output artifact are unambiguous. It does not, however, distinguish itself from siblings like flux_validate_spec or flux_quote_app, which an agent must choose between in the same workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no mention of prerequisites, and no routing to or away from flux_validate_spec, flux_quote_app, or flux_deploy_app. The only signal is the implied 'build before you deploy' ordering, which the agent must infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flux_cancel_appCancel an app (stop it and stop paying)A
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 | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| confirm | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does well: it discloses the destructive end state (expires in ~1 hour, then uninstalled everywhere), the cost implication (signs and pays the usually minimal update), and the dry-run behavior of confirm=false. It stops short of stating irreversibility, refundability, or required auth/scopes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with what happens, then the network consequence, then the confirm semantics. No filler and each clause adds decision-relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description does explain the divergent return behavior for confirm true vs false, plus the side effects. It lacks details on timing guarantees, irreversibility, and permissions, which matter for a destructive billing operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does for confirm: true means sign and pay, false returns the plan instead of mutating. The 'name' parameter is left to obvious inference, so the semantic gap is narrow but not fully closed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Ends an app early') and goes further to explain the mechanism (term update so it expires within about an hour, then network-wide uninstall). The title's 'stop it and stop paying' plus the term mechanics distinguish it from a generic control/stop sibling like flux_control_app.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the confirm flag (commit-and-pay vs plan preview), which tells the agent how to use it safely, but there is no explicit statement of when to choose this over flux_control_app or other lifecycle tools, nor any stated prerequisites. Adequate but leaves sibling selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flux_control_appRestart, redeploy or remove app instancesA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| hard | No | For redeploy: also delete the app data. | |
| name | Yes | ||
| scope | No | global | |
| action | Yes | ||
| nodeIp | No | Required for scope=node; also the node the global command is sent through. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full load and does well: it discloses that hard=true destroys data, that remove does not truly delete (the network re-spawns it), and that the owner key is required for authorization. It omits any statement about disruption/gracefulness of restart, reversibility, or the shape of the response, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense, front-loaded paragraph keyed by action name, then scope, then auth. Every clause carries a distinct fact and nothing is repeated from the schema or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an unannotated mutation tool with no output schema and 5 params, the description covers action semantics, scope, data-destruction, authorization and the correct sibling for stopping the app. It could still say what is returned or whether the operation is awaited, but nothing needed for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 40%, but the description compensates by explaining what each action value means, the data-loss consequence of hard, and that scope is 'one node (nodeIp) or every node running the app (global)'. The remaining params (name) are self-evident; the nodeIp description in the schema is actually slightly richer than the prose, so no gap remains.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb set (restart/redeploy/remove) against a specific resource (app containers/nodes) and even disambiguates the confusing case by naming the sibling flux_cancel_app. An agent can distinguish it from flux_cancel_app, flux_deploy_app and flux_get_app without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives per-action conditions ('redeploy: pulls the image again... hard=true also wipes data') and an explicit alternative for the wrong choice: 'remove... the registration stays and the network re-spawns it elsewhere, so use flux_cancel_app to stop paying.' That is an explicit when-not plus named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flux_deploy_appDeploy (register or update) an app and pay for itA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| spec | Yes | ||
| confirm | No | Set true to actually sign, broadcast and pay. | |
| enterprise | No | 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 "". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses the signing identity (Flux ID), the payment source (payment address), the FLUX spend, and precisely what the dry-run returns without spending. It stops short of covering failure/error behavior, idempotency, or gas/fee nuances, but the critical destructive-and-payment profile is fully and honestly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences, front-loaded with the core action and the confirm gate, with the plan-vs-execute distinction and follow-up call each earning their place. Slightly dense but no wasted filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a high-complexity, nested-object tool with no output schema and no annotations, the description covers the key behaviors an agent needs: the confirm gate, what the plan returns, the payment implication, and the next call. It could say more about the returned txid/plan fields or failure modes, but it is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, so the schema already documents confirm and most nested spec fields (expire, repotag, containerData, etc.). The description reinforces confirm's semantics and adds the 'plan = price, balance, warnings' return shape, but adds no meaning for the many nested spec/enterprise fields beyond what the schema states. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific verb chain (validate, quote, sign, broadcast, pay) and resource (app specification), making it unmistakably distinct from siblings like flux_validate_spec, flux_quote_app, and flux_build_spec. It also states the register-new vs update-existing scope. An agent can identify exactly what this tool does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly explains the confirm=true (execute and pay) vs confirm=false (dry-run plan, spends nothing) dichotomy, and prescribes the follow-up call to flux_wait_for_app with the returned txid. It does not explicitly contrast against flux_validate_spec or flux_quote_app as separate preflight steps, so the routing to alternatives is implicit rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flux_generate_keysGenerate a new Flux ID and payment key pairA
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the response contains secrets, that nothing is stored or sent anywhere by the tool, and the required follow-up (store in env vars, restart server). It omits whether regeneration overwrites existing keys or is irreversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with what is produced, followed by where the secrets go and the side-effect guarantee. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description adequately covers what is returned (two named secrets) and what the caller must do with them. The only meaningful gap is a warning about irreversibility or repeated invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to clarify and the baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: creates two fresh WIF private keys, one for the Flux ID and one for the payment address. This distinguishes it cleanly from sibling read tools like flux_get_identity, which retrieves rather than generates credentials.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the instruction to store keys in env vars and restart the server signals this is one-time setup. It never says when to call it versus when to use flux_get_identity to check for existing keys, nor what happens on a second call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flux_get_appGet a deployed app: spec, status, instances, URLsB
Looks up any app on the network by name and returns its published specification, expiry, running instances and URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden. It usefully discloses that it works for 'any app on the network' (not just the caller's own) and enumerates the return contents, implying a safe read. However, it does not mention auth requirements, whether unpublished apps are excluded, or error behavior for unknown names, leaving real gaps for a zero-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with the lookup action and return payload front-loaded, and no wasted words. It is efficient, though the brevity leaves the guidance gaps noted elsewhere unaddressed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema, the description does describe the shape of the return (spec, expiry, instances, URLs), which is the main thing an agent needs. But with no annotations and no sibling routing, it stops short of fully orienting the agent for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Exactly one parameter with 0% schema description coverage, so the description must supply meaning. 'By name' identifies the parameter as an app name lookup key, but adds no format, case-sensitivity, or validation detail beyond what the schema's required string already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (looks up) and resource (app on the network by name) and enumerates the returned payload: published specification, expiry, running instances, and URLs. This distinguishes it from siblings like flux_get_app_logs and flux_get_app_stats by content, though it never names those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance or alternatives are stated. An agent gets no direction on whether to call this versus flux_list_my_apps for discovery or flux_get_app_stats for metrics, and no preconditions are mentioned. Usage is only implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flux_get_app_logsRead container logs from a running instanceA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| lines | No | ||
| nodeIp | No | ip[:port] of the instance; defaults to the first running one. | |
| component | No | Component name for multi-component apps. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the auth requirement (owner key) and that logs are pulled from one of possibly several nodes, but says nothing about whether the call is read-only, side effects, rate limits, or truncation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with the core action and scope, with the prerequisite appended. Every clause carries information; nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-style fetch tool with no annotations and no output schema, the description covers the key context an agent needs: what is returned (log lines), the component/node scoping model, and the auth prerequisite. Remaining gaps (default node behavior, line cap) are handled by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%, so the description must compensate. 'Last N log lines' maps to the undocumented `lines` parameter, 'one component of it' maps to `component`, and 'one of the nodes running it' maps to the schema-documented `nodeIp`; only `name` is left implicit. This adds real meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (fetches) and resource (last N log lines) plus scope (an app, or one component, from one of its nodes). This is clearly distinguishable from siblings like flux_get_app_stats or flux_get_app, which return different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states a prerequisite ('Requires the owner key') but gives no explicit when-to-use/when-not guidance or named alternatives. Usage is implied rather than stated, though the log-fetching purpose is unambiguous enough that no sibling competes for it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flux_get_app_statsGet live resource usage of a running instanceB
CPU, memory and network stats of the containers of an app on one node. Requires the owner key.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| nodeIp | No | ||
| component | No | Component name for multi-component apps. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does add two genuine behavioral facts beyond the name: the operation is 'live' (real-time sampling) and it requires the owner key. However, it says nothing about error behavior for stopped/missing apps, per-node scoping limits, or rate limits, so meaningful gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the resource being fetched, and the prerequisite placed second. Nothing is wasted, though the extreme terseness leaves gaps that the other dimensions penalize.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description must explain what the caller gets back and under what conditions it works. It never describes the stats payload shape, the per-node output structure, or what happens when the app is not running, leaving an agent under-equipped for a three-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (only 'component' is documented). The description indirectly compensates: 'on one node' points at nodeIp and 'containers of an app' signals the component granularity. It still gives no syntax for the node IP or component naming and never clarifies the required 'name' or default-node behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (CPU/memory/network stats of containers for an app on a node), which clearly distinguishes it from siblings such as flux_get_app_logs, flux_get_app, or flux_get_network_info. It doesn't explicitly name an alternative, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is an implied prerequisite ('Requires the owner key') and the title's hint that the instance must be running. There is no statement of when to use this versus flux_get_app, flux_get_network_info, or flux_get_app_logs, and no conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flux_get_identityShow the configured Flux identity and balanceA
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does reasonably well: it discloses the return contents, the missing-key edge case behavior ('explains what to configure'), and a security guarantee ('never returns private keys'). It does not cover permissions/authentication requirements, but for a zero-param local read tool this is solid disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with what is returned, followed by the missing-keys note and the private-key guarantee. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must describe the return values, and it names the exact fields (Flux ID, payment address, spendable balance, USD value). It also covers the missing-key scenario. It is essentially complete for a zero-param query tool, with only auth/permission context unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters (zero-param schema), so per the rubric the baseline is 4. The description appropriately spends its words on return semantics instead of nonexistent inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: it returns the Flux ID, payment address, spendable FLUX balance, and USD value. This clearly distinguishes it from app-lifecycle siblings (flux_deploy_app, flux_get_app) and from flux_generate_keys. It stops short of explicitly naming a sibling to differentiate against, so it lands at a strong 4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: an agent can infer this is the identity/balance check, and the 'explains what to configure if keys are missing' clause supplies a conditional scenario. There is no explicit when-to-use versus when-to-use-something-else guidance or named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flux_get_network_infoNetwork overviewB
Node counts by tier, current block height, FLUX/USD rate and the deployment payment address.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden, yet it discloses nothing about permissions, whether the call is read-only (implied only by the 'get' name), rate limits, or whether values are live or cached. Listing the returned fields is useful but is content description rather than behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that enumerates the return contents with no filler or preamble. Every phrase earns its place, and the key information leads.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description compensates by naming the four data points returned, which is enough for an agent to decide whether this tool answers its question. It falls short only on freshness/volatility of the values and any access requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which sets the baseline at 4. The description appropriately spends no words on argument syntax, leaving the empty schema as the complete contract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and description together establish a specific read operation ('get') over a specific resource (network info), and the enumerated contents (node counts by tier, block height, FLUX/USD rate, payment address) make clear what the agent gets back. It is distinguishable from the app-deployment siblings like flux_deploy_app and flux_get_app, though it doesn't explicitly say it is not those.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no when-to-use guidance, no prerequisites, and no pointer to an alternative or complementary tool such as flux_get_pricing. The agent must infer that this is the tool to call for chain-level statistics simply from the content list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flux_get_pricingGet the Flux Cloud rate cardA
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It discloses that the returned rate is 'live' and distinguishes reference estimates from exact quotes, which is genuinely useful, but it says nothing about caching/refresh cadence, rate limits, or auth needs, and 'a few reference sizes' is vague about contents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler. The payload of what is returned is front-loaded, and the sibling routing is placed last where it naturally reads as a caveat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the necessary work of enumerating the return contents, and it covers the read-only nature implicitly through 'Returns' and 'live.' It falls slightly short on the shape of the estimates (which reference sizes, refresh timing), but is otherwise complete for a no-arg read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to disambiguate and the baseline is 4. The description correctly implies no inputs are needed to obtain the rate card.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Returns') and enumerates the exact resources returned: the USD rate card, live FLUX/USD rate, pay-in-FLUX discount, and reference-size USD estimates. It also distinguishes itself from flux_quote_app, so an agent can tell the two apart without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly routes the agent to flux_quote_app 'for the exact price of a specific app,' which implicitly defines when to use this tool (general rate card / rough reference estimates) versus the alternative. It stops short of an explicit when-not or a stated prerequisite, but the routing is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flux_list_my_appsList apps owned by the configured Flux IDB
Lists every app registered by the owner (or a given Flux ID) with expiry and instance counts.
| Name | Required | Description | Default |
|---|---|---|---|
| owner | No | Flux ID to list; defaults to the configured one. | |
| nameContains | No | Only apps whose name contains this text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does add useful context by naming what each entry includes (expiry and instance counts), but it says nothing about authentication requirements, pagination, rate limits, or what 'the configured Flux ID' resolves to.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler: verb, resource, scope, and return contents in one pass. Nothing redundant or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with two optional params, full schema coverage, and no output schema, the description is nearly sufficient — it even names the returned fields. Only the absence of any auth/pagination note keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented in the schema. The description's parenthetical ('or a given Flux ID') loosely maps to the owner parameter but adds no format or semantics beyond it, and nameContains goes unmentioned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lists every app registered by the owner') with a clear scope ('every app') that distinguishes it from the single-app sibling flux_get_app. It does not name any sibling explicitly, but the plural/scoped framing makes the distinction inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance or explicit alternatives are given; the agent must infer that this is the bulk-listing counterpart to flux_get_app. The parenthetical about the Flux ID default is a parameter note, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flux_quote_appQuote the price of an app in USD and FLUXA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| spec | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and largely succeeds: it discloses the conditional update path, the credit for the unused current term, and the USD/FLUX market-rate pricing. It still does not state permissions, side effects, or whether the call is strictly read-only, but the quote semantics and update-credit behavior are unusually well surfaced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences with no waste. The pricing behavior and conditional update logic are presented compactly and in the right order.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a quote tool with a complex nested spec and no output schema, the description gives enough return-value context by stating that the result is in USD with a FLUX amount at market rate, and it covers the update-credit behavior. It is less complete on auth or dry-run guarantees, but the core quoting contract is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is reported as 0% for the single top-level parameter, and the description adds no meaningful detail beyond calling it a 'given specification.' It does not explain required nested fields, defaults, or constraints, so it fails to compensate for the low schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns the Flux Cloud price for registering or updating a given specification. It clearly separates this quote operation from deployment or general pricing tools by tying the price to the app spec and the existing-app update case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but gives no explicit guidance on when to use it versus alternatives such as flux_get_pricing, flux_build_spec, or flux_deploy_app. The agent must infer that this is a pre-deployment quoting step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flux_validate_specValidate a specification locally and on the networkA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| spec | Yes | ||
| network | No | Also verify on a FluxOS node. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose useful behavior: a local check followed by a live FluxOS node verification with the specific dimensions checked. It stops short of stating side effects (does it persist or normalize anything?), failure/error reporting, or whether it is purely read-only, which matters for a tool that talks to a network node.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core action front-loaded and the verification details following. Every clause carries information; no filler or restated boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by noting the success return (node-formatted spec). For a two-parameter tool with a richly documented nested schema, the definition is nearly complete, missing only failure-mode behavior and explicit sibling routing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: the `network` flag and most nested spec fields are documented in the schema, but the description adds meaning by explaining what "verify on a node" actually entails. It does not clarify the interaction between `network` and the local-only path, so it only partially compensates for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Runs the local rule checks... verify the specification") and enumerates the actual checks performed (image reachable, architecture, ports, name availability). This clearly separates it from flux_build_spec and flux_deploy_app, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase "exactly as it would at registration" implies this is a pre-deployment gate, so the use case is inferable. However, it never states when to choose this over flux_build_spec or before flux_deploy_app, nor when to skip it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flux_wait_for_appWait for a deployment to be accepted and its instances to runA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| txid | No | Payment txid from flux_deploy_app, to report confirmations. | |
| previousHash | No | For updates: the hash of the previous spec, so acceptance means a new hash. | |
| timeoutSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load and does reasonably well: it discloses the polling model, the 300s default / 600s cap, idempotent repeated invocation, and the shape of the result including a done flag. It omits what happens on timeout expiry (error vs partial result), which is the notable behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, each carrying distinct information (poll mechanism, timeout bounds, return payload, idempotency). Nothing is redundant and the key constraints are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter polling tool with no annotations and no output schema, the description covers the essentials of invocation and return values, but it leaves timeout-failure behavior, permission/auth needs, and the 'name' parameter's relationship to the deployed app unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%, and the description only reinforces timeoutSeconds semantics (already in the schema) plus the meaning of txid confirmations. The required 'name' parameter and the update-flow semantics of previousHash remain undocumented in the description beyond the schema's own text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the polling behavior and enumerates what it returns (payment confirmations, spec acceptance, running instances with URLs), so an agent can tell it is a wait/poll tool. It does not, however, contrast itself with siblings like flux_get_app or flux_deploy_app, which is the main remaining ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Safe to call repeatedly until done=true' implies a poll-until-complete usage pattern, and the default/max timeout hints at appropriate call scope. But it never states when to choose this over flux_get_app or that it should follow flux_deploy_app, so usage is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
15 tool updates
v0.1.1- First observed
flux_build_spec - First observed
flux_cancel_app - First observed
flux_control_app - First observed
flux_deploy_app - First observed
flux_generate_keys - First observed
flux_get_app - First observed
flux_get_app_logs - First observed
flux_get_app_stats - First observed
flux_get_identity - First observed
flux_get_network_info - First observed
flux_get_pricing - First observed
flux_list_my_apps - First observed
flux_quote_app - First observed
flux_validate_spec - First observed
flux_wait_for_app
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.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Deploy and manage your apps, databases, storage, and scheduled jobs from your AI agent
The cloud for agents. Tools for AI agents to register, build, and deploy other agents. Zero human required.
The agent-native cloud: database, functions, AI, storage, computers. 50 tools, one API key.
Your AI Agent's Infrastructure Layer. Connect Claude, Copilot, Codex, or ChatGPT to 200+ managed open source services. Start databases, pipelines, and applications through natural language.
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.3225MIT

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.8-- AlicenseAqualityCmaintenanceEnables AI agents to deploy applications and manage servers over SSH using natural language commands, with built-in tools for Python bots, Docker Compose, and SSL setup.6MIT
- AlicenseAqualityBmaintenanceEnables AI agents to create and manage BasicDeploy containers with PostgreSQL, S3 storage, and public URLs, including deploying apps, running commands, viewing logs, and sharing containers.18137MIT