# Provisioning Machines using MCPs

DevFeed: [Provisioning Machines using MCPs](<https://devfeed.tech/articles/provisioning-machines-using-mcps-1710.md>)

Original publisher: [Read original article](<https://fly.io/blog/mcp-provisioning/>)

Published: 2025-05-07T00:00:00Z

Content type: opinion

Language: en

Sources: [The Fly Blog](<https://devfeed.tech/sources/the-fly-blog.md>)

Topics: [Provisioning](<https://devfeed.tech/topics/provisioning.md>), [Model Context Protocol](<https://devfeed.tech/topics/model-context-protocol.md>), [fly.io](<https://devfeed.tech/topics/fly-io.md>), [fly](<https://devfeed.tech/topics/fly.md>), [Claude](<https://devfeed.tech/topics/claude.md>), [cursor](<https://devfeed.tech/topics/cursor.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [cdn](<https://devfeed.tech/tags/cdn.md>), [claude](<https://devfeed.tech/tags/claude.md>), [close-to-users](<https://devfeed.tech/tags/close-to-users.md>), [copilot](<https://devfeed.tech/tags/copilot.md>), [cursor](<https://devfeed.tech/tags/cursor.md>), [deploy-app-servers](<https://devfeed.tech/tags/deploy-app-servers.md>), [docker](<https://devfeed.tech/tags/docker.md>), [elixir](<https://devfeed.tech/tags/elixir.md>), [fly](<https://devfeed.tech/tags/fly.md>), [fly-io](<https://devfeed.tech/tags/fly-io.md>), [github](<https://devfeed.tech/tags/github.md>), [heroku-alternative](<https://devfeed.tech/tags/heroku-alternative.md>), [heroku-competitor](<https://devfeed.tech/tags/heroku-competitor.md>), [hosting](<https://devfeed.tech/tags/hosting.md>), [i](<https://devfeed.tech/tags/i.md>), [mcps](<https://devfeed.tech/tags/mcps.md>), [networking](<https://devfeed.tech/tags/networking.md>), [postgresql-clusters](<https://devfeed.tech/tags/postgresql-clusters.md>), [provisioning](<https://devfeed.tech/tags/provisioning.md>), [servers](<https://devfeed.tech/tags/servers.md>), [terraform](<https://devfeed.tech/tags/terraform.md>)

## AI overview

The author describes using MCP with Claude to create and manage Fly.io volumes, including deleting an unattached volume. The article argues that connecting LLMs to infrastructure tools can make application resource management more intuitive than using APIs, CLIs, or dashboards.

## Source excerpt

Today's state of the art is K8S, Terraform, web based UIs, and CLIs. Those days are numbered. On Monday, I created my first fly volume using an MCP. For those who don't know what MCPs are, they are how you attach tools to LLMs like Claude or Cursor. I added support for fly volume create to fly mcp server, and it worked the first time. A few hours later, and with the assistance of GitHub Copilot, i added support for all fly volumes commands. This movie summary is from When Worlds Collide, by Nalaka Gunawardene I'm reminded of the memorable scene in the film Star Trek IV: The Voyage Home (1986). Chief Engineer Scotty, having time-travelled 200 years back to late 20th century San Francisco with his crew mates, encounters an early Personal Computer (PC). Sitting in front of it, he addresses the machine affably as "Computer!" Nothing happens. Scotty repeats himself; still no response. He doesn't realise that voice recognition capability hadn't arrived yet. Exasperated, he picks up the mouse and speaks into it: "Hello, computer?" The computer's owner offers helpful advice: "Just use the keyboard." Scotty looks astonished. "A keyboard?" he asks, and adds in a sarcastic tone: "How quaint!" A while later, I asked for a list of volumes for an existing app, and Claude noted that I had a few volumes that weren't attached to any machines. So I asked it to delete the oldest unattached volume, and it did so. Then it occurred to me to do it again; this time I captured the screen: A few notes: I could have written a program using the machines API, but that would have required some effort. I could have used flyctl directly, but to be honest, I would have had to use the documentation and a bit of copy/pasting of arguments. I could have navigated to a list of volumes for this application in the Fly.io dashboard, but there currently isn't any way to sort the list or delete a volume. Had those been in place, that would have been a reasonable alternative if that was something I was active