# Fly.io Extended MCP

> Fly.io Extended MCP connects your AI client directly to your cloud infrastructure. Provision apps, control machine lifecycles (start, stop, suspend), manage persistent volumes, and handle network certificates all from natural language commands.

## Overview
- **Category:** ship-it
- **Price:** Free
- **Tags:** fly-io, cloud-computing, infrastructure-as-code, paas, serverless-machines

## Description

Need to change something on your Fly.io setup? Instead of logging into a dashboard or running complex CLI scripts, you talk to your AI agent. This MCP gives your client full access to orchestrate global cloud resources through plain conversation. You can create new applications, scale up machines by changing their state, and even provision and expand storage volumes for your data. It handles everything from managing custom network certificates to requesting OpenID Connect tokens for secure identity. If you're building complex systems, this kind of integrated control is a game changer. Vinkius makes connecting all these services simple; just subscribe and get started working with your global deployment stack.

## Tools

### check_certificate
Triggers a DNS validation check to confirm a certificate's status.

### create_acme_certificate
Requests a new, valid Let's Encrypt SSL/TLS certificate for an application.

### create_app
Creates and initializes a brand-new Fly.io application within your account.

### create_custom_certificate
Imports a certificate using its own PEM file, useful for internal services.

### create_lease
Creates temporary access leases for specific machines to manage resource usage.

### create_machine
Builds and deploys a new Fly machine instance using a specified configuration image.

### create_volume
Allocates and initializes a brand-new, persistent storage volume for your app.

### delete_app
Permanently removes an entire Fly application from your account.

### delete_certificate
Removes both the hostname and the associated digital certificate records.

### delete_machine
Deletes a specific machine instance, taking it out of service entirely.

### delete_volume
Permanently deletes an allocated storage volume and its data.

### extend_volume
Increases the total available size of an existing persistent storage volume.

### get_app
Retrieves all current operational details for a specific Fly application.

### get_certificate
Fetches detailed information about an existing certificate.

### get_machine
Retrieves the current status and configuration details for a specific machine.

### get_volume
Provides detailed metrics and metadata about an existing storage volume.

### list_apps
Lists all applications currently deployed under your account namespace.

### list_certificates
Retrieves a list of every certificate tied to a specific application.

### list_machines
Lists all running and suspended machine instances within an app.

### list_volume_snapshots
Shows you available snapshots of your persistent volumes for backup/rollback purposes.

### list_volumes
Retrieves a list of all storage volumes attached to an application.

### release_lease
Releases temporary access leases, freeing up allocated machine resources.

### request_oidc_token
Generates a secure OpenID Connect token needed for workload authentication.

### start_machine
Initiates the startup sequence, bringing a suspended or stopped machine back online.

### stop_machine
Gracefully stops a running machine, preserving its current state for later restart.

### suspend_machine
Temporarily suspends a machine to save compute resources without losing its configuration.

### update_machine
Modifies the core configuration parameters of an existing machine instance.

### wait_machine
Pauses execution until a specified machine reaches a desired operational state (e.g., running).

## Prompt Examples

**Prompt:** 
```
List all my Fly.io apps in the 'personal' organization.
```

**Response:** 
```
I've retrieved your apps for the 'personal' organization. You have 3 active apps: 'my-api-server', 'web-frontend-prod', and 'db-primary'. Would you like to see the machines running in any of these?
```

**Prompt:** 
```
Start the machine with ID 9185210b6e4d8p in the app 'my-api-server'.
```

**Response:** 
```
Starting machine 918... The request was successful. The machine is now transitioning to the 'started' state.
```

**Prompt:** 
```
Create a 10GB volume named 'data_vol' in the 'ams' region for app 'db-primary'.
```

**Response:** 
```
I've initiated the creation of a 10GB volume 'data_vol' in Amsterdam (ams) for 'db-primary'. The volume ID is vol_z9rj5k2m1l. It is now ready to be attached to a machine.
```

## Capabilities

### Managing Applications
Create, list, or delete entire applications hosted on Fly.io.

### Controlling Machine States
Start, stop, suspend, update, and wait for specific machines to reach a desired operational state.

### Handling Storage Volumes
Create new volumes, list existing ones, or increase the size of current persistent storage.

### Securing Deployments
Request Let's Encrypt certificates or import custom PEM files for your services.

### Identity and Access
Get OpenID Connect tokens to verify secure workload identities across your infrastructure.

## Use Cases

### Debugging a production slowdown
An SRE notices high latency. Instead of SSHing into the server or clicking through monitoring tools, they ask their agent to run get_machine and list_volumes for that app. The response immediately provides detailed metadata on machine health and volume attachment points.

### Rolling back a bad deployment
A full-stack developer pushes faulty code. They realize they need an older version of the data. They use list_volume_snapshots to see available backups, then initiate a restore process by calling create_volume with the snapshot ID.

### Scaling for peak traffic
The DevOps team anticipates a massive user influx. Instead of manually increasing resource limits, they instruct their agent to use update_machine on multiple machines and then call start_machine across all nodes to ensure capacity is ready.

### Decommissioning an old service
The team retires a legacy microservice. They don't want any remnants left behind, so they use delete_app first to wipe the app, followed by list_volumes and delete_volume for all associated storage.

## Benefits

- Speed up incident response. Instead of manually checking multiple dashboards, you can ask your agent to retrieve the status and metadata for a specific machine using get_machine or list_machines. This means immediate visibility into critical systems.
- Simplify resource provisioning. Need more space? Use extend_volume to increase storage size on a volume without logging into a separate console. Then, use create_volume if you're starting fresh.
- Manage the full lifecycle in one place. You can delete an entire app with delete_app, or granularly remove just a machine using delete_machine and then clear up related volumes.
- Secure your service identity fast. When rolling out new services, use create_acme_certificate to automatically get necessary SSL credentials, avoiding manual certificate renewal steps entirely.
- Maintain operational continuity. You can suspend an expensive development environment with suspend_machine when no one's using it, and then easily bring it back online later with start_machine.

## How It Works

The bottom line is you write what you need done; this MCP handles the complex, multi-step process of talking to your cloud provider's APIs.

1. Subscribe to this MCP on Vinkius and provide your Fly.io Personal Access Token.
2. Your AI client authenticates with the token, gaining full access to the global API endpoints.
3. You issue a natural language command (e.g., 'Stop the web frontend machine'). The agent translates that request into the necessary cloud operations.

## Frequently Asked Questions

**How do I get a new SSL certificate using Fly.io Extended MCP?**
You use create_acme_certificate to request a fresh Let's Encrypt certificate for your application. The agent handles the validation process and attaches it automatically.

**What is the difference between stop_machine and suspend_machine with Fly.io Extended MCP?**
Stop_machine gracefully shuts down the instance, preserving its state. Suspend_machine saves compute resources entirely, which is useful if you're just pausing development work.

**Can I increase storage size using the Fly.io Extended MCP?**
Yes, use extend_volume to increase the allocated space of an existing volume without having to delete and recreate the entire data set.

**Which tool should I use if I want to see all my deployed applications?**
Use list_apps. This single command retrieves a comprehensive overview of every application currently running under your account namespace.

**Does Fly.io Extended MCP handle deleting the entire app and its data?**
Yes, delete_app removes the entire application container. Remember that you may still need to manually manage associated volumes using delete_volume for complete cleanup.