Fly.io
Arcade tools designed for LLMs to interact with Fly.io
0.1.0Fly.io toolkit for Arcade enables LLMs to fully manage Fly.io infrastructure via the Fly.io API — apps, machines, volumes, networking, secrets, certificates, and deployments.
Capabilities
- App & release management: List, inspect, and deploy apps across organizations; browse full release history and roll out new container images to all machines.
- Machine lifecycle: Create, start, stop, restart, and destroy individual machines; scale machine count or change VM size/memory fleet-wide.
- Persistent storage: Create, extend, and destroy volumes; list volumes per app. (Note: volumes can only grow, not shrink.)
- Networking & TLS: Allocate and release dedicated IP addresses; add, check, and remove custom-domain TLS certificates with DNS record guidance.
- Secrets management: Set, unset, and list app secret names (values are never exposed by Fly.io); optional immediate rollout on changes.
- Observability & metadata: Read recent app logs (requires a log-read–scoped token; returns
no_accessstatus when access is missing rather than raising), list organizations, regions, and available infrastructure options.
Secrets
FLYIO_ACCESS_TOKEN — A Fly.io personal access token (or scoped deploy/org token) used to authenticate all API calls. Obtain it from the Fly.io dashboard Tokens page or by running fly tokens create deploy -a <app-name> (for a deploy-scoped token) or fly auth token (for your personal token) via the flyctl CLI. For log access (Flyio.GetLogs), the token must additionally carry log-read permission; a deploy token without this permission will cause log reads to return a no_access status. If you need org-wide access, generate a token scoped to the organization from the Fly.io dashboard under Organization Settings → Tokens.
Store the token in Arcade at https://api.arcade.dev/dashboard/auth/secrets. For details on configuring secrets in Arcade tools, see https://docs.arcade.dev/en/guides/create-tools/tool-basics/create-tool-secrets.
Available tools(30)
| Tool name | Description | Secrets | |
|---|---|---|---|
Add a TLS certificate for a hostname and return the DNS records to set. | 1 | ||
Allocate a new IP address for an app. | 1 | ||
Check a certificate's validation status and any pending DNS records. | 1 | ||
Create a new Machine for an app from a container image. | 1 | ||
Create a new persistent volume for an app. | 1 | ||
Roll a new container image out to all of an app's Machines. | 1 | ||
Permanently destroy a Machine. Stop it first unless force is set. | 1 | ||
Permanently destroy a volume and the data it holds. | 1 | ||
Grow a volume to a larger size. Volumes cannot be shrunk. | 1 | ||
Get the current status of a single Fly.io app. | 1 | ||
Read recent historical log entries for an app, optionally filtered.
Reading logs requires a token granted log-read access, which is a capability
separate from app management; a token without it cannot read logs at all. When
that access is missing this returns a ``no_access`` result rather than raising,
so prefer branching on the result's ``status`` over assuming logs are present. | 1 | ||
Get the configuration, state, and health of a single Machine. | 1 | ||
List Fly.io apps, optionally scoped to a single organization.
Apps are returned in Fly.io's own ordering, with pagination metadata so a
caller can tell when more apps exist beyond the returned window. | 1 | ||
List the custom-domain TLS certificates configured on an app. | 1 | ||
List the IP addresses assigned to an app, including the shared IPv4. | 1 | ||
List the Machines that belong to an app. | 1 | ||
List the Fly.io organizations the configured token can access. | 1 | ||
List the Fly.io regions available for deploying apps and volumes. | 1 | ||
List an app's release history, newest first. | 1 | ||
List an app's secret names. Secret values are never returned by Fly.io. | 1 | ||
List the persistent volumes that belong to an app. | 1 | ||
Release a dedicated IP address so it is no longer assigned to the app. | 1 | ||
Remove a custom-domain TLS certificate from an app. | 1 | ||
Restart a Machine and report its settled state. | 1 | ||
Scale an app to a target Machine count by adding or removing Machines. | 1 |
Selected tools
No tools selected.
Click "Show all tools" to add tools.
Requirements
Select tools to see requirements
Flyio.AddCertificate
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Add a TLS certificate for a hostname and return the DNS records to set.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app to add the certificate to. |
hostname | string | Required | The custom domain hostname to provision TLS for. |
Requirements
Output
json— No description provided.Flyio.AllocateIpAddress
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Allocate a new IP address for an app.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app to allocate the IP address for. |
ip_type | string | Required | Kind of IP address to allocate (dedicated v4/v6, shared v4, or private v6).v4v6shared_v4private_v6 |
region | string | Optional | Three-letter region code for a regional address. Leave empty for a global address. |
Requirements
Output
json— No description provided.Flyio.CheckCertificate
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Check a certificate's validation status and any pending DNS records.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app the certificate belongs to. |
hostname | string | Required | The hostname whose certificate to check. |
Requirements
Output
json— No description provided.Flyio.CreateMachine
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Create a new Machine for an app from a container image.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app to add the Machine to. |
image | string | Required | Container image reference to run, including tag. |
region | string | Optional | Three-letter region code to place the Machine in. Leave empty to let Fly.io choose. |
name | string | Optional | Name for the new Machine. Leave empty to auto-generate one. |
vm_size | string | Optional | VM-size preset for the Machine. Leave unset for the Fly.io default size.shared-cpu-1xshared-cpu-2xshared-cpu-4xshared-cpu-8xperformance-1xperformance-2xperformance-4xperformance-8xperformance-16x |
env | json | Optional | Environment variables to set on the Machine, as name/value pairs. |
Requirements
Output
json— No description provided.Flyio.CreateVolume
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Create a new persistent volume for an app.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app to create the volume for. |
name | string | Required | Name for the new volume (letters, numbers, underscores). |
region | string | Required | Three-letter region code to place the volume in. |
size_gb | integer | Required | Size of the volume in gigabytes. |
Requirements
Output
json— No description provided.Flyio.DeployApp
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Roll a new container image out to all of an app's Machines.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app to roll the new image out to. |
image | string | Required | Container image reference to deploy, including tag. |
strategy | string | Optional | How to replace the app's Machines with the new image. Defaults to ROLLING (one Machine at a time).immediaterollingcanarybluegreen |
Requirements
Output
json— No description provided.Flyio.DestroyMachine
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Permanently destroy a Machine. Stop it first unless force is set.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app the Machine belongs to. |
machine_id | string | Required | The id of the Machine to destroy. |
force | boolean | Optional | Destroy the Machine even if it is still running. When false, a running Machine must be stopped first. Defaults to false. |
Requirements
Output
json— No description provided.Flyio.DestroyVolume
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Permanently destroy a volume and the data it holds.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app the volume belongs to. |
volume_id | string | Required | The id of the volume to destroy. |
Requirements
Output
json— No description provided.Flyio.ExtendVolume
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Grow a volume to a larger size. Volumes cannot be shrunk.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app the volume belongs to. |
volume_id | string | Required | The id of the volume to extend. |
size_gb | integer | Required | New size of the volume in gigabytes. Must be larger than the current size. |
Requirements
Output
json— No description provided.Flyio.GetApp
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get the current status of a single Fly.io app.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The name of the app to inspect. |
Requirements
Output
json— No description provided.Flyio.GetLogs
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Read recent historical log entries for an app, optionally filtered. Reading logs requires a token granted log-read access, which is a capability separate from app management; a token without it cannot read logs at all. When that access is missing this returns a ``no_access`` result rather than raising, so prefer branching on the result's ``status`` over assuming logs are present.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app whose recent logs to read. |
machine_id | string | Optional | Only return logs from this Machine instance. Leave empty for all Machines. |
region | string | Optional | Only return logs from this three-letter region code. Leave empty for all regions. |
limit | integer | Optional | Maximum number of log entries to return (1-500). Defaults to 100. |
next_token | string | Optional | Opaque cursor from a previous call to fetch the next page. Leave empty to start from the most recent entries. |
Requirements
Output
json— No description provided.Flyio.GetMachine
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get the configuration, state, and health of a single Machine.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app the Machine belongs to. |
machine_id | string | Required | The id of the Machine to inspect. |
Requirements
Output
json— No description provided.Flyio.ListApps
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
List Fly.io apps, optionally scoped to a single organization. Apps are returned in Fly.io's own ordering, with pagination metadata so a caller can tell when more apps exist beyond the returned window.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
organization_slug | string | Optional | Restrict the listing to apps in this organization (its slug). Leave empty to list every app the configured token can access. |
limit | integer | Optional | Maximum apps to return (1-200). Defaults to 50. |
offset | integer | Optional | 0-indexed position in the org's app list to start from. Defaults to 0. |
Requirements
Output
json— No description provided.Flyio.ListCertificates
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
List the custom-domain TLS certificates configured on an app.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app whose certificates to list. |
Requirements
Output
json— No description provided.Flyio.ListIpAddresses
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
List the IP addresses assigned to an app, including the shared IPv4.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app whose IP addresses to list. |
Requirements
Output
json— No description provided.Flyio.ListMachines
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
List the Machines that belong to an app.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app whose Machines to list. |
region | string | Optional | Only include Machines in this three-letter region code. Leave empty for all regions. |
include_deleted | boolean | Optional | Include destroyed Machines in the listing. Defaults to false. |
Requirements
Output
json— No description provided.Flyio.ListOrganizations
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
List the Fly.io organizations the configured token can access.
Parameters
No parameters required.
Requirements
Output
json— No description provided.Flyio.ListRegions
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
List the Fly.io regions available for deploying apps and volumes.
Parameters
No parameters required.
Requirements
Output
json— No description provided.Flyio.ListReleases
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
List an app's release history, newest first.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app whose release history to list. |
limit | integer | Optional | Maximum number of releases to return (1-100). Defaults to 25. Newest releases are returned first. |
Requirements
Output
json— No description provided.Flyio.ListSecrets
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
List an app's secret names. Secret values are never returned by Fly.io.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app whose secret names to list. |
Requirements
Output
json— No description provided.Flyio.ListVolumes
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
List the persistent volumes that belong to an app.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app whose volumes to list. |
include_destroyed | boolean | Optional | Include volumes that are being torn down or already destroyed. Defaults to false, so the listing shows only live volumes. |
Requirements
Output
json— No description provided.Flyio.ReleaseIpAddress
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Release a dedicated IP address so it is no longer assigned to the app.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app the IP address belongs to. |
ip_address_id | string | Required | The id of the IP address to release. |
Requirements
Output
json— No description provided.Flyio.RemoveCertificate
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Remove a custom-domain TLS certificate from an app.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app the certificate belongs to. |
hostname | string | Required | The hostname whose certificate to remove. |
Requirements
Output
json— No description provided.Flyio.RestartMachine
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Restart a Machine and report its settled state.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app the Machine belongs to. |
machine_id | string | Required | The id of the Machine to restart. |
Requirements
Output
json— No description provided.Flyio.ScaleMachineCount
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Scale an app to a target Machine count by adding or removing Machines.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app to scale. |
count | integer | Required | Target number of Machines the app should run (0 or more). Machines are created or destroyed to reach this count. |
region | string | Optional | Scale within this three-letter region code only, leaving other regions untouched. Leave empty to scale the whole app. |
Requirements
Output
json— No description provided.Flyio.ScaleVmSize
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Change the VM size or memory of an app's Machines.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app whose Machines to resize. |
vm_size | string | Optional | VM-size preset to apply. Provide this, or memory_mb, or both. Leave unset to keep the current CPU configuration and only change memory.shared-cpu-1xshared-cpu-2xshared-cpu-4xshared-cpu-8xperformance-1xperformance-2xperformance-4xperformance-8xperformance-16x |
memory_mb | integer | Optional | Override the memory in megabytes, independent of the preset. Leave unset to use the preset's default memory. |
machine_id | string | Optional | Resize only this Machine. Leave empty to resize every Machine in the app. |
Requirements
Output
json— No description provided.Flyio.SetSecrets
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Set one or more app secrets, optionally rolling them out immediately.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app to set secrets on. |
secrets | json | Required | Secret name/value pairs to set. Existing names are overwritten in place. |
deploy | boolean | Optional | Roll the change out immediately by restarting the app's Machines so the new values take effect. When false, the values are stored for the next restart or deploy. Defaults to true. |
Requirements
Output
json— No description provided.Flyio.StartMachine
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Start a stopped Machine and report its settled state.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app the Machine belongs to. |
machine_id | string | Required | The id of the Machine to start. |
Requirements
Output
json— No description provided.Flyio.StopMachine
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Stop a started Machine and report its settled state.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app the Machine belongs to. |
machine_id | string | Required | The id of the Machine to stop. |
signal | string | Optional | Signal to send the Machine's main process. Leave unset for the Fly.io default (SIGINT, then SIGKILL).SIGTERMSIGINTSIGKILLSIGQUIT |
Requirements
Output
json— No description provided.Flyio.UnsetSecrets
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Remove one or more app secrets, optionally rolling the change out immediately.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
app_name | string | Required | The app to remove secrets from. |
keys | array<string> | Required | Names of the secrets to remove. |
deploy | boolean | Optional | Roll the change out immediately by restarting the app's Machines so the removal takes effect. When false, the removal is applied on the next restart or deploy. Defaults to true. |
Requirements
Output
json— No description provided.