---
title: "Launching MCP Servers on Fly.io"
description: "The post presents Fly.io’s approach to simplifying remote deployment of Model Context Protocol (MCP) servers, which otherwise require client-specific JSON configuration, local processes or HTTP hosting, and potentially cumbersome OAuth 2.1 setup. It uses the Slack MCP Server as a demonstration, converting its npx command into a fly mcp launch invocation with --claude, --server, and secret flags for the bot token and team ID. Running this requires flyctl v0.3.125 or later, and the command supports Fly.io options including auto-stop, file contents, flycast, regions, volumes, secrets, and VM sizes. Built-in configuration support covers Claude, Cursor, Neovim, VS Code, Windsurf, and Zed, with bearer-token authentication enabled by default on both server and client. The broader beta support includes multiple transports, Machines API deployment, separate Machines or containers, in-application deployment, and HTTP Authorization, WireGuard tunnels, flycast, or reverse proxies."
---

# Launching MCP Servers on Fly.io

[Fly.io](https://yomu.fyi/company/fly-io) · May 19, 2025

**Type:** Announcement

## Summary

The post presents Fly.io’s approach to simplifying remote deployment of Model Context Protocol (MCP) servers, which otherwise require client-specific JSON configuration, local processes or HTTP hosting, and potentially cumbersome OAuth 2.1 setup. It uses the Slack MCP Server as a demonstration, converting its npx command into a fly mcp launch invocation with --claude, --server, and secret flags for the bot token and team ID. Running this requires flyctl v0.3.125 or later, and the command supports Fly.io options including auto-stop, file contents, flycast, regions, volumes, secrets, and VM sizes. Built-in configuration support covers Claude, Cursor, Neovim, VS Code, Windsurf, and Zed, with bearer-token authentication enabled by default on both server and client. The broader beta support includes multiple transports, Machines API deployment, separate Machines or containers, in-application deployment, and HTTP Authorization, WireGuard tunnels, flycast, or reverse proxies.

## Context

MCP servers combine useful, universal interfaces with fragmented client-specific JSON configuration, a choice between local processes and remote HTTP servers, and security concerns. Local servers can access activity on the machine, while remote servers may require OAuth 2.1 setup that is not suited to casual use.

## Approach / What changed

Fly.io introduces the fly mcp launch command, which deploys an MCP server remotely from its command, updates selected client configuration files, names the server, and provisions secrets. The tooling supports multiple clients, bearer-token authentication, Fly.io deployment options, transports, Machines API workflows, separate or embedded deployments, and several access methods.

## Takeaways

- fly mcp launch can turn the Slack MCP Server command npx -y @modelcontextprotocol/server-slack into a remote deployment with Slack bot-token and team-ID secrets.
- Built-in client support includes Claude, Cursor, Neovim, VS Code, Windsurf, and Zed; multiple clients and configuration files can be selected.
- The available support is largely marked beta and includes deployment through the command line or Machines API, plus HTTP Authorization, WireGuard tunnels, flycast, and reverse proxies.

**Tags:** [Fly.io](https://yomu.fyi/topic/fly-io), [MCP](https://yomu.fyi/topic/mcp)

- Source: [Fly.io](https://fly.io/blog/mcp-launch)
- Source URL: https://fly.io/blog/mcp-launch
- Ingested by Yomu: 2026-09-02T11:56:53.367Z

[Read original post](https://fly.io/blog/mcp-launch)
