Fly Io
개요
제작자가 쓴 설명(영어 원문)
MCP server for managing Fly.io machines, apps, logs, and Docker images.
할 수 있는 일
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
- 연결 방식: 내 컴퓨터에서 실행
- 전송 방식: stdio
- 카테고리: 개발자 도구
- 입력해야 할 값: FLY_IO_API_TOKEN
설치
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
검사 3/3 통과 · 내 컴퓨터에서 실행돼요
먼저: 어떤 AI를 쓰시나요?
쓰는 앱을 고르면 아래에 단계가 나옵니다.
Claude에 연결할 수 있지만 먼저 준비가 필요해요
Fly Io 키가 필요해요 (제작자 사이트에서 가입, 비용이 들 수 있음) · 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만) · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요
컴퓨터용 Claude 앱 설정 파일 열기
SettingsDeveloperEdit Config
이 설정을 붙여 넣고 저장
{ "mcpServers": { "fly-io": { "command": "npx", "args": [ "-y", "fly-io-mcp-server" ], "env": { "FLY_IO_API_TOKEN": "your-value", "FLY_IO_APP_NAME": "your-value", "ENABLED_TOOLGROUPS": "your-value", "SKIP_HEALTH_CHECKS": "your-value", "DISABLE_DOCKER_CLI_TOOLS": "your-value" } } } }키는 앱 입력란에만 붙여 넣고, 채팅에 붙이거나 다른 사람에게 보내지 마세요
Claude를 끄고 다시 열기
해 보기
Fly Io을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Claude가 Fly Io을 쓰고 있다고 하거나 답에 Fly Io 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
ChatGPT는 아직 Fly Io에 연결할 수 없어요
Fly Io는 내 컴퓨터에 설치해서 쓰지만 ChatGPT는 웹에서 도는 서버만 연결할 수 있어요
대신 이렇게 할 수 있어요
A · Fly Io에 연결되는 앱 쓰기
- Fly Io 키가 필요해요 (제작자 사이트에서 가입, 비용이 들 수 있음) · 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만) · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요
- Fly Io 키가 필요해요 (제작자 사이트에서 가입, 비용이 들 수 있음) · 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)
- Fly Io 키가 필요해요 (제작자 사이트에서 가입, 비용이 들 수 있음) · 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)
- Fly Io 키가 필요해요 (제작자 사이트에서 가입, 비용이 들 수 있음) · 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)
B · 개발자 도구에서 ChatGPT에 연결되는 다른 서버
같은 분류에서 많이 쓰는 것 중 키 없이 주소만으로 연결되는 것을 골랐어요
- Sentry✓ ChatGPT
- Front-End Checklist✓ ChatGPT
- Compiler Explorer✓ ChatGPT
Claude Code에 연결할 수 있지만 먼저 준비가 필요해요
Fly Io 키가 필요해요 (제작자 사이트에서 가입, 비용이 들 수 있음) · 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)
Fly Io에 가입하고 키 만들기
제작자 사이트에서 가입하고 다음 단계에 쓸 API 키를 만드세요. 비용이 들 수 있어요.
키 받는 방법은 아래 제작자 README에 있어요
터미널 열기
Mac: Command+스페이스를 누르고 Terminal 입력 · Windows: PowerShell 열기
이 명령을 붙여 넣고 Enter
claude mcp add fly-io --env FLY_IO_API_TOKEN=your-value --env FLY_IO_APP_NAME=your-value --env ENABLED_TOOLGROUPS=your-value --env SKIP_HEALTH_CHECKS=your-value --env DISABLE_DOCKER_CLI_TOOLS=your-value -- npx -y fly-io-mcp-serverEnter 전에 “your-value”를 내 키로 바꾸세요
키는 앱 입력란에만 붙여 넣고, 채팅에 붙이거나 다른 사람에게 보내지 마세요
Claude Code에서 /mcp 입력
Fly Io이 목록에 있고 연결됨으로 보이면 돼요
해 보기
Fly Io을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Claude Code가 Fly Io을 쓰고 있다고 하거나 답에 Fly Io 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
Cursor에 연결할 수 있지만 먼저 준비가 필요해요
Fly Io 키가 필요해요 (제작자 사이트에서 가입, 비용이 들 수 있음) · 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)
Fly Io에 가입하고 키 만들기
제작자 사이트에서 가입하고 다음 단계에 쓸 API 키를 만드세요. 비용이 들 수 있어요.
키 받는 방법은 아래 제작자 README에 있어요
키 입력
Fly Io 설정에서 FLY_IO_API_TOKEN, FLY_IO_APP_NAME, ENABLED_TOOLGROUPS, SKIP_HEALTH_CHECKS, DISABLE_DOCKER_CLI_TOOLS가 비어 있어요. 내 키를 넣고 저장하세요
키는 앱 입력란에만 붙여 넣고, 채팅에 붙이거나 다른 사람에게 보내지 마세요
Cursor에서 AI 채팅을 Agent 모드로 열기
해 보기
Fly Io을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Cursor가 Fly Io을 쓰고 있다고 하거나 답에 Fly Io 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Cursor 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
VS Code에 연결할 수 있지만 먼저 준비가 필요해요
Fly Io 키가 필요해요 (제작자 사이트에서 가입, 비용이 들 수 있음) · 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)
Fly Io에 가입하고 키 만들기
제작자 사이트에서 가입하고 다음 단계에 쓸 API 키를 만드세요. 비용이 들 수 있어요.
키 받는 방법은 아래 제작자 README에 있어요
키 입력
Fly Io 설정에서 FLY_IO_API_TOKEN, FLY_IO_APP_NAME, ENABLED_TOOLGROUPS, SKIP_HEALTH_CHECKS, DISABLE_DOCKER_CLI_TOOLS가 비어 있어요. 내 키를 넣고 저장하세요
키는 앱 입력란에만 붙여 넣고, 채팅에 붙이거나 다른 사람에게 보내지 마세요
VS Code에서 AI 채팅을 Agent 모드로 열기
해 보기
Fly Io을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ VS Code가 Fly Io을 쓰고 있다고 하거나 답에 Fly Io 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 VS Code 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
개발자용: 터미널 명령과 JSON 설정
컴퓨터에 설치
Claude Code
claude mcp add fly-io --env FLY_IO_API_TOKEN=your-value --env FLY_IO_APP_NAME=your-value --env ENABLED_TOOLGROUPS=your-value --env SKIP_HEALTH_CHECKS=your-value --env DISABLE_DOCKER_CLI_TOOLS=your-value -- npx -y fly-io-mcp-serverClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"fly-io": {
"command": "npx",
"args": [
"-y",
"fly-io-mcp-server"
],
"env": {
"FLY_IO_API_TOKEN": "your-value",
"FLY_IO_APP_NAME": "your-value",
"ENABLED_TOOLGROUPS": "your-value",
"SKIP_HEALTH_CHECKS": "your-value",
"DISABLE_DOCKER_CLI_TOOLS": "your-value"
}
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"fly-io": {
"command": "npx",
"args": [
"-y",
"fly-io-mcp-server"
],
"env": {
"FLY_IO_API_TOKEN": "your-value",
"FLY_IO_APP_NAME": "your-value",
"ENABLED_TOOLGROUPS": "your-value",
"SKIP_HEALTH_CHECKS": "your-value",
"DISABLE_DOCKER_CLI_TOOLS": "your-value"
}
}
}
}VS Code (mcp.json)
{
"servers": {
"fly-io": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"fly-io-mcp-server"
],
"env": {
"FLY_IO_API_TOKEN": "your-value",
"FLY_IO_APP_NAME": "your-value",
"ENABLED_TOOLGROUPS": "your-value",
"SKIP_HEALTH_CHECKS": "your-value",
"DISABLE_DOCKER_CLI_TOOLS": "your-value"
}
}
}
}직접 입력할 값
FLY_IO_API_TOKEN비밀 필수 envAPI token for Fly.io authentication.FLY_IO_APP_NAMEenvScope server to a single app (disables app management tools).ENABLED_TOOLGROUPSenvComma-separated tool groups to enable (readonly, write, admin, apps, machines, logs, ssh, images, registry).SKIP_HEALTH_CHECKSenvSkip API validation at startup.DISABLE_DOCKER_CLI_TOOLSenvDisable Docker-based registry tools.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
한눈에 보기
어떤 앱에서 쓸 수 있나요
이 서버의 연결 방식과 각 앱의 공식 문서를 바탕으로 했어요. 2026년 11월 10일 확인.
내 컴퓨터에서 실행하는 앱
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
할 수 있는 일
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
기본 점검i
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 11일 점검
- ✓ 통과
제작자와 저장소 일치
레지스트리 이름이 도메인 pulsemcp.com 기준으로 확인되었어요(레지스트리가 도메인 소유를 확인해요)
- ✓ 통과
계속 관리되고 있음
코드 마지막 변경: 33일 전
- ✓ 통과
라이선스 있음
MIT 사용
- – 해당 없음
엔드포인트 응답
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
- – 해당 없음
OAuth로 로그인
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
- … 아직 점검 안 함
도구 설명에 숨겨진 지시 없음
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
토론
질문하고, 팁을 나누고, 안 되는 점을 알려 주세요. "도움이 됨"이 많은 순서예요.
사용자 리뷰
아직 리뷰가 없어요
개발자 도구 카테고리의 다른 서버와 비교i
- 이 카테고리의 다른 서버 5760개 중 0%보다 스타가 많아요
- 이 카테고리의 다른 서버 5760개 중 18%보다 최근에 레지스트리에 공개됐어요
- 기본 점검 결과가 이 카테고리의 다른 서버 5760개 중 100%와 같거나 더 좋아요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
자주 묻는 질문
Fly Io, 안전한가요?
해당하는 기본 점검 3개 중 3개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
어떤 키나 코드가 필요한가요?
입력해야 할 값: FLY_IO_API_TOKEN
내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
아직 관리되고 있나요?
GitHub 저장소는 마지막으로 33일 전 변경됐고, 최신 버전(0.1.7)은 5개월 전 레지스트리에 올라왔어요.
어떤 앱에서 쓸 수 있나요?
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
대신 쓸 수 있는 건 뭐가 있나요?
같은 카테고리에는: REA, Netdata, Front-End Checklist
대안
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Netdata
Real-time infrastructure monitoring with metrics, logs, alerts, and ML-based anomaly detection.
Front-End Checklist
Review frontend code and live pages against 386 quality-gated web development rules.
제작자의 README
README 열기
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Fly.io MCP Server
MCP server for managing Fly.io machines and applications. This server provides tools for CRUD operations on Fly.io apps and machines (VMs).
Highlights
- Manage Fly.io applications and machines via MCP
- Full CRUD operations for apps and machines
- Start, stop, restart, and suspend machines
- Get machine event logs for debugging
- Wait for machine state transitions
- Deploy Docker images to Fly.io
- Retrieve application logs with region and machine filtering
- Execute commands on running machines
- Manage Docker images - view current image, list releases, update to new versions
- Push/pull images to Fly.io registry - interact with registry.fly.io directly
- Tool grouping for permission-based access control
- Health checks for API credential and CLI tool validation
Capabilities
Tools
| Tool | Permissions | Feature | Description |
|---|---|---|---|
list_apps | readonly, write, admin | apps | List all Fly.io applications |
get_app | readonly, write, admin | apps | Get details for a specific app |
create_app | write, admin | apps | Create a new Fly.io application |
delete_app | admin | apps | Delete an application |
list_machines | readonly, write, admin | machines | List all machines in an app |
get_machine | readonly, write, admin | machines | Get details for a specific machine |
get_machine_events | readonly, write, admin | machines | Get event log for a machine (for debugging) |
create_machine | write, admin | machines | Create a new machine with a Docker image |
update_machine | write, admin | machines | Update a machine's configuration |
delete_machine | admin | machines | Delete a machine |
start_machine | write, admin | machines | Start a stopped machine |
stop_machine | write, admin | machines | Stop a running machine |
restart_machine | write, admin | machines | Restart a machine (stop then start) |
suspend_machine | write, admin | machines | Suspend a machine (save state to disk) |
wait_machine | write, admin | machines | Wait for a machine to reach a state |
get_logs | readonly, write, admin | logs | Get application logs |
machine_exec | write, admin | ssh | Execute a command on a machine |
show_image | readonly, write, admin | images | Show current Docker image details |
list_releases | readonly, write, admin | images | List releases with image references |
update_image | write, admin | images | Update app's image to latest or specific |
push_new_fly_registry_image | write, admin | registry | Push local image to Fly.io registry |
pull_fly_registry_image | readonly, write, admin | registry | Pull image from Fly.io registry |
check_fly_registry_image | readonly, write, admin | registry | Check if image exists in registry |
Security Considerations
The machine_exec tool allows executing arbitrary commands on Fly.io machines. This is a powerful capability that should be used with caution:
- Consider using
ENABLED_TOOLGROUPS="readonly"orENABLED_TOOLGROUPS="readonly,write"to disable administrative tools includingmachine_exec - The server requires the
flyCLI to be installed, which means it has access to execute shell commands - All operations are authenticated via your
FLY_IO_API_TOKEN
Tool Groups
Control which tools are available via the ENABLED_TOOLGROUPS environment variable. Two types of groups are supported and can be combined:
Permission Groups (what operations are allowed)
| Group | Description |
|---|---|
readonly | Read-only operations (list, get) |
write | Write operations (create, update, start, stop) |
admin | Administrative operations (delete apps/machines) |
Feature Groups (what features are enabled)
| Group | Description |
|---|---|
apps | App management tools (list_apps, get_app, create_app, delete_app) |
machines | Machine management tools (list, get, create, update, delete, start, stop) |
logs | Log retrieval tools (get_logs) |
ssh | Remote execution tools (machine_exec) |
images | Image management tools (show_image, list_releases, update_image) |
registry | Docker registry tools (push_new_fly_registry_image, pull_fly_registry_image, check_fly_registry_image) - requires Docker CLI |
Examples:
ENABLED_TOOLGROUPS="readonly"- Only read operations (all features)ENABLED_TOOLGROUPS="readonly,write"- Read and write, no delete (all features)ENABLED_TOOLGROUPS="machines,logs"- All permissions, only machines and logs featuresENABLED_TOOLGROUPS="readonly,machines"- Read-only access to machines only- Not set - All tools enabled (default)
App Scoping
When FLY_IO_APP_NAME is set, the server operates in "scoped mode":
- App management tools are disabled:
list_apps,get_app,create_app,delete_appare not available - Machine tools are restricted: All machine operations only work on the configured app
- app_name becomes optional: Machine tools will automatically use the scoped app
- Cross-app operations are blocked: Attempting to operate on a different app returns an error
This is useful for:
- Restricting access to a single application
- Simplifying tool usage (no need to specify app_name)
- Preventing accidental operations on wrong apps
Quick Start
Prerequisites
- A Fly.io account - Sign up at fly.io
- A Fly.io API token - Create one here
- Fly.io CLI (`fly`) installed - Install instructions
- Docker CLI installed (optional) - Required for registry tools (
push_image,pull_image,check_registry_image) - Node.js 18+ installed
Configuration
Environment Variables
| Variable | Required | Description | Default |
|---|---|---|---|
FLY_IO_API_TOKEN | Yes | API token for Fly.io authentication | - |
FLY_IO_APP_NAME | No | Scope server to a single app (disables app management) | - |
ENABLED_TOOLGROUPS | No | Comma-separated tool groups to enable | All enabled |
SKIP_HEALTH_CHECKS | No | Skip API validation at startup | false |
DISABLE_DOCKER_CLI_TOOLS | No | Disable Docker-based registry tools | false |
Claude Desktop Configuration
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": { "fly-io": { "command": "npx", "args": ["-y", "fly-io-mcp-server"], "env": { "FLY_IO_API_TOKEN": "fo_your_token_here" } } } }
With app scoping (restricts to a single app):
{
"mcpServers": { "fly-io": { "command": "npx", "args": ["-y", "fly-io-mcp-server"], "env": { "FLY_IO_API_TOKEN": "fo_your_token_here", "FLY_IO_APP_NAME": "my-production-app" } } } }
Restart Claude Desktop and you should be ready to go!
Usage Examples
List all apps
Use the list_apps tool to see all my Fly.io applications.
Create a new app and deploy a machine
Create a new Fly.io app called "my-web-app" in my personal organization,
then deploy an nginx container to it with 512MB of RAM.
Scale machines
List the machines in my-web-app and create two more copies
in different regions (lax and lhr).
Update a deployment
Update all machines in my-web-app to use the nginx:1.25 image.
Debug a crashed machine
Get the events for machine abc123 in my-web-app to see why it crashed.
Restart a stuck machine
Restart machine abc123 in my-web-app to clear its state.
View application logs
Get the logs for my-web-app to see what's happening.
Execute a command on a machine
Run "ls -la /app" on machine abc123 in my-web-app to see the app files.
Check current image version
Show me the current Docker image details for my-web-app.
List deployment history
List the last 5 releases for my-web-app to see the deployment history.
Update to a new image
Update my-web-app to use the latest image version.
Push a local image to Fly.io registry
Push my local "my-app:v2" image to the Fly.io registry for my-web-app with tag "v2".
Check if an image exists in the registry
Check if the image with tag "v2" exists in the Fly.io registry for my-web-app.
Development
Setup
# Clone the repository
git clone https://github.com/pulsemcp/mcp-servers.git cd mcp-servers/experimental/fly-io
Install dependencies
npm run install-all
Build
npm run build
Running in Development Mode
npm run dev
Testing
# Run functional tests in watch mode
npm test
Run tests once
npm run test:run
Run integration tests
npm run test:integration
Run manual tests (requires .env with API token)
npm run test:manual:setup # First time only npm run test:manual
Linting and Formatting
# Check for linting issues (run from repo root)
npm run lint
Auto-fix linting issues
npm run lint:fix
Format code
npm run format
Architecture
This server uses the Fly.io CLI (`fly`) for all operations instead of the REST API directly. This approach:
- Ensures consistent behavior across all tools
- Enables CLI-only features like logs and command execution
- Simplifies authentication (uses
FLY_API_TOKENenvironment variable)
Rate Limits
The Fly.io API enforces rate limiting (applied by the CLI):
- General: 1 request/second/action (burst: 3 req/s)
- Get Machine: 5 req/s (burst: 10 req/s)
- Delete App: 100/minute
Project Structure
fly-io/
├── local/ # Local server implementation │ ├── src/ │ │ ├── index.ts # Main entry point │ │ └── index.integration-with-mock.ts │ └── package.json ├── shared/ # Shared business logic │ ├── src/ │ │ ├── server.ts # S