MTGA 是一个基于本地代理的 IDE 固定模型服务商解决方案,适用于 Windows 和 macOS。
注意:本项目目前只支持 openai 格式的 api ,请确认。其他格式可以转为 openai 格式后再使用。
你什么也看不见~~
MTGA 即 Make Trae Great Again !
- 🔄 重构模型映射架构 - 从"一对一映射"改为"统一映射模型"架构
- trae端使用统一的映射模型ID,MTGA通过配置组切换实际后端模型
- 代理服务器支持模型ID映射和MTGA鉴权验证
- 全局配置支持映射模型ID和MTGA鉴权Key设置
- ⚡ 配置组管理优化 - 重构配置组字段和验证逻辑
- 配置组���称改为可选,API URL、实际模型ID、API Key改为必填
- 移除目标模型ID字段,改为全局映射配置
- 配置组表头重命名,向下兼容旧配置文件
- 🧪 新增自动化测试功能 - 完整的模型连接测试体系
- 保存配置后自动测试模型连接 (GET
/v1/models/{模型id}) - 手动测活功能,支持聊天补全测试 (POST
/v1/chat/completions) - 详细测试日志输出,包括响应内容和token消耗统计
- 保存配置后自动测试模型连接 (GET
- 🎯 增强用户体验 - 新增测活按钮和详细提示
- 测活按钮支持tooltip提示,说明token消耗风险
- 异步测试避免UI阻塞,完善的错误处理机制
- API Key安全显示(掩码处理)
历史版本
- 🐛 修复 hosts 修改功能的问题 - 解决 hosts 文件修改时换行符异常的问题
- ✨ 新增用户数据管理功能 - 单文件版本支持用户数据持久化存储
- 数据存储位置:Windows
%APPDATA%\MTGA\,macOS/Linux~/.mtga/ - 支持备份、还原、清除用户数据
- 配置文件、SSL证书、hosts备份自动持久化
- 数据存储位置:Windows
- 🔧 优化单文件构建 - 改进
build_onefile.bat,支持版本号变量化 - 🎯 改进用户界面 - 添加配置组列表刷新按钮,优化界面布局
- 📖 完善文档 - 新增单文件构建指南,更新项目文档
- ✅ 适配 Mac OS 端 - 支持 macOS 应用程序安装方式
- 🔄 默认服务商变更 - 从 DeepSeek 变更为 OpenAI
- 📦 文件重构 - ds 相关文件重命名为
*_ds.*格式存档 - 🌐 API URL 格式变更 - 从
https://your-api.example.com/v1变更为https://your-api.example.com
- 从 GitHub Releases 下载最新版本的
MTGA_GUI-v{版本号}-x64.exe - 双击运行下载的 exe 文件(需要管理员权限)
- 在打开的图形界面中,填写 API URL 和模型 ID
- 点击"一键启动全部服务"按钮
- 等待程序自动完成以下操作:
- 生成并安装证书
- 修改hosts文件
- 启动代理服务器
- 完成后,按照第 5 步:配置 Trae IDE进行IDE配置
Note
- 首次运行可能需要允许防火墙访问权限
- 单文件版本支持用户数据持久化存储,配置和证书会自动保存
- 如 trae 端添加模型失败,请参考 trae 端提示 “添加模型失败” 的排查方案
- 从 GitHub Releases 下载最新版本的
MTGA_GUI-v{版本号}-aarch64.dmg - 双击 DMG 文件,系统会自动挂载安装包
- 将
MTGA_GUI.app拖拽到Applications文件夹 - 从启动台或 Applications 文件夹启动应用程序
- 启动
MTGA_GUI.app(首次运行可能需要在系统偏好设置中允许运行) - 在图形界面中填写:
- 点击"一键启动全部服务"按钮
- 程序会自动完成:
- 生成并安装 SSL 证书到系统钥匙串
- 修改
/etc/hosts文件(需要管理员权限)
- 需要手动在打开的钥匙串窗口中信任生成的证书,默认名称为
MyLocalCA - 启动本地代理服务器
- 按照下方的 Trae IDE 配置 完成设置
Note
- 证书安装和 hosts 修改需要管理员权限
- 如提示“包已损坏”,请参考 macOS 解决 “包已损坏” 问题
- 如 trae 端添加模型失败,请参考 trae 端提示 “添加模型失败” 的排查方案
如果启动 MTGA_GUI.app 时弹出这样的提示:
点击取消。然后参考以下步骤解决:
- 到 Sentinel Releases 下载
Sentinel.dmg - 双击
Sentinel.dmg文件,将Sentinel.app拖拽到Applications文件夹 - 从启动台或 Applications 文件夹启动
Sentinel.app - 将本项目的
MTGA_GUI.app拖拽到Sentinel.app的左侧窗口中
MTGA_GUI.app 将被自动处理并启动
- 找到
MTGA_GUI.app完整路径,如/Applications/MTGA_GUI.app。 - ��开终端(Terminal)应用程序。
- 执行以下命令签名
MTGA_GUI.app:这会移除xattr -d com.apple.quarantine <应用完整路径>
MTGA_GUI.app中的com.apple.quarantine扩展属性。 - 启动
MTGA_GUI.app。
请检查:
- hosts 是否包含
127.0.0.1 api.openai.com这一行,且未被注释掉(# 开头)。 - 确保没有其他程序正在使用端口 443(如浏览器、VPN 等)。
- 可以使用以下命令检查:
# windows netstat -ano | find ":443" | find "LISTENING" # macos netstat -lnp tcp | grep :443 - 如果有进程在监听 443 端口,建议关闭该进程。
- 可以使用以下命令检查:
- 系统为 windows 10 以上
- 拥有管理员权限
- 安装 python 环境,推荐 python 3.10 以上
- 安装 git
打开 Git Bash:
# 切换到 ca 目录
cd "mtga/ca"
# 1. 生成 CA 证书 (ca.crt 和 ca.key)
./genca.sh执行 ./genca.sh 时,它会问你 "Do you want to generate ca cert and key? [yes/no]",输入 y 并按回车。之后会要求填写一些信息:
Country Name (2 letter code) []: 填CN(或其他国家代码)- 其他字段(如 State, Locality, Organization, Common Name for CA)可以按需填写或留空,建议填
X。Common Name 可以填MyLocalCA之类的。邮箱可以留空。
# 2. 生成 api.openai.com 的服务器证书 (api.openai.com.crt 和 api.openai.com.key)
# 这个脚本会使用同目录下的 api.openai.com.subj 和 api.openai.com.cnf 配置文件
./gencrt.sh api.openai.com执行完毕后,在 mtga\ca 目录下你会找到以下重要文件:
ca.crt(你的自定义 CA 证书)ca.key(你的自定义 CA 私钥 - 请勿泄���)api.openai.com.crt(用于本地代理服务器的 SSL 证书)api.openai.com.key(用于本地代理服务器的 SSL 私钥 - 请勿泄露)
- 找到
mtga\ca\ca.crt文件。 - 双击
ca.crt文件,打开证书查看器。 - 点击"安装证书..."按钮。
- 选择"当前用户"或"本地计算机"。推荐选择"本地计算机"(这需要管理员权限),这样对所有用户生效。
- 在下一个对话框中,选择"将所有的证书都放入下列存储",然后点击"浏览..."。
- 选择"受信任的根证书颁发机构",然后点击"确定"。
- 点击"下一步",然后"完成"。如果弹出安全警告,选择"是"。
你需要用管理员权限修改 Hosts 文件,将 api.openai.com 指向你的本地机器。
- Hosts 文件路径:
C:\Windows\System32\drivers\etc\hosts - 以管理员身份,使用记事本(或其他文本编辑器)打开此文件。
- 在文件末尾添加一行:
127.0.0.1 api.openai.com - 保存文件。
运行代理服务器之前:
- 安装依赖:
pip install Flask requests
- 配置脚本:
- 打开
trae_proxy.py文件。 - 修改
TARGET_API_BASE_URL: 将其替换为你实际要连接的那个站点的 OpenAI 格式 API 的基础 URL (例如:"https://your-api.example.com")。 - 确认证书路径: 脚本默认会从
mtga\ca读取api.openai.com.crt和api.openai.com.key。如果你的证书不在此路径,请修改CERT_FILE和KEY_FILE的值,或者将这两个文件复制到脚本指定的CERT_DIR。
- 打开
运行代理服务器:
打开命令提示符 (cmd) 或 PowerShell 以管理员身份运行 (因为要监听 443 端口),然后执行:
python trae_proxy.py如果一切顺利,你应该会看到服务器启动的日志。
-
打开并登录 Trae IDE。
-
在 AI 对话框中,点击右下角的模型图标,选择末尾的"添加模型"。
-
服务商:选择
OpenAI。 -
模型:选择"自定义模型"。
-
模型 ID:填写你在 Python 脚本中
CUSTOM_MODEL_ID定义的值 (例如:my-custom-local-model)。 -
API 密钥:
- 如果你的目标 API 需要 API 密钥,并且 Trae 会将其通过
Authorization: Bearer <key>传递,那么这里填写的密钥会被 Python 代理转发。 - Trae 配置 OpenAI 时,API 密钥与
remove_reasoning_content配置相关。我们的 Python 代理不处理这个逻辑,它只是简单地转发 Authorization 头部。你可以尝试填写你的目标 API 所需的密钥,或者一个任意的sk-xxxx格式的密钥。
- 如果你的目标 API 需要 API 密钥,并且 Trae 会将其通过
-
点击"添加模型"。
-
回到 AI 聊天框,右下角选择你刚刚添加的自定义模型。
现在,当你通过 Trae 与这个自定义模型交互时,请求应该会经过你的本地 Python 代理,并被转发到你配置的 TARGET_API_BASE_URL。
故障排除提示:
- 端口冲突:如果 443 端口已被占用 (例如被 IIS、Skype 或其他服务占用),Python 脚本会启动失败。你需要停止占用该端口的服务,或者修改 Python 脚本和 Nginx (如果使用) 监听其他端口 (但这会更复杂,因为 Trae 硬编码访问
https://api.openai.com的 443 端口)。 - 防火墙:确保 Windows 防火墙允许 Python 监听 443 端口的入站连接 (尽管是本地连接
127.0.0.1,通常不需要特别配置防火墙,但值得检查)。 - 证书问题:如果 Trae 报错 SSL/TLS 相关错误,请仔细检查 CA 证书是否已正确安装到"受信任的根证书颁发机构",以及 Python 代理是否正确加载了
api.openai.com.crt和.key。 - 代理日志:Python 脚本会打印一些日志,可以帮助你诊断问题。
这个方案比直接使用 vproxy + nginx 的方式更集成一些,将 TLS 终止和代理逻辑都放在了一个 Python 脚本中,更适合快速在 Windows 上进行原型验证。
点击仓库右上角 Star 和 Watch 按钮,获取最新动态。
ca目录引用自wkgcass/vproxy仓库,感谢大佬!




