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
30 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.CreateMachine Create a new Machine for an app from a container image.
Flyio.CreateVolume Create a new persistent volume for an app.
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.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.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 app, inspect its latest logs, and explain what changed." Arcade helps it use the right Fly.io tools without guessing app, Machine, release, or volume identifiers.
Up to 100x fewer tokens
Fly.io reads return focused metadata for apps, Machines, releases, volumes, certificates, and IPs, with logs or configuration fetched when needed. The agent can diagnose infrastructure without loading every resource into context.
Complete the workflow end to end
Inspect app health, review logs, deploy an image, verify the resulting release, and check Machine state through one toolkit designed around the complete Fly.io operations 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.
- 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.
- 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.
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 tools an AI agent can call through the Model Context Protocol. Agents can inspect apps, Machines, releases, logs, volumes, certificates, IPs, and organizations, then perform permitted infrastructure changes.
Arcade's Fly.io server is built by Arcade rather than Fly.io. Arcade adds the runtime around the integration, including shared-key credential brokering, approval policies, response redaction, and access from MCP-compatible clients.
Agents can list and inspect apps, Machines, releases, logs, volumes, certificates, IP addresses, regions, organizations, and secret names. They can also deploy images, create or resize infrastructure, start or stop and restart Machines, scale Machine counts, manage secrets, configure certificates and IPs, and destroy Machines or volumes.
Arcade uses the shared Fly.io API key or secret configured for the integration. That credential determines which Fly.io organizations, apps, and infrastructure the agent can reach; grant it only the access required for the workflow.
No. This integration uses one shared API key or secret configured once, rather than having each user connect an individual Fly.io account. Arcade brokers the credential, and the model never receives it.
Yes. Contextual Access policies can require human approval before consequential Fly.io actions such as deploying, changing secrets, scaling, stopping, or destroying infrastructure. 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 shared 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 refreshes access while the shared authorization remains valid. If the Fly.io key or secret is revoked, rotated, or can no longer be used, calls stop until the credential is reconnected.
Calls remain subject to Fly.io's API rate limits and any organization or account limits. Arcade does not remove those provider-side quotas, and no separate Fly.io limits are specified for these actions.