Skip to content

SYSTEM Cited by 1 source

fly mcp launch

fly mcp launch is a flyctl subcommand (shipped in flyctl v0.3.125, announced 2025-05-19) that takes an existing local / stdio-style MCP server command and one-shots it into a remote HTTP/Streamable-HTTP MCP server running as a Fly Machine, with client-config files rewritten in place, bearer-token auth configured by default on both ends, and --secret KEY=value flags piped through to the Machine's secrets. It is the canonical wiki instance of the patterns/remote-mcp-server-via-platform-launcher pattern.

Canonical invocation

From the announcement post:

fly mcp launch \
  "npx -y @modelcontextprotocol/server-slack" \
  --claude --server slack \
  --secret SLACK_BOT_TOKEN=xoxb-your-bot-token \
  --secret SLACK_TEAM_ID=T01234567

Flag anatomy:

  • Positional quoted command — the stdio MCP server invocation (here, npx -y @modelcontextprotocol/server-slack — the reference Slack MCP server). Executed inside the Fly Machine, not on the operator's workstation.
  • Client selector (--claude, --cursor, --zed, --vscode, --windsurf, --neovim) — tells fly mcp launch which MCP-client config file(s) to rewrite in place. Multiple clients can be selected in one invocation.
  • --server <name> — the name the server gets inside the client's MCP-server registry.
  • Repeated --secret KEY=value — each becomes a Fly Machine secret, visible to the MCP server process as an env var. (Source: sources/2025-05-19-flyio-launching-mcp-servers-on-flyio.)

Full option list documented at fly.io/docs/flyctl/mcp-launch/.

What it automates

  • Machine creation — provisions a Fly Machine, builds the container (or uses a prebuilt image), deploys the server.
  • Auth setup — bearer-token authentication is on by default on both the Fly Machine side (server) and the rewritten client config (client). OAuth 2.1 is available as an option for clients that need it. "By default, bearer token authentication will be set up on both the server and client." (Source: sources/2025-05-19-flyio-launching-mcp-servers-on-flyio.)
  • Secrets injection — each --secret becomes a Fly Machine secret, avoiding environment-variable leakage through the shell history or client-config JSON.
  • Client-config rewrite — the selected client's MCP-server JSON registry is updated in place, solving the client-config fragmentation problem the post leads with.
  • Fly platform knobs — auto-stop (concepts/scale-to-zero), file contents, Flycast private-network exposure, additional secrets, region, volumes, and VM sizes are all configurable from the same command. (Source: sources/2025-05-19-flyio-launching-mcp-servers-on-flyio.)

Deployment-shape flexibility

The announcement lists four shapes supported by the broader fly mcp family (not all exclusive to launch):

  • Machines-API deploy for operators who want finer control than the fly mcp launch CLI shorthand.
  • One Machine per MCP server — the default, for isolation.
  • One container or process per MCP server — for density.
  • MCP server inside your application — library-mode, for MCP exposed as part of an existing Fly.io app.

Access paths also enumerated: "HTTP Authorization, wireguard tunnels and flycast, or reverse proxies." (Source: sources/2025-05-19-flyio-launching-mcp-servers-on-flyio.)

Client coverage at launch

Six editors / agents with built-in config-rewrite support:

Client Config file the command rewrites
Claude Desktop ~/Library/Application Support/Claude/claude_desktop_config.json under the MCPServer key
Zed ~/.config/zed/settings.json under the context_servers key
Cursor, VS Code, Windsurf, Neovim OS-dependent paths; covered by the same command

"Some tools put these files in a different place depending on whether you are running on MacOS, Linux, or Windows"fly mcp launch abstracts over this. (Source: sources/2025-05-19-flyio-launching-mcp-servers-on-flyio.)

Status

Beta. The announcement explicitly says: "Be forewarned, most pages are marked as beta. But the examples provided all work. Well, there may be a bug here or there, but the examples as shown are thought to work. Maybe." Closing line: "Let's figure out the ideal ergonomics of deploying MCP servers remotely together!" The shape is being negotiated with customers. (Source: sources/2025-05-19-flyio-launching-mcp-servers-on-flyio.)

Seen in

Last updated · 200 distilled / 1,178 read