# Fly

Fly.io transforms containers into micro-VMs that run on hardware in 30+ regions on six continents.

- **Category:** developer tools
- **Auth:** API_KEY, OAUTH2
- **Composio Managed App Available?** No
- **Tools:** 45
- **Triggers:** 0
- **Slug:** `FLY`
- **Version:** 00000000_00

## Tools

### Add WireGuard Peer

**Slug:** `FLY_ADD_WIRE_GUARD_PEER`

Tool to add a WireGuard peer connection to a Fly.io organization for private network access. Use when setting up VPN access or private networking between your infrastructure and Fly.io.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name for the WireGuard peer |
| `pubkey` | string | Yes | The Curve25519 public key for the WireGuard peer. Must be a valid base64-encoded 32-byte public key. |
| `region` | string | No | The region to deploy the WireGuard peer. If not specified, Fly will choose automatically. |
| `network` | string | No | Network ID to attach the peer to. If not specified, uses the default organization network. |
| `organization_id` | string | Yes | The node ID of the organization to add the WireGuard peer to |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Check App Name Availability

**Slug:** `FLY_CHECK_APP_NAME_AVAILABILITY`

Tool to validate an app name for Fly.io app creation. Use when you need to check if a proposed app name is available before attempting to create a new app. Returns availability status via GraphQL query.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The app name to check for availability. Must follow Fly.io naming conventions: lowercase letters, numbers, and hyphens only. Cannot start or end with a hyphen. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Check Jobs

**Slug:** `FLY_CHECK_JOBS`

Execute GraphQL queries against the Fly.io checkJobs endpoint. Retrieves check jobs with their schedules, URLs, and configuration. Supports pagination via first/last/after/before parameters. Returns both data and errors for flexible error handling.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | Yes | The GraphQL query string to execute against the Fly.io GraphQL API. Use the checkJobs query to retrieve check jobs. The query returns a CheckJobConnection with nodes, edges, pageInfo, and totalCount fields. Available fields on CheckJob include: id, httpOptions, locations, nextRunAt, runs, schedule, and url. Supports pagination with after, before, first, and last parameters. |
| `variables` | object | No | Optional variables for the GraphQL query. Use for parameterized queries. For pagination, you can provide: first (Int), last (Int), after (String cursor), before (String cursor). Example: {'first': 10, 'after': 'cursor_value'} |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Check User Only Token

**Slug:** `FLY_CHECK_USER_ONLY_TOKEN`

Check whether the authentication token only allows user access. Returns false if the token allows organization access, true if it only allows user access.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Health Check Job

**Slug:** `FLY_CREATE_CHECK_JOB`

Tool to create a health check job for monitoring application endpoints in Fly.io. Use when you need to set up automated health monitoring for a URL from multiple geographic locations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | The URL endpoint to monitor for health checks. This should be a fully qualified URL that will be checked from multiple locations. |
| `locations` | array | Yes | List of geographic locations from which to perform health checks. Common locations include 'newyork', 'london', 'tokyo', 'sydney', 'singapore', etc. |
| `http_options` | object | Yes | HTTP configuration options for the health check, including the HTTP verb (GET/HEAD) and optional headers. |
| `organization_id` | string | Yes | Organization ID where the health check job will be created. This should be your Fly.io organization identifier. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Check Job Run

**Slug:** `FLY_CREATE_CHECK_JOB_RUN`

Triggers a run of an existing health check job on Fly.io. Use when you need to manually trigger a health check for monitoring or testing purposes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `check_job_id` | string | Yes | The ID of the check job to trigger a run for. This is the unique identifier of an existing health check job. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Delegated WireGuard Token

**Slug:** `FLY_CREATE_DELEGATED_WIRE_GUARD_TOKEN`

Tool to create a delegated WireGuard token for peer management in a Fly.io organization. Use when you need to generate a token for managing WireGuard peers with delegated access.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | The name with which to refer to the peer. Optional field for identifying the token. |
| `organization_id` | string | Yes | The node ID of the organization. This is the unique identifier for the Fly.io organization where the token will be created. |
| `client_mutation_id` | string | No | A unique identifier for the client performing the mutation. Optional field for tracking purposes. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Third-Party Configuration

**Slug:** `FLY_CREATE_THIRD_PARTY_CONFIGURATION`

Tool to create a third-party service configuration for discharging macaroon caveats. Use when you need to configure external authorization services for Fly.io token validation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Friendly name for the configuration |
| `caveats` | string | No | Base64 messagepack encoded macaroon caveats for additional restrictions |
| `location` | string | Yes | Location URL of the third-party service capable of discharging |
| `uiexLevel` | string ("DISABLED" | "OPT_IN" | "MEMBER_OPT_OUT" | "ADMIN_OPT_OUT" | "REQUIRED") | Yes | Third-party caveat level for UI session tokens |
| `customLevel` | string ("DISABLED" | "OPT_IN" | "MEMBER_OPT_OUT" | "ADMIN_OPT_OUT" | "REQUIRED") | Yes | Third-party caveat level for custom token creation |
| `flyctlLevel` | string ("DISABLED" | "OPT_IN" | "MEMBER_OPT_OUT" | "ADMIN_OPT_OUT" | "REQUIRED") | Yes | Third-party caveat level for flyctl session tokens |
| `organizationId` | string | Yes | The organization's node ID |
| `clientMutationId` | string | No | A unique identifier for the client performing the mutation |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Delegated WireGuard Token

**Slug:** `FLY_DELETE_DELEGATED_WIRE_GUARD_TOKEN`

Tool to delete a delegated WireGuard token from a Fly.io organization. Use when you need to revoke or remove an existing WireGuard token that was previously created. Either token or name must be provided to identify which token to delete.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | The name with which to refer to the token. Either this or token must be provided to identify which token to delete. |
| `token` | string | No | The raw WireGuard token to delete. Either this or name must be provided to identify which token to delete. |
| `organization_id` | string | Yes | The node ID of the organization. This is the unique identifier for the Fly.io organization that owns the token. |
| `client_mutation_id` | string | No | A unique identifier for the client performing the mutation. Optional field for tracking purposes. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Organization

**Slug:** `FLY_DELETE_ORGANIZATION`

Tool to delete a Fly.io organization and all its associated resources using the GraphQL API. Use when you need to permanently remove an organization. This operation is irreversible.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `organizationId` | string | Yes | The identifier of the organization to delete. This will permanently remove the organization and all associated resources. |
| `clientMutationId` | string | No | A unique identifier for the client performing the mutation. Used for tracking and idempotency. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Remote Builder

**Slug:** `FLY_DELETE_REMOTE_BUILDER`

Tool to delete a remote builder configuration for a Fly.io organization. Use when you need to remove the remote builder setup from an organization.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `organization_id` | string | Yes | The node ID of the organization whose remote builder configuration should be deleted |
| `client_mutation_id` | string | No | A unique identifier for the client performing the mutation |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Third Party Configuration

**Slug:** `FLY_DELETE_THIRD_PARTY_CONFIGURATION`

Tool to delete a third-party service configuration from Fly.io. Use when you need to remove an existing third-party service integration or configuration that was previously created.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `client_mutation_id` | string | No | A unique identifier for the client performing the mutation. Optional field for tracking purposes. |
| `third_party_configuration_id` | string | Yes | The node ID of the third-party configuration to delete. This is the unique identifier for the third-party service configuration. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Detach Postgres Cluster

**Slug:** `FLY_DETACH_POSTGRES_CLUSTER`

Tool to detach a Postgres cluster from a Fly.io application, revoking access credentials. Use when you need to remove database connectivity from an application.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `app_id` | string | Yes | The application ID to detach the Postgres cluster from. This is the target application that currently has Postgres attached. |
| `client_mutation_id` | string | No | A unique identifier for the client performing the mutation. Used for tracking and idempotency. |
| `postgres_cluster_app_id` | string | Yes | The Postgres cluster application ID to detach. This is the ID of the Postgres database application. |
| `postgres_cluster_attachment_id` | string | No | The Postgres attachment ID. Optional identifier for the specific attachment to remove. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Establish SSH Key

**Slug:** `FLY_ESTABLISH_SSH_KEY`

Tool to establish an SSH key for a Fly.io organization. Use when setting up SSH access for secure connections to Fly.io infrastructure.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `override` | boolean | No | Establish a key even if one is already set. Set to true to replace an existing SSH key. |
| `organization_id` | string | Yes | The node ID of the organization to establish the SSH key for |
| `client_mutation_id` | string | No | A unique identifier for the client performing the mutation |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fetch Nodes by IDs

**Slug:** `FLY_FETCH_NODES_BY_IDS`

Fetches a list of node objects from Fly.io given a list of IDs using the GraphQL nodes query. Use when you need to retrieve multiple objects by their IDs in a single request. Supports all Node interface types including Organization, App, Machine, Volume, and more.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ids` | array | Yes | A non-empty list of node IDs to fetch. Each ID should be a valid node identifier in the Fly.io system (e.g., organization IDs, app IDs, machine IDs). The query will return node objects for all valid IDs provided. |
| `query_fields` | string | No | Optional GraphQL fragment to specify which fields to return for each node type. If not provided, returns only id and __typename. Example: '... on Organization { name slug } ... on App { name status }' |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Add-On

**Slug:** `FLY_GET_ADD_ON`

Tool to find a Fly.io add-on by ID, name, or provider. Use when you need to retrieve details about a specific add-on. Returns add-on information including status, organization, region, and access URLs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | The ID of the add-on to find. Provide either id, name, or both to identify the add-on. |
| `name` | string | No | The name of the add-on to find. Provide either id, name, or both to identify the add-on. |
| `provider` | string | No | The provider of the add-on (optional filter). Common providers include 'upstash', 'tigris', etc. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Add-On Provider

**Slug:** `FLY_GET_ADD_ON_PROVIDER`

Tool to query information about a specific Fly.io add-on provider (extension) by name. Returns provider details including provisioning settings, terms of service, and configuration options.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the add-on provider to query (e.g., 'tigris', 'sentry', 'arcjet', 'mysql', 'supabase', 'upstash_vector', 'wafris', 'upstash_redis') |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get app details

**Slug:** `FLY_GET_APP_DETAILS`

Tool to retrieve detailed information about a specific Fly.io application. Use when you need to get app details including certificates and configuration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The application name or ID to retrieve details for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Certificate

**Slug:** `FLY_GET_CERTIFICATE`

Tool to retrieve a certificate by its ID from Fly.io. Use when you need to get details about a specific certificate including hostname, creation date, and configuration status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `certificate_id` | string | Yes | The unique identifier of the certificate to retrieve. This is the certificate ID in Fly.io system. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Current Token Info

**Slug:** `FLY_GET_CURRENT_TOKEN_INFO`

Tool to get information about the current authentication token. Use when you need to retrieve details about the token being used for API authentication, including organizations, apps, and whether the token is from a user or machine.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Latest Image Details

**Slug:** `FLY_GET_LATEST_IMAGE_DETAILS`

Tool to retrieve the latest available tag details for a given image repository from Fly.io's registry. Use when you need to get digest, registry, repository, tag, and version information for a container image.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `image` | string | Yes | Image reference in repository/name:tag format (e.g., 'flyio/postgres:15' or 'registry.fly.io/myapp:latest'). Use images from Fly.io's registry for best results. |
| `fly_version` | string | No | Fly version to use for tag resolution. Optional parameter to specify a particular Fly.io version for resolving the image tag. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Latest Image Tag

**Slug:** `FLY_GET_LATEST_IMAGE_TAG`

Tool to retrieve the latest available image tag for a Fly.io Docker repository. Use when you need to find the most recent version of a Fly.io image.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `repository` | string | Yes | The Docker image repository name (e.g., 'flyio/postgres', 'flyio/hellofly'). This should be the full repository path. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Machine

**Slug:** `FLY_GET_MACHINE`

Tool to get a single machine by ID from Fly.io. Use when you need to retrieve details about a specific machine instance.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `machineId` | string | Yes | The unique identifier of the machine to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Nearest Region

**Slug:** `FLY_GET_NEAREST_REGION`

Tool to retrieve the nearest Fly.io region to the requesting client based on network location. Use when you need to determine which Fly.io region has the lowest latency from the current location.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Node by ID

**Slug:** `FLY_GET_NODE`

Tool to fetch an object by its globally unique ID using Fly.io's GraphQL node query. Returns a Node interface object with id and __typename fields. Use when you need to retrieve any Fly.io object by its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The globally unique ID of the object to fetch. This ID uniquely identifies any object in the Fly.io system (e.g., Organization, App, Machine, Volume, etc.). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Organization

**Slug:** `FLY_GET_ORGANIZATION`

Tool to find a Fly.io organization by slug using the GraphQL API. Use when you need to retrieve organization details including ID, name and slug.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `slug` | string | Yes | The organization slug to look up. This is a human-readable identifier for the Fly.io organization (e.g., 'personal', 'my-org'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Personal Organization

**Slug:** `FLY_GET_PERSONAL_ORGANIZATION`

Tool to retrieve the user's personal organization details from Fly.io. Use when you need to check credit balance, saved payment methods, certificates, or WireGuard peer information.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Placements

**Slug:** `FLY_GET_PLACEMENTS`

Tool to get placement recommendations for Machines in Fly.io regions. Use when you need to determine optimal regions for deploying machines based on resource requirements, volume constraints, and organizational limits.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `count` | integer | No | Number of machines to simulate placement. Defaults to 0, which returns the org-specific limit for each region. |
| `region` | string | No | Region expression for placement as a comma-delimited set of regions or aliases. Defaults to '[region],any', to prefer the API endpoint's local region with any other region as fallback. |
| `compute` | object | No | Resource requirements for the Machine to simulate. |
| `weights` | object | No | Optional weights to override default placement preferences. Higher values indicate stronger preference. |
| `org_slug` | string | Yes | Organization slug identifier (e.g., 'personal' for personal account or your org name). |
| `volume_name` | string | No | Name of an existing volume to consider in placement. |
| `volume_size_bytes` | integer | No | Size of volume in bytes to consider in placement. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Platform Information

**Slug:** `FLY_GET_PLATFORM_INFO`

Tool to retrieve Fly.io platform information including available regions, VM sizes, and flyctl version. Use when you need infrastructure-level details about the Fly.io platform.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Products and Pricing

**Slug:** `FLY_GET_PRODUCTS`

Tool to retrieve Fly.io product and price information via GraphQL. Use when you need to fetch product catalog, pricing tiers, or billing information.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Regions

**Slug:** `FLY_GET_REGIONS`

Tool to get the list of available Fly.io regions with optional filtering. Use when you need to discover which regions are available for deploying machines, or to filter regions by specific resource requirements like CPU, memory, or GPU.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `cpus` | integer | No | Guest CPU count. Filter regions by CPU count availability. |
| `gpus` | integer | No | Guest GPU count. Filter regions by GPU availability. |
| `size` | string | No | Guest machine size preset. Default is performance-1x. Use this to filter regions by machine size availability. |
| `cpu_kind` | string | No | Guest CPU kind (e.g., 'shared', 'performance'). Filter regions by CPU type availability. |
| `gpu_kind` | string | No | Guest GPU kind (e.g., 'a100-pcie-40gb', 'a100-sxm4-80gb'). Filter regions by GPU type availability. |
| `memory_mb` | integer | No | Guest memory in megabytes. Filter regions by memory availability. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Viewer Info

**Slug:** `FLY_GET_VIEWER_INFO`

Tool to retrieve the authenticated user's account information from Fly.io. Use when you need to get the current user's profile details, including avatar, email, creation date, and feature flags.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | No | GraphQL query string to retrieve viewer information. Default query fetches avatarUrl, createdAt, email, and featureFlags. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Issue Certificate

**Slug:** `FLY_ISSUE_CERTIFICATE`

Tool to issue an SSH certificate for accessing Fly.io infrastructure. Returns an SSH certificate in OpenSSH format. Use when you need to authenticate SSH access to Fly.io machines or apps.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `app_names` | array | No | The names of the apps this certificate will be limited to accessing |
| `principals` | array | No | SSH principals for certificate (e.g. ['fly', 'root']) |
| `public_key` | string | No | The openssh-formatted ED25519 public key to issue the certificate for |
| `valid_hours` | integer | No | Hours for which certificate will be valid |
| `organization_id` | string | Yes | The node ID of the organization |
| `client_mutation_id` | string | No | Standard mutation identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Add-On Plans

**Slug:** `FLY_LIST_ADD_ON_PLANS`

Tool to list available add-on service plans from Fly.io. Use when you need to discover pricing, features, and resource limits for Fly.io add-on services. Supports cursor-based pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `last` | integer | No | Number of items to return from the end. Cannot be used with 'first'. |
| `after` | string | No | Cursor for forward pagination. Returns items after this cursor. |
| `first` | integer | No | Number of items to return from the beginning. Cannot be used with 'last'. |
| `before` | string | No | Cursor for backward pagination. Returns items before this cursor. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Add-Ons

**Slug:** `FLY_LIST_ADD_ONS`

Tool to list add-ons associated with an organization in Fly.io. Use when you need to retrieve add-ons for apps in an organization. Supports querying personal organization or specific organizations by slug. Returns comprehensive add-on details including status, creation date, and configuration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | No | GraphQL query string to retrieve add-ons. Default query fetches add-ons for all apps in the personal organization. You can customize the query to fetch specific fields from the AddOn type (id, name, status, createdAt, updatedAt, addOnPlanName, hostname, publicUrl, environment, metadata, options, etc.) or filter by organization. |
| `variables` | object | No | Variables for the GraphQL query (optional). Use this to pass dynamic values like organization slugs, pagination parameters (first, after, before, last), or filters (type: AddOnType). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Apps

**Slug:** `FLY_LIST_APPS`

Tool to list all Fly Apps in an organization. Use when you need to retrieve apps for a specific organization using its slug.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `app_role` | string | No | Filter apps by role |
| `org_slug` | string | Yes | The organization slug, or 'personal', to filter apps |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Apps via GraphQL

**Slug:** `FLY_LIST_APPS_GRAPHQL`

List all Fly.io applications with details including volumes, services, and VMs using GraphQL. Use when you need to retrieve a comprehensive overview of all apps in your Fly.io organization.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include_vms` | boolean | No | Include VM count information for each app |
| `include_volumes` | boolean | No | Include volume information for each app |
| `include_services` | boolean | No | Include service information for each app |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Check Locations

**Slug:** `FLY_LIST_CHECK_LOCATIONS`

Retrieve all available Fly.io health check locations. Returns a comprehensive list of global locations where health checks can be performed, including geographic details and coordinates. Use when you need to determine available monitoring points for setting up health checks.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Machines

**Slug:** `FLY_LIST_MACHINES`

Tool to list Fly.io machines using GraphQL API with pagination support. Use when you need to retrieve information about deployed machines including their state, region, and creation time.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `last` | integer | No | Returns the last n machines (backward pagination). Cannot be used with 'first'. |
| `after` | string | No | Cursor for forward pagination - returns machines after this cursor. Use with 'first'. |
| `first` | integer | No | Returns the first n machines (forward pagination). Cannot be used with 'last'. |
| `before` | string | No | Cursor for backward pagination - returns machines before this cursor. Use with 'last'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Organization Machines

**Slug:** `FLY_LIST_ORG_MACHINES`

Tool to list all Machines across all apps in a Fly organization. Use when you need to retrieve machines for monitoring, management, or inventory purposes. Supports filtering by region, state, and time ranges with pagination for large result sets.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | The number of machines to fetch (max of 1000). If omitted, this is set to 500 by default |
| `state` | string | No | Comma separated list of states to filter. Valid states: created, started, stopped, suspended |
| `cursor` | string | No | Pagination cursor from previous response (takes precedence over updated_after) |
| `region` | string | No | Filter machines by region |
| `org_slug` | string | Yes | Fly Organization Slug |
| `updated_after` | string | No | Only return machines updated after this time. Timestamp must be in the RFC 3339 format |
| `include_deleted` | boolean | No | Include deleted machines in the response |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove WireGuard Peer

**Slug:** `FLY_REMOVE_WIRE_GUARD_PEER`

Tool to remove a WireGuard peer connection from a Fly.io organization. Use when you need to delete or revoke an existing WireGuard peer from your organization's network.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the WireGuard peer to remove |
| `organization_id` | string | Yes | The node ID of the organization to remove the WireGuard peer from |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Set Apps V2 Default

**Slug:** `FLY_SET_APPS_V2_DEFAULT_ON`

Tool to configure whether new apps in an organization use Apps V2 by default on Fly.io. Use when you need to enable or disable Apps V2 as the default for new applications in a specific organization.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `default_on` | boolean | Yes | Whether or not new apps in this org use Apps V2 by default |
| `organization_slug` | string | Yes | The slug of the organization to configure |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Third-Party Configuration

**Slug:** `FLY_UPDATE_THIRD_PARTY_CONFIGURATION`

Tool to update an existing third-party service configuration for discharging macaroon caveats. Use when you need to modify settings of external authorization services for Fly.io token validation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Friendly name for this configuration |
| `caveats` | string | No | Base64 messagepack encoded macaroon caveats for additional restrictions |
| `location` | string | No | Location URL of the third-party service capable of discharging |
| `uiexLevel` | string ("DISABLED" | "OPT_IN" | "MEMBER_OPT_OUT" | "ADMIN_OPT_OUT" | "REQUIRED") | No | Authorization level for third-party caveat configuration. |
| `customLevel` | string ("DISABLED" | "OPT_IN" | "MEMBER_OPT_OUT" | "ADMIN_OPT_OUT" | "REQUIRED") | No | Authorization level for third-party caveat configuration. |
| `flyctlLevel` | string ("DISABLED" | "OPT_IN" | "MEMBER_OPT_OUT" | "ADMIN_OPT_OUT" | "REQUIRED") | No | Authorization level for third-party caveat configuration. |
| `clientMutationId` | string | No | A unique identifier for the client performing the mutation |
| `thirdPartyConfigurationId` | string | Yes | The node ID of the configuration to update |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Validate Config

**Slug:** `FLY_VALIDATE_CONFIG`

Tool to validate a Fly.io app configuration. Use when you need to check if a fly.toml configuration is valid before deploying or updating an app.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `definition` | object | Yes | A JSON object representing the fly.toml configuration to validate. Can be an empty object {} or contain fly.toml configuration fields like app, build, env, services, etc. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Validate WireGuard Peers

**Slug:** `FLY_VALIDATE_WIRE_GUARD_PEERS`

Tool to validate WireGuard peer IP addresses in a Fly.io organization. Use when you need to verify which peer IPs are valid or invalid before establishing VPN connections.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `peer_ips` | array | Yes | Array of WireGuard peer IP addresses to validate. These are typically IPv6 addresses in the fdaa: range used by Fly.io's internal network. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
