概述
随着 MCP 生态的发展,越来越多的产品和 B 端开始接入 MCP。在生产环境中,面对大量存量服务和 API 需要改造的情况,需要一个 MCP 层面的反向代理方案,让个人和企业可以快速接入 MCP 生态,验证想法而不需大量投入改造。
MCP Gateway 简介
MCP Gateway 是一个用 Go 编写的轻量高可用网关服务,帮助个人与企业将已有的 API 通过配置方式转换为符合 MCP 协议的服务,无需改动任何代码。
项目资源
核心设计理念
- 零侵入:平台中立,适配物理机、虚拟机、ECS、K8s 等环境,无需改动现有基础设施
- 配置驱动:通过 YAML 配置即可将存量 API 转换为 MCP Server,无需改代码
- 轻量高效:架构极致轻量,拒绝在性能与高可用性上妥协
- 内置管理界面:开箱即用的 Web UI,降低学习与运维成本
架构图

快速开始
一键启动 MCP Gateway
设置环境变量:
export OPENAI_API_KEY="sk-eed837fb0b4a62ee69abc29a983492b7PlsChangeMe"
export OPENAI_MODEL="gpt-4o-mini"
export APISERVER_JWT_SECRET_KEY="fec6d38f73d4211318e7c85617f0e333PlsChangeMe"
export SUPER_ADMIN_USERNAME="admin"
export SUPER_ADMIN_PASSWORD="297df52fbc321ebf7198d497fe1c9206PlsChangeMe"
一键拉起:
docker run -d \
--name unla \
-p 8080:80 \
-p 5234:5234 \
-p 5235:5235 \
-p 5335:5335 \
-p 5236:5236 \
-e ENV=production \
-e TZ=Asia/Shanghai \
-e OPENAI_API_KEY=${OPENAI_API_KEY} \
-e OPENAI_MODEL=${OPENAI_MODEL} \
-e APISERVER_JWT_SECRET_KEY=${APISERVER_JWT_SECRET_KEY} \
-e SUPER_ADMIN_USERNAME=${SUPER_ADMIN_USERNAME} \
-e SUPER_ADMIN_PASSWORD=${SUPER_ADMIN_PASSWORD} \
--restart unless-stopped \
ghcr.io/amoylab/unla/allinone:latest
国内用户可使用阿里云镜像并自定义模型(示例为千问):
export OPENAI_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1/"
export OPENAI_API_KEY="sk-eed837fb0b4a62ee69abc29a983492b7PlsChangeMe"
export OPENAI_MODEL="qwen-turbo"
export APISERVER_JWT_SECRET_KEY="fec6d38f73d4211318e7c85617f0e333PlsChangeMe"
export SUPER_ADMIN_USERNAME="admin"
export SUPER_ADMIN_PASSWORD="297df52fbc321ebf7198d497fe1c9206PlsChangeMe"
一键拉起:
docker run -d \
--name unla \
-p 8080:80 \
-p 5234:5234 \
-p 5235:5235 \
-p 5335:5335 \
-p 5236:5236 \
-e ENV=production \
-e TZ=Asia/Shanghai \
-e OPENAI_BASE_URL=${OPENAI_BASE_URL} \
-e OPENAI_API_KEY=${OPENAI_API_KEY} \
-e OPENAI_MODEL=${OPENAI_MODEL} \
-e APISERVER_JWT_SECRET_KEY=${APISERVER_JWT_SECRET_KEY} \
-e SUPER_ADMIN_USERNAME=${SUPER_ADMIN_USERNAME} \
-e SUPER_ADMIN_PASSWORD=${SUPER_ADMIN_PASSWORD} \
--restart unless-stopped \
registry.ap-southeast-1.aliyuncs.com/amoylab/unla-allinone:latest
访问和配置
访问 Web 界面:
在浏览器中打开 http://localhost:8080/,使用配置的管理员账号密码登录。
添加 MCP Server:
复制配置文件:https://github.com/amoylab/unla/blob/main/configs/mock-server.yaml 在 Web 界面上点击 "Add MCP Server",粘贴配置并保存。
可用端点:
配置完成后,服务将在以下端点可用:
MCPSSE: http://localhost:5235/mcp/user/sse
MCPSSEMessage: http://localhost:5235/mcp/user/message
MCPStreamableHTTP: http://localhost:5235/mcp/user/mcp
在 MCP Client 中配置 /sse 或 /mcp 后缀的 URL 即可开始使用。
高级配置
如需更细粒度的配置控制,可以通过挂载配置文件的方式启动。
创建必要的目录并下载配置文件:
mkdir -p unla/{configs,data}
cd unla/
curl -sL https://raw.githubusercontent.com/amoylab/unla/refs/heads/main/configs/apiserver.yaml -o configs/apiserver.yaml
curl -sL https://raw.githubusercontent.com/amoylab/unla/refs/heads/main/configs/mcp-gateway.yaml -o configs/mcp-gateway.yaml
curl -sL https://raw.githubusercontent.com/amoylab/unla/refs/heads/main/.env.example -o .env.allinone
使用 Docker 运行 MCP Gateway:
docker run -d \
--name unla \
-p 8080:80 \
-p 5234:5234 \
-p 5235:5235 \
-p 5335:5335 \
-p 5236:5236 \
-e ENV=production \
-v $(pwd)/configs:/app/configs \
-v $(pwd)/data:/app/data \
-v $(pwd)/.env.allinone:/app/.env \
--restart unless-stopped \
ghcr.io/amoylab/unla/allinone:latest


