MCP server · Engineering and operations

Fly.io MCP server

Fly.io in any MCP client, through Memtro: Fly.io does not publish this server. Memtro's Fly.io connector reads Fly.io through its API with the credentials you connect, and one endpoint hands those tools, every other system you connect and Memtro's memory tools to Claude Code, Cursor, Claude Desktop or anything else that speaks Streamable HTTP, as you.

What the model can do

Fly.io: the organisation's apps and their status, the Machines that run them (state, region, image, size), a Machine's recent events (starts, stops, exits, restarts) and an app's volumes and how full they are. Can start, stop, restart, suspend, signal, cordon, uncordon or destroy a Machine, set its metadata, create or destroy an app, and snapshot or grow a volume.

Reads

  • flyio_list_appsApps in the connected Fly.io organisation: name, status, how many Machines and volumes each has.
  • flyio_list_machinesFly Machines with state (started, stopped, suspended…), region, process group, image, CPUs and memory, and when created and last updated.
  • flyio_list_machine_eventsRecent events of one Fly Machine, newest as Fly returns them: launch, start, stop, exit, restart, update, with status and source (user or flyd).
  • flyio_list_volumesVolumes of one Fly app: name, state, region, size in GB and how much is used, which Machine it is attached to, whether it is encrypted and backed up…

Acts, when you ask

These change something in Fly.io. The model is told to use them only when you ask for exactly that, and each one is granted by name: per team on a shared connection, by the owner on a personal one.

  • flyio_start_machineStarts a stopped or suspended Fly Machine.
  • flyio_stop_machineStops a running Fly Machine.
  • flyio_restart_machineRestarts a Fly Machine.
  • flyio_suspend_machineSuspends a Fly Machine: its memory is snapshotted and it stops, to resume quickly with flyio_start_machine.
  • flyio_signal_machineSends a Unix signal to a Fly Machine's main process, such as SIGHUP to reload configuration.
  • flyio_cordon_machineCordons a Fly Machine: its services are disabled so Fly's proxy stops routing requests to it, while it keeps running.
  • flyio_uncordon_machineUncordons a Fly Machine so Fly's proxy routes requests to it again.
  • flyio_delete_machinePermanently destroys a Fly Machine and its root filesystem (attached volumes are kept).
  • flyio_set_machine_metadataSets one metadata key on a Fly Machine, replacing its value if the key exists.
  • flyio_create_appCreates an empty app in the connected Fly.io organisation.
  • flyio_delete_appPermanently destroys a Fly app with all its Machines, volumes, IPs and certificates.
  • flyio_create_volume_snapshotTakes a snapshot of a Fly volume now.
  • flyio_extend_volumeGrows a Fly volume to a larger size in GB.

Connect it

First connect Fly.io on Dashboard → Connections, then add Memtro to your client once. The Fly.io tools appear alongside the tools of everything else you have connected; nothing is configured per connector.

Claude Code

The Memtro plugin registers the server and a skill for when to use it; the tools are then available in every session.

claude plugin marketplace add memtro-org/claude-memtro
claude plugin install memtro@memtro --config api_key=sk-memtro-...

Cursor

Add the server to .cursor/mcp.json in the project, or to the global file under ~/.cursor/.

{
  "mcpServers": {
    "memtro": {
      "url": "https://platform.memtro.com/api/mcp",
      "headers": {
        "Authorization": "Bearer sk-memtro-..."
      }
    }
  }
}

Claude Desktop

Create a personal API key on Dashboard → Profile → API keys. In Claude Desktop add an MCP server of type HTTP with URL https://platform.memtro.com/api/mcp and the header Authorization: Bearer sk-memtro-…

OpenCode

A remote server in opencode.json.

{
  "mcp": {
    "memtro": {
      "type": "remote",
      "url": "https://platform.memtro.com/api/mcp",
      "headers": {
        "Authorization": "Bearer sk-memtro-..."
      }
    }
  }
}

Pi

One command: pi mcp add memtro --url https://platform.memtro.com/api/mcp --bearer-token-env-var MEMTRO_API_KEY. Tools arrive as mcp__memtro__*. The pi-memtro extension registers it for you, alongside Memtro as the model.

Any other client

Add an MCP server of type HTTP (Streamable HTTP, stateless) at https://platform.memtro.com/api/mcp with the header Authorization: Bearer sk-memtro-.... Codex, Zed, Windsurf, Cline and the SDKs all take a remote server this way.

Who may use it

The key identifies the person, and the server offers that person the tools they may use everywhere else in Memtro. A shared Fly.io connection is used by the teams an administrator granted it to, tool by tool, on the Permissions page; a personal connection is used by its owner alone, and its tools that act stay off until the owner allows them. See Teams and permissions and Connectors.

Ask it like this

  • › Why does the api app's Machine keep restarting?
  • › Which Machines are stopped right now?
  • › How full are the volumes on the postgres app?
  • › Restart the stuck Machine on the checkout app
  • › Snapshot the postgres volume before tonight's migration

Questions

Is this an official Fly.io MCP server?
No. It is Memtro's MCP server with Memtro's Fly.io connector behind it: the connector reads Fly.io through its API with the credentials you connect on Dashboard → Connections, and Fly.io publishes nothing here. The same endpoint carries every other system you connect and Memtro's memory tools.
What does it cost?
Nothing on top of Memtro. One price per organisation by its number of users, from $50 a month for up to 10 users after a 7-day free trial, with every connector, the MCP server, jobs and memory included. You bring your own model keys.
Can it change anything in Fly.io?
Only when you ask, and only what it has been granted: start, stop, restart or suspend a Fly Machine; send a signal to a Machine's main process; cordon or uncordon a Machine (take it out of or back into traffic); destroy a Machine (permanent); set a metadata key on a Machine; create an app in the organisation; destroy an app (permanent); snapshot a volume; grow a volume (cannot be shrunk). Every other tool reads, searches or lists. An administrator grants each acting tool by name per team, and a personal connection acts only after its owner allows it.
Which clients work?
Any MCP client that speaks Streamable HTTP: Claude Code, Cursor, Claude Desktop, OpenCode, Codex, Zed, Windsurf, Cline and the Anthropic and OpenAI SDKs. There is no local process to run; the server is remote and authenticated with your key.

Other MCP servers · Engineering and operations

Where agents remember your company

Sign in, add a provider key, create an API key and point your tools at Memtro. It takes about five minutes.

7-day free trial · card on file, nothing charged until it ends · cancel any time