All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- No-op patch bump to retrigger npm publish (previous version did not reach npm)
- No-op patch bump to verify bulk distribution pipeline
- No-op patch bump to test bulk distribution pipeline
- Migration verification: no-op patch version bump to validate internal→public distribution pipeline
- Image management tools (via
flyCLI):show_image- Show current Docker image details for an applist_releases- List releases with Docker image referencesupdate_image- Update app's image to latest version or specific image
imagesfeature group for image management tools- Docker registry tools for interacting with Fly.io's private registry (requires Docker CLI):
push_new_fly_registry_image- Push a local Docker image to Fly.io registry for use with machinespull_fly_registry_image- Pull an image from Fly.io registry to local Dockercheck_fly_registry_image- Check if an image exists in Fly.io registry
registryfeature group for Docker registry tools- CLI availability health checks at startup for
flyanddocker DISABLE_DOCKER_CLI_TOOLSenvironment variable to opt out of Docker-based tools- When set, skips Docker health check and doesn't serve registry tools
- Fails on startup if
registrygroup is explicitly enabled but Docker is disabled
machine_exectimeout now defaults to 60s and is capped at 60s (Fly.io API limit)- Fixed
fly machines runto parse text output (no --json support in fly CLI) - Fixed
fly machines statusto use listMachines + filter (no --json support) - Fixed
fly machines destroyto not use --yes flag (not supported) - Fixed integration test import path for test-mcp-client
- Registry tools automatically authenticate and clean up Docker config (no credential pollution)
- BREAKING: Refactored to use
flyCLI instead of REST API- All operations now shell out to the
flycommand - Requires
flyCLI to be installed and available in PATH - Provides consistency across all tools and enables CLI-only features
- Uses
execFileinstead ofexecto prevent command injection vulnerabilities
- All operations now shell out to the
get_logstool - Retrieve application logs with region and machine filteringmachine_exectool - Execute commands on running machines- Security considerations section in README documenting
machine_execrisks FLY_IO_APP_NAMEenvironment variable for app scoping- When set, disables app management tools (list_apps, get_app, create_app, delete_app)
- Restricts all machine operations to the configured app
- Makes app_name parameter optional (auto-injected)
- Blocks cross-app operations with clear error messages
- Feature-based tool groups in addition to permission groups
appsgroup for app management toolsmachinesgroup for machine management toolslogsgroup for log retrieval toolssshgroup for remote execution tools- Groups can be combined (e.g.,
ENABLED_TOOLGROUPS="readonly,machines"for read-only machine access)
- Fail-closed behavior for invalid ENABLED_TOOLGROUPS configuration (throws error instead of enabling all tools)
- Initial implementation of Fly.io MCP server
- App management tools:
list_apps- List all Fly.io applicationsget_app- Get details for a specific appcreate_app- Create a new applicationdelete_app- Delete an application
- Machine management tools:
list_machines- List all machines in an appget_machine- Get details for a specific machineget_machine_events- Get event log for debuggingcreate_machine- Create a new machine with Docker imageupdate_machine- Update machine configurationdelete_machine- Delete a machinestart_machine- Start a stopped machinestop_machine- Stop a running machinerestart_machine- Restart a machine (stop + start)suspend_machine- Suspend a machine (save state)wait_machine- Wait for machine to reach a state
- Tool grouping system for permission-based access control
readonlygroup for list/get operationswritegroup for create/update/start/stop/restart/suspend/wait operationsadmingroup for delete operations
- Environment variable validation at startup
- Health checks for API credential validation
- Comprehensive test suite (functional and integration tests)