Fly integration for AI agents.
Fly integration for AI agents with secure authentication and server-side credential injection. Open Connector runs the OAuth, seals the token in an encrypted vault, and serves Fly tools to your agent over MCP or a typed API — credentials injected server-side, every call audited, nothing leaving your infrastructure. Open source (AGPL-3.0) and self-hostable.
Real Fly actions, managed and audited.
Your user connects Fly once; your agent can then sandboxes aren't enough. Give your agent a real computer and get back to building — scoped to the OAuth permissions you grant and the tool allowlist you configure. Every action is least-privilege and written to a tamper-evident audit trail.
- 1
Your user grants Fly access once (OAuth) — the token lands in the vault.
- 2
Your agent calls a tool over MCP or the typed API; Open Connector injects the credential server-side.
- 3
Every routed call appends a hash-chained audit record — nothing leaves your infra.
Supported Fly tools.
98 tools are generated from the published Fly catalog. Descriptions are plain text; each action remains subject to its configured authentication and tool allowlist.
Showing 98 tools. All published catalog entries are included in this page's server-rendered HTML.
- Request ACME certificate
- Request ACME certificate
- TLS Certificates
- Remove ACME certificates
- Remove ACME certificates
- TLS Certificates
- Check DNS and re-validate certificate
- Check DNS and re-validate certificate
- TLS Certificates
- Upload custom certificate
- Upload custom certificate
- TLS Certificates
- Remove custom certificate
- Remove custom certificate
- TLS Certificates
- Remove certificate
- Remove certificate
- TLS Certificates
- List certificates for app
- List certificates for app
- TLS Certificates
- Get certificate details
- Get certificate details
- TLS Certificates
- Create App deploy token
- Create App deploy token
- Apps
- Assign new IP address to app
- Assign new IP address to app
- Apps
- Remove IP assignment from app
- Remove IP assignment from app
- Apps
- List IP assignments for app
- List IP assignments for app
- Apps
- Create App
- Create an app with the specified details in the request body.
- Apps
- Destroy App
- Delete an app by its name.
- Apps
- List Apps
- List all apps with the ability to filter by organization slug.
- Apps
- Get App
- Retrieve details about a specific app by its name.
- Apps
- Create Snapshot
- Create a snapshot for a specific volume within an app.
- Volumes
- Get Current Token Information
- Get information about the current macaroon token(s), including organizations, apps, user identity hashes, and machine restrictions
- Tokens
- Cordon Machine
- “Cordoning” a Machine refers to disabling its services, so the Fly Proxy won’t route requests to it. In flyctl this is used by blue/green deployments; one set of Machines is started up with services disabled, and when they are all healthy, the services are enabled on the new Machines and disabled on the old ones.
- Machines
- Create Machine
- Create a Machine within a specific app using the details provided in the request body. **Important**: This request can fail, and you’re responsible for handling that failure. If you ask for a large Machine, or a Machine in a region we happen to be at capacity for, you might need to retry the request, or to fall back to another region. If you’re working directly with the Machines API, you’re taking some responsibility for your own orchestration!
- Machines
- Create Lease
- Create a lease for a specific Machine within an app using the details provided in the request body. Machine leases can be used to obtain an exclusive lock on modifying a Machine.
- Machines
- Destroy Machine
- Delete a specific Machine within an app by Machine ID, with an optional force parameter to force kill the Machine if it's running.
- Machines
- Delete Metadata
- Delete metadata for a specific Machine within an app by providing a metadata key.
- Machines
- Execute Command
- Execute a command on a specific Machine and return the raw command output bytes.
- Machines
- Get Machine Memory
- Get current memory limit and available capacity for a machine
- Machines
- Get Metadata Value
- Get the value of a specific metadata key
- Machines
- List Machines
- List all Machines associated with a specific app, with optional filters for including deleted Machines and filtering by region.
- Machines
- List Events
- List all events associated with a specific Machine within an app.
- Machines
- List Processes
- List all processes running on a specific Machine within an app, with optional sorting parameters.
- Machines
- List Versions
- List all versions of the configuration for a specific Machine within an app.
- Machines
- List All Machines
- List all Machines associated with a specific organization. Machines are sorted by their `updated_at` timestamps, oldest to newest. This API call represents "a point in time". Recent machine changes, including creations and destructions, may take time to propagate. When polling with `updated_after`, offset your timestamps to catch late-arriving events.
- Organizations
- Reclaim Machine Memory
- Trigger the balloon device to reclaim memory from a machine
- Machines
- Release Lease
- Release the lease of a specific Machine within an app. Machine leases can be used to obtain an exclusive lock on modifying a Machine.
- Machines
- Restart Machine
- Restart a specific Machine within an app, with an optional timeout parameter.
- Machines
- Set Machine Memory Limit
- Set the memory limit for a machine using the balloon device
- Machines
- Get Machine
- Get details of a specific Machine within an app by the Machine ID.
- Machines
- Get Lease
- Retrieve the current lease of a specific Machine within an app. Machine leases can be used to obtain an exclusive lock on modifying a Machine.
- Machines
- Get Metadata
- Retrieve metadata for a specific Machine within an app.
- Machines
- Signal Machine
- Send a signal to a specific Machine within an app using the details provided in the request body.
- Machines
- Start Machine
- Start a specific Machine within an app.
- Machines
- Stop Machine
- Stop a specific Machine within an app, with an optional request body to specify signal and timeout.
- Machines
- Suspend Machine
- Suspend a specific Machine within an app. The next start operation will attempt (but is not guaranteed) to resume the Machine from a snapshot taken at suspension time, rather than performing a cold boot.
- Machines
- Uncordon Machine
- “Cordoning” a Machine refers to disabling its services, so the Fly Proxy won’t route requests to it. In flyctl this is used by blue/green deployments; one set of Machines is started up with services disabled, and when they are all healthy, the services are enabled on the new Machines and disabled on the old ones.
- Machines
- Update Machine
- Update a Machine's configuration using the details provided in the request body.
- Machines
- Update Metadata (set/remove multiple keys)
- Update multiple metadata keys at once. Null values and empty strings remove keys. + If `machine_version` is provided and no longer matches the current machine version, returns 412 Precondition Failed.
- Machines
- Upsert Metadata Key
- Update metadata for a specific machine within an app by providing a metadata key.
- Machines
- Wait for State
- Wait for a Machine to reach a specific state. Specify the desired state with the state parameter. See the [Machine states table](https://fly.io/docs/machines/working-with-machines/#machine-states) for a list of possible states. The default for this parameter is `started`. This request will block for up to 60 seconds. Set a shorter timeout with the timeout parameter.
- Machines
- Update Metadata (set/remove multiple keys)
- Update multiple metadata keys at once. Null values and empty strings remove keys. + If `machine_version` is provided and no longer matches the current machine version, returns 412 Precondition Failed.
- Machines
- Get Placements
- Simulates placing the specified number of machines into regions, depending on available capacity and limits.
- Platform
- Get Regions
- List all regions on the platform with their details.
- Platform
- Attach Cluster to App
- Attach a specific cluster to a Fly app. The attachment is created if it does not already exist.
- Postgres Clusters
- Detach Cluster from App
- Detach a specific cluster from a Fly app.
- Postgres Clusters
- Create Backup
- Create a backup for a specific cluster. The backup runs asynchronously and is rejected if one is already in progress.
- Postgres Clusters
- List Backups
- List all backups associated with a specific cluster.
- Postgres Clusters
- Create Postgres Cluster
- Create a Managed Postgres cluster for the organization named in the request body. Provisioning is asynchronous, and a name is generated when one is not supplied.
- Postgres Clusters
- Create Database
- Create a database within a specific cluster.
- Postgres Clusters
- Drop Database
- Delete a specific database within a cluster, along with objects that depend on it.
- Postgres Clusters
- List Databases
- List all databases within a specific cluster.
- Postgres Clusters
- Delete Postgres Cluster
- Delete a Managed Postgres cluster. The cluster is marked for deletion and removed asynchronously.
- Postgres Clusters
- Disable Extension
- Disable a specific Postgres extension within a database, optionally dropping objects that depend on it. System extensions cannot be disabled.
- Postgres Clusters
- Enable Extension
- Enable a Postgres extension within a specific database. PostGIS extensions require a PostGIS-enabled cluster.
- Postgres Clusters
- List Extensions
- List all extensions available within a specific database, indicating which are installed.
- Postgres Clusters
- Fork Cluster to New Cluster
- Fork a ready Managed Postgres cluster into a new cluster that inherits the source's settings. The source cluster is left unchanged, and the fork is provisioned asynchronously.
- Postgres Clusters
- List Postgres Clusters
- List Managed Postgres clusters for an organization.
- Postgres Clusters
- Restore Backup to New Cluster
- Restore a backup into a new Managed Postgres cluster. The source cluster is left unchanged, and a new cluster is provisioned from the specified backup.
- Postgres Clusters
- Get Postgres Cluster
- Get details of a specific Managed Postgres cluster.
- Postgres Clusters
- Create User
- Create a Postgres user within a specific cluster. Fetch the generated password from the credentials endpoint.
- Postgres Clusters
- Get User Credentials
- Get the connection credentials for a specific Postgres user within a cluster.
- Postgres Clusters
- Delete User
- Delete a specific Postgres user within a cluster.
- Postgres Clusters
- List Users
- List all Postgres users within a specific cluster.
- Postgres Clusters
- Rotate User Password
- Rotate a specific Postgres user's password within a cluster, optionally terminating the user's existing sessions.
- Postgres Clusters
- Update User Role
- Update a specific Postgres user's role within a cluster.
- Postgres Clusters
- Create or update Secret
- Create or update Secret
- Secrets
- Delete an app secret
- Delete an app secret
- Secrets
- Get an app secret
- Get an app secret
- Secrets
- Decrypt with a secret key
- Decrypt with a secret key
- Secrets
- Delete an app's secret key
- Delete an app's secret key
- Secrets
- Encrypt with a secret key
- Encrypt with a secret key
- Secrets
- Generate a random secret key
- Generate a random secret key
- Secrets
- Get an app's secret key
- Get an app's secret key
- Secrets
- Create or update a secret key
- Create or update a secret key
- Secrets
- Sign with a secret key
- Sign with a secret key
- Secrets
- Verify with a secret key
- Verify with a secret key
- Secrets
- List secret keys belonging to an app
- List secret keys belonging to an app
- Secrets
- List app secrets belonging to an app
- List app secrets belonging to an app
- Secrets
- Update app secrets belonging to an app
- Update app secrets belonging to an app
- Secrets
- Authenticate token header
- Verify a token header without checking resource access.
- Tokens
- Authorize token for resource access
- Verify a token header and validate it against a requested access scope.
- Tokens
- Request a Petsem token for accessing KMS
- This site hosts documentation generated from the Fly.io Machines API OpenAPI specification. Visit our complete [Machines API docs](https://fly.io/docs/machines/api/apps-resource/) for details about using the Apps resource.
- Tokens
- Request an OIDC token
- Request an Open ID Connect token for your machine. Customize the audience claim with the `aud` parameter. This returns a JWT token. Learn more about [using OpenID Connect](/docs/reference/openid-connect/) on Fly.io.
- Tokens
- Destroy Volume
- Delete a specific volume within an app by volume ID.
- Volumes
- Create Volume
- Create a volume for a specific app using the details provided in the request body.
- Volumes
- Extend Volume
- Extend a volume's size within an app using the details provided in the request body.
- Volumes
- Get Volume
- Retrieve details about a specific volume by its ID within an app.
- Volumes
- List Volumes
- List all volumes associated with a specific app.
- Volumes
- List Snapshots
- List all snapshots for a specific volume within an app.
- Volumes
- List All Volumes
- List all volumes for an organization with optional filters and cursor-based pagination.
- Organizations
- Update Volume
- Update a volume's configuration using the details provided in the request body.
- Volumes
Fly integration, answered
- How do AI agents use Fly through Open Connector?
- Your user connects Fly once with one of its cataloged authentication methods. Open Connector stores the credential in an encrypted vault and exposes Fly tools to your agent over MCP or a typed API, with credentials injected server-side on each call.
- Is this a Fly MCP server?
- Yes. Open Connector can serve Fly as a named MCP server with a scoped allowlist and a per-user connection URL, so any MCP client can call Fly actions with credentials injected server-side.
- Where do Fly credentials live?
- In your own infrastructure. Open Connector keeps credentials in its own vault and injects them at call time, so they never leave your environment.
Give your agents Fly — keep the keys.
Open source, self-hostable, with Fly credentials that never leave your infrastructure. Run it from source today.