Fly integrationFly logo

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.

What your agents can do

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. 1

    Your user grants Fly access once (OAuth) — the token lands in the vault.

  2. 2

    Your agent calls a tool over MCP or the typed API; Open Connector injects the credential server-side.

  3. 3

    Every routed call appends a hash-chained audit record — nothing leaves your infra.

Tools & triggers

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
FAQ

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.