# Fly.io (flyctl) MCP server

> Manage Fly.io apps, machines, volumes, secrets, certificates and logs from your assistant through the flyctl command line.

- Listing: https://mcp.tc/i/flyio
- Connect: this is a local (stdio) server; install it on your machine (see Install). The listing link is a page, not an MCP endpoint.
- Type: local (stdio)
- Auth: OAuth sign-in
- Category: [Cloud & DevOps](https://mcp.tc/c/cloud-devops)
- Vendor: Fly.io
- Verified: yes, mcp.tc checked that this is the official server (https://mcp.tc/verify). It says who runs the server, not that it is safe.
- Homepage: <https://docs.fly.io/model-context-protocol/flyctl-server>
- Repository: <https://github.com/superfly/flyctl>

## About

Runs the MCP server built into flyctl, the Fly.io command-line tool. It lets an assistant manage Fly apps, machines, volumes, secrets, certificates and logs using the same operations flyctl provides.

It runs locally with the command fly mcp server, so flyctl must be installed. Authentication uses your existing flyctl login (fly auth login) or a FLY\_ACCESS\_TOKEN environment variable. Running fly mcp server with a client flag such as --claude, --cursor, --vscode, --windsurf or --zed writes the client configuration for you.

## What it can do

- Manage Fly apps
- Work with machines and volumes
- Manage app secrets
- Handle certificates
- Read app logs
- Write MCP client config with a single flag

## Example prompts

- "List my Fly.io apps and show the status of each."
- "Show the latest logs for my app on Fly.io."
- "Set a secret named API\_TOKEN on my Fly app."
- "List the machines and volumes for my Fly app."

## Install

### Claude Code

1. Run this in a terminal, in your project folder:

```bash
claude mcp add --transport stdio flyio -- fly mcp server
```

2. Start Claude Code and type `/mcp`. **flyio** should show as connected.

Add `--scope user` to make it available in every project.

### Claude Desktop

1. Open **Settings → Developer → Edit Config**. It opens `claude_desktop_config.json`. Add:

`claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "flyio": {
      "command": "fly",
      "args": [
        "mcp",
        "server"
      ]
    }
  }
}
```

2. Save the file and restart Claude Desktop.

The file lives in `~/Library/Application Support/Claude/` on macOS and `%APPDATA%\Claude\` on Windows.

### Cursor

[Add to Cursor](<https://cursor.com/install-mcp?name=flyio&config=eyJjb21tYW5kIjoiZmx5IiwiYXJncyI6WyJtY3AiLCJzZXJ2ZXIiXX0%3D>) (opens Cursor)

Or add it by hand to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (this project):

`mcp.json`:

```json
{
  "mcpServers": {
    "flyio": {
      "command": "fly",
      "args": [
        "mcp",
        "server"
      ]
    }
  }
}
```

### VS Code

[Install in VS Code](<https://vscode.dev/redirect/mcp/install?name=flyio&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22fly%22%2C%22args%22%3A%5B%22mcp%22%2C%22server%22%5D%7D>) (opens VS Code)

Or from a terminal:

```bash
code --add-mcp '{"name":"flyio","type":"stdio","command":"fly","args":["mcp","server"]}'
```

Or commit it to the repo in `.vscode/mcp.json`:

`.vscode/mcp.json`:

```json
{
  "servers": {
    "flyio": {
      "type": "stdio",
      "command": "fly",
      "args": [
        "mcp",
        "server"
      ]
    }
  }
}
```

### Devin Desktop

1. Add it to `~/.config/devin/mcp_config.json` (macOS and Linux) or `%APPDATA%\devin\mcp_config.json` (Windows):

`mcp_config.json`:

```json
{
  "mcpServers": {
    "flyio": {
      "command": "fly",
      "args": [
        "mcp",
        "server"
      ]
    }
  }
}
```

2. Refresh the MCP server list in Cascade.

Devin Desktop is the new name for Windsurf.

### Codex

```bash
codex mcp add flyio -- fly mcp server
```

Or edit `~/.codex/config.toml` directly:

`config.toml`:

```toml
[mcp_servers.flyio]
command = "fly"
args = ["mcp", "server"]
```

### Gemini CLI

```bash
gemini mcp add flyio fly mcp server
```

This adds it to the current project. Add `-s user` to use it everywhere.

### Any client

Most clients that start local servers accept this shape:

```json
{
  "mcpServers": {
    "flyio": {
      "command": "fly",
      "args": [
        "mcp",
        "server"
      ]
    }
  }
}
```

Zed puts servers under `context_servers` in its settings, with the same `command`, `args` and `env` fields.

## Details

- Last checked: 2026-10-03
- Listed: 2026-10-03
- Updated: 2026-10-04

---
Source: https://mcp.tc/i/flyio (mcp.tc is an independent directory, not affiliated with this server's publisher). Corrections: https://mcp.tc/report
