mcpField
M
MCP Fly Deployer

MCP Fly Deployer

本地服务
github.com/NakulRajan云与基础设施380 周前更新

关于 MCP Fly Deployer

MCP Fly Deployer 是用于生成 Fly.io 部署配置的 MCP 服务,面向需要部署基于 stdio 的 MCP 服务的开发者。它可生成 Dockerfile、fly.toml 和部署脚本,并通过 supergateway 将 stdio 服务转换为 SSE 或 WebSocket 服务。

主要功能

  1. 01自动生成 Fly.io 部署配置
  2. 02按运行时生成 Dockerfile
  3. 03自定义 fly.toml
  4. 04支持 Python、Node.js、Go 和自定义二进制文件
  5. 05配置环境变量、机密和部署区域

适用场景

  1. 01为 stdio MCP 服务生成部署计划
  2. 02为不同运行时创建 Dockerfile
  3. 03配置 Fly.io 区域和应用设置
  4. 04将 stdio 服务转换为 SSE 或 WebSocket

MCP 相关

该项目本身是 MCP 服务,客户端可向其发送目标服务命令、运行时及部署参数,以生成部署配置。服务默认通过 SSE 传输。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP Fly Deployer

专为将 Model Context Protocol(MCP)服务部署到 Fly.io 而设计的配置生成器。此工具可自动创建 Dockerfile、fly.toml 配置和部署脚本,用于基于 stdio 的 MCP 服务。

此项目集成了 supergateway,使 MCP stdio 服务能够通过 SSE(Server-Sent Events)或 WebSockets 通信,从而轻松部署到 Fly.io 的基础设施上。

功能

  • 🚀 自动生成 Fly.io 部署配置
  • 🐳 根据运行时动态生成 Dockerfile
  • ⚙️ 可自定义 fly.toml 配置
  • 🔧 支持多种运行时:
    • Python
    • Node.js
    • Go
    • 自定义二进制文件
  • 🔑 环境变量和密钥管理
  • 🌐 可配置区域和部署选项

工作原理

MCP Fly Deployer 使用 supergateway 来:

  • 将基于 stdio 的 MCP 服务转换为 SSE 或 WebSocket 服务
  • 启用远程访问和调试功能
  • 自动管理 JSON-RPC 版本
  • 处理软件包元数据传输

如需了解底层网关技术的更多详情,请参阅 supergateway 文档。

前置条件

  • Python 3.13 或更高版本
  • pip(Python 包管理器)
  • 已安装并配置 Fly.io CLI
  • Node.js 和 npm(用于 supergateway 功能)

安装

  1. 克隆仓库:
git clone https://github.com/yourusername/mcp-fly-deployer.git
cd mcp-fly-deployer
  1. 创建并激活虚拟环境:
python -m venv .venv
source .venv/bin/activate  # On Unix/macOS
# OR
.venv\Scripts\activate     # On Windows
  1. 安装依赖:
uv sync

使用方法

  1. 启动 MCP 服务:
python mcp_server_generator.py

服务默认将在端口 8000 上启动,并使用 SSE(Server-Sent Events)传输。

  1. 使用以下参数发送请求,以生成部署计划:
{
    "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
}

配置选项

支持的运行时
  • python:可指定版本的 Python 运行时
  • node:可指定版本的 Node.js 运行时
  • go:Go 运行时
  • binary:自定义二进制文件部署
部署区域

可通过 primary_region 参数指定 Fly.io 区域。常见选项:

  • ord:芝加哥
  • iad:北弗吉尼亚
  • dfw:达拉斯
  • lax:洛杉矶
  • bom:孟买

示例

下面是为 Node.js MCP 服务生成部署计划的简单示例:

{
    "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"
}

开发

参与项目贡献:

  1. 复刻仓库
  2. 创建功能分支
  3. 进行更改
  4. 提交拉取请求

许可证

此项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。

贡献

欢迎贡献!欢迎随时提交拉取请求。

支持

如果遇到任何问题或有疑问,请提交问题。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。