Fly.io MCP Tools for AI Agents
Let an agent deploy app images, inspect logs, restart or scale Machines, manage volumes, and configure secrets on Fly.io.
Available Tools
39 tools available in this integration
Flyio.AddCertificate Add a TLS certificate for a hostname and return the DNS records to set.
Flyio.AllocateIpAddress Allocate a new IP address for an app.
Flyio.CheckCertificate Check a certificate's validation status and any pending DNS records.
Flyio.CreateCertificate Add a TLS certificate for a hostname and return the DNS records to set.
Flyio.CreateIpAddress Allocate a new IP address for an app.
Flyio.CreateMachine Create a new Machine for an app from a container image.
Flyio.CreateVolume Create a new persistent volume for an app.
Flyio.DeleteCertificate Remove a custom-domain TLS certificate from an app.
Flyio.DeleteIpAddress Release a dedicated IP address so it is no longer assigned to the app.
Flyio.DeleteMachine Permanently destroy a Machine.
Flyio.DeleteSecrets Remove one or more app secrets, optionally rolling the change out immediately.
Flyio.DeleteVolume Permanently destroy a volume and the data it holds.
Flyio.DeployApp Roll a new container image out to all of an app's Machines.
Flyio.DestroyMachine Permanently destroy a Machine.
Flyio.DestroyVolume Permanently destroy a volume and the data it holds.
Flyio.ExtendVolume Grow a volume to a larger size.
Flyio.GetApp Get the current status of a single Fly.io app.
Flyio.GetLogs Read recent historical log entries for an app, optionally filtered.
Flyio.GetMachine Get the configuration, state, and health of a single Machine.
Flyio.ListApps List Fly.io apps, optionally scoped to a single organization.
Flyio.ListCertificates List the custom-domain TLS certificates configured on an app.
Flyio.ListIpAddresses List the IP addresses assigned to an app, including the shared IPv4.
Flyio.ListLogs Read recent historical log entries for an app, optionally filtered.
Flyio.ListMachines List the Machines that belong to an app.
Flyio.ListOrganizations List the Fly.io organizations the configured token can access.
Flyio.ListRegions List the Fly.io regions available for deploying apps and volumes.
Flyio.ListReleases List an app's release history, newest first.
Flyio.ListSecrets List an app's secret names.
Flyio.ListVolumes List the persistent volumes that belong to an app.
Flyio.ReleaseIpAddress Release a dedicated IP address so it is no longer assigned to the app.
Flyio.RemoveCertificate Remove a custom-domain TLS certificate from an app.
Flyio.RestartMachine Restart a Machine and report its settled state.
Flyio.ScaleMachineCount Scale an app to a target Machine count by adding or removing Machines.
Flyio.ScaleVmSize Change the VM size or memory of an app's Machines.
Flyio.ScaleVolume Grow a volume to a larger size.
Flyio.SetSecrets Set one or more app secrets, optionally rolling them out immediately.
Flyio.StartMachine Start a stopped Machine and report its settled state.
Flyio.StopMachine Stop a started Machine and report its settled state.
Flyio.UnsetSecrets Remove one or more app secrets, optionally rolling the change out immediately.
Why agent-optimized tools matter
Built for intent, not API schemas
Ask the agent to "find the unhealthy Fly.io app, inspect its recent logs, and propose the safest fix." Arcade picks the right Fly.io actions without guessing app or machine identifiers first.
Up to 100x fewer tokens
Fly.io reads return focused app, machine, release, volume, and certificate metadata by default, so the agent can locate the resource it needs without loading every log entry or infrastructure record into the model.
Complete the workflow end to end
Inspect an app, review its logs and release history, change a secret or image, restart the affected machine, and verify its settled state through one toolkit designed around the complete Fly.io deployment task.
Make actions predictable and controlled
Arcade tools return structured results and useful errors across users and runs. Teams can apply scope restrictions, redaction, and approval policies so agents follow the same controls every time.
Securing Fly.io
The more capabilities agents get, the more useful they are. However, more capabilities bring more risks of undesired effects such as data loss and exfiltration.
This is why Arcade provides you with contextual rules that dictate how and when a tool is allowed to run. Arcade’s contextual access lets you govern tool visibility and behavior at every stage of execution and control who can see a tool, what inputs are allowed, and what comes back.
Learn about Contextual Access PoliciesFor Fly.io, you can implement some of these policies:
- Hide Flyio.DestroyVolume from agents unless the roles your IDP marks as infrastructure owners are active, so an agent cannot permanently erase application data.
- Restrict Flyio.ReleaseIpAddress to agents operating under your network-administrator role, so routine automation cannot disconnect an app from its dedicated address.
- Deny Flyio.SetSecrets to read-only and deployment-only agents, so an agent cannot replace credentials or configuration secrets.
- Hide Flyio.DeleteCertificate from agents unless the roles your IDP marks as domain administrators are active, so an agent cannot take a live hostname offline by removing its certificate.
- Restrict Flyio.DeleteMachine to agents operating under your infrastructure-owner role, so routine automation cannot permanently remove an application instance.
- Deny Flyio.DeleteSecrets to agents without your security-administrator role, so an agent cannot remove credentials that active workloads still require.
- Require human approval before Flyio.DestroyMachine runs, so an agent cannot permanently remove a running workload without review.
- Block Flyio.DeployApp when the target app is tagged production unless a release manager approves the call, so an agent cannot roll unreviewed images into production.
- Require human approval before Flyio.ScaleMachineCount reduces a production app's machine count, so cost or capacity automation cannot take instances offline unexpectedly.
- Require human approval before Flyio.DeleteVolume runs on a volume attached to a production app, so an agent cannot erase live application data without review.
- Block Flyio.DeleteIpAddress when the address is assigned to a production app or appears on your protected-address list, so automation cannot cause an avoidable network outage.
- Refuse Flyio.ScaleVolume requests that exceed your approved storage-growth limit unless a human approves them, so an agent cannot create unexpected infrastructure charges.
- Redact credentials, access tokens, connection strings, and customer data from Flyio.GetLogs results before they reach the model.
- Strip secret names that match credentials, payment systems, or customer-data patterns from Flyio.ListSecrets results, so the model cannot infer sensitive configuration from the inventory.
- Redact organization identifiers and names from Flyio.ListOrganizations results for agents that do not need cross-organization visibility.
- Strip request headers, authorization values, database URLs, and customer identifiers from Flyio.ListLogs results before the model sees the log entries.
How to use Fly.io with your agent
Pick your MCP client below and follow the setup to give an agent authenticated access to your Fly.io apps. The walkthrough shows how to configure the shared credential and call these actions from your client.
Your questions, answered
A Fly.io MCP server exposes Fly.io operations as structured actions that an AI agent can call through the Model Context Protocol. An authorized agent can inspect apps, machines, releases, logs, volumes, certificates, IP addresses, regions, organizations, and secrets, as well as deploy and change infrastructure.
Arcade exposes Fly.io operations through its MCP gateway and adds the runtime around them: shared-key authentication, approval policies, redaction, access controls, and support for multiple agent clients. You do not need to build and maintain that connection separately for each client.
Arcade agents can list and inspect apps, machines, releases, logs, volumes, certificates, IP addresses, regions, organizations, and secret names. They can also deploy images, start or stop and restart machines, create or remove machines and volumes, scale machine counts or VM sizes, grow volumes, manage secrets, configure certificates and IP addresses, and check certificate status.
Arcade uses the Fly.io API credential configured for the integration. That credential determines which organizations and apps the agent can reach and which infrastructure changes it can make; there is no separate per-action permission set specified here.
No. Fly.io uses one shared API key or secret configured once for the integration, rather than requiring each user to connect a separate Fly.io account. Every call runs with the access granted to that configured credential.
Yes. Contextual Access policies can require human approval before consequential Fly.io actions such as deploying an image, changing secrets, scaling infrastructure, stopping or destroying a machine, deleting a volume, or releasing an IP address. The call proceeds only after the policy's conditions are satisfied.
Arcade proxies Fly.io API calls and does not persist your content as part of normal tool execution. The configured credential is brokered and stored encrypted at rest, and the model never receives it.
Any framework or client that can connect to Arcade's MCP gateway or tool APIs works, including LangChain, OpenAI Agents, CrewAI, Claude Desktop, Claude Code, Cursor, Visual Studio Code, Microsoft Copilot Studio, and GitHub Copilot.
Arcade continues using the configured Fly.io credential while it remains valid. If the key or secret is revoked, rotated, or can no longer be used, calls stop until the credential is reconnected or updated.
Fly.io API rate limits and quotas still apply to calls made through Arcade. The available details do not specify separate Fly.io limits for these actions, so deployments, log reads, and infrastructure changes should be planned around Fly.io's current limits and the access of the configured credential.