mcpField
M
MCP Fly Deployer

MCP Fly Deployer

Local
github.com/NakulRajanCloud & Infra3Updated 80w ago

About MCP Fly Deployer

MCP Fly Deployer is an MCP server that generates Fly.io deployment configurations for developers deploying stdio-based MCP servers. It creates Dockerfiles, fly.toml files, and deployment scripts, and uses supergateway to expose stdio servers over SSE or WebSockets.

Key features

  1. 01Generate Fly.io deployment configurations
  2. 02Create runtime-specific Dockerfiles
  3. 03Customize fly.toml settings
  4. 04Support Python, Node.js, Go, and custom binaries
  5. 05Configure environment variables, secrets, and regions

Use cases

  1. 01Generate deployment plans for stdio MCP servers
  2. 02Create Dockerfiles for different runtimes
  3. 03Set Fly.io regions and app options
  4. 04Convert stdio servers to SSE or WebSocket services

MCP support

The project is an MCP server that accepts target server commands, runtime details, and deployment parameters to generate configuration. It uses SSE transport by default.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

MCP Fly Deployer

A specialized configuration generator for deploying Model Context Protocol (MCP) servers to Fly.io. This tool automates the creation of Dockerfiles, fly.toml configurations, and deployment scripts for stdio-based MCP servers.

This project integrates supergateway to enable MCP stdio servers to communicate over SSE (Server-Sent Events) or WebSockets, facilitating seamless deployment to Fly.io's infrastructure.

Features

  • 🚀 Automated Fly.io deployment configuration generation
  • 🐳 Dynamic Dockerfile generation based on runtime
  • ⚙️ Customizable fly.toml configuration
  • 🔧 Support for multiple runtimes:
    • Python
    • Node.js
    • Go
    • Custom binary
  • 🔑 Environment variables and secrets management
  • 🌐 Configurable regions and deployment options

How It Works

The MCP Fly Deployer uses supergateway to:

  • Convert stdio-based MCP servers into SSE or WebSocket services
  • Enable remote access and debugging capabilities
  • Manage JSON-RPC versioning automatically
  • Handle package metadata transmission

For more details about the underlying gateway technology, see the supergateway documentation.

Prerequisites

  • Python 3.13 or higher
  • pip (Python package manager)
  • Fly.io CLI installed and configured
  • Node.js and npm (for supergateway functionality)

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/mcp-fly-deployer.git
cd mcp-fly-deployer
  1. Create and activate a virtual environment:
python -m venv .venv
source .venv/bin/activate  # On Unix/macOS
# OR
.venv\Scripts\activate     # On Windows
  1. Install dependencies:
uv sync

Usage

  1. Start the MCP server:
python mcp_server_generator.py

The server will start on port 8000 by default, using SSE (Server-Sent Events) transport.

  1. Send requests to generate deployment plans with the following parameters:
{
    "server_command": "node",              # Command to run the target stdio server
    "server_args": ["index.js"],           # Arguments for the server command
    "runtime": "node",                     # Runtime ('python', 'node', 'go', 'binary')
    "runtime_version": "20",               # Specific runtime version
    "dependencies": [],                    # List of dependencies
    "requirements_file_content": None,     # Content of requirements.txt for Python
    "files_to_create": [],                # Files to create in the image
    "required_env_vars": [],              # Required environment variables
    "target_port": 8000,                  # Port the container will listen on (default: 8000)
    "app_name": "mcp-server-app",         # Suggested Fly.io app name
    "primary_region": "ord"               # Suggested Fly.io primary region
}

Configuration Options

Supported Runtimes
  • python: Python runtime with version specification
  • node: Node.js runtime with version specification
  • go: Go runtime
  • binary: Custom binary deployment
Deployment Regions

Fly.io regions can be specified using the primary_region parameter. Common options:

  • ord: Chicago
  • iad: Northern Virginia
  • dfw: Dallas
  • lax: Los Angeles
  • bom: Mumbai

Example

Here's a simple example of generating a deployment plan for a Node.js MCP server:

{
    "server_command": "node",
    "server_args": ["index.js"],
    "runtime": "node",
    "runtime_version": "20",
    "dependencies": ["@modelcontextprotocol/server"],
    "target_port": 8080,
    "app_name": "my-mcp-server",
    "primary_region": "ord"
}

Development

To contribute to the project:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Support

If you encounter any problems or have questions, please open an issue.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.