Unfortunately, Sprites Now Speak MCP
Source: Fly.io Blog
Author

- Name: Kurt Mackey
- Twitter: @mrkurt

Image by Annie Ruygt
Sprites are disposable cloud computers. They appear instantly, always include durable filesystems, and cost practically nothing when idle. They’re the best and safest place on the Internet to run agents, and we want you to create dozens of them.
Sprites are a place to run agents; the first thing you should think to do with a new Sprite is to type claude (or gemini or codex). We’ve put a lot of effort into making sure coding agents feel safe and happy when they’re on Sprites, because, to (probably) quote John von Neumann, “happy agents are productive agents.”
What’s less obvious about Sprites is that they’re great tools for agents. Want three different versions of a new feature? A test environment? An ensemble of cooperating services? It’s super handy to be able to start your prompts, “On a new Sprite, do…”.
The Sprites API is simple, discoverable, and designed for this use case. It’s just a question of how you choose to give your agent access to it. And now there’s one more way: with MCP.
We Did This Because Your Agents Suck
This feature works, but we’re less than enthusiastic about it—not as product developers, mind you, but as aesthetes. It’s a good product; we just think there’s a better way.
The Problem with MCP
In 2026, MCP is the wrong way to extend an agent’s capabilities. The emerging “right way” is to use command‑line tools and discoverable APIs.
When we plug an MCP into an agent, we fill its context with tool descriptions—many of which will never be used. All an agent really needs is a short instruction such as:
“
Use this skill whenever users want to create a new VM to run a task on, or to manage the VMs already available.”
The skill itself should handle the rest.
Why CLI‑Driven Skills Are Better
- Progressive disclosure – Capabilities are revealed only when needed.
- Subcommands & subpaths – You can expose functionality via commands like
sprite checkpointandsprite exec, or via API endpoints with clear hierarchies. - Fast learning – A good agent quickly figures out how to use these interfaces.
A Real‑World Example: Playwright
Playwright is the industry‑standard browser‑automation tool. If you ask Claude to install Playwright and Chrome, there’s a coin‑flip chance it will also set up an MCP server. When it doesn’t, Playwright still works because Claude simply writes small scripts to drive it.
The models already know how to generate these scripts without consuming a lot of context.
Context Bloat Is a Signal, Not a Feature
Cramming an agent’s context with many MCP tool descriptions signals to the model that all those tools are important. In reality, not every Sprite command matters in every setting. For example, if you’re not using network policies, you don’t need the gemini command to waste time setting them up.
Recommended Approach
- Expose functionality via CLI or API – Use clear, discoverable commands or endpoints.
- Give the agent a short, high‑level instruction – Let it decide when and how to invoke the tools.
- Allow the agent to run shell commands – This removes the need for MCP sessions in most cases.
If you’re stuck with an agent that cannot run commands, you may still need an MCP session, but most modern agents (Claude, Gemini, Codex, etc.) can handle the sprite CLI directly. Show them the CLI and let them impress you.
sprites.dev/mcp
Plug this URL into Claude Desktop (or any other agent tool that speaks MCP). After authenticating to one of your Fly.io organizations, your agent will be able to speak Sprites.
Example Prompts
-
Reproduce a bug
On a new Sprite, take this repository and reproduce this bug from issues/913, capturing logs. -
Benchmark a function
On a new Sprite, benchmark this function across 1 000 runs and summarize the results. -
Upgrade dependencies
On a new Sprite, update all the dependencies on this project to their newest versions and test that everything works. -
Compare query libraries
On 3 new Sprites, change this service to use each of these 3 query libraries, and use HTTP to test latency. -
Trace file access
On a new Sprite, run this code with bpfwatch and show me what files it touches. -
Load‑test an endpoint
On a new Sprite, run a load generator against this endpoint for 60 seconds and report the results. -
Explore a dataset
On a new Sprite, download this dataset and give me a Jupyter notebook to explore it in. -
Real‑time webhook reporting
On a new Sprite, set up a webhook receiver and render a real‑time web report of all the payloads it receives.
Why Use Sprites?
Sometimes you need a clean, cheap, disposable computer (or five of them). Sprites give you exactly that—on‑demand, isolated environments that you can spin up with a single prompt. Think of the possibilities for your projects; you’ll soon wonder how you ever managed without them.
Safety & Guardrails
We understand the concern that “robots might ruin my life.” That’s why we’ve built in robust guardrails:
- Scoped authentication – When you authenticate, you grant the agent access to one specific Fly.io organization only.
- Session limits – You can cap the number of Sprites the MCP session may create.
- Naming prefixes – Assign custom prefixes to Sprite names so you can easily identify, monitor, and terminate them.
These controls let you enjoy the power of Sprites while keeping full oversight of what they do.
Stateless Sandboxes
We’ll keep saying this until our faces turn blue: the industry is stuck on “sandboxes” as a way of letting agents run code, and sandboxes aren’t good enough anymore. What agents want is real computers, with real filesystems, connected to real networks, and there’s no technical reason not to give them some.
We designed Sprites so that you can fearlessly create whole bunches of them. They’re responsive enough to host web apps for your team, but they idle in a sleeping state where they cost virtually nothing. Everybody at Fly.io that uses them ends up with 20 or 30, just hanging around.
We think you’ll do better work when you can pull in as many computers as you need to solve problems. If it takes an MCP server for us to get you to do that, so be it.
Previous post ↓
Litestream Writable VFS