Token导航 LogoToken导航TokenDH.com
Chgpt MCP Bridge logo
安全风控未说明官方级别未说明来源级核验

Chgpt MCP Bridge

MCP Server

一个轻量级的GitHub OAuth保护代理,用于安全地将模型上下文协议(MCP)工具暴露给ChatGPT。

工具数

0

提示词数

0

GitHub Stars

5

资源数

0
PythonClaudeChatGPT集成Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

smonux

提供方

smonux

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

ChatGPT的MCP OAuth代理

这只是个快速的解决方案,我并不打算维护它,但我发现它很有用。欢迎随意fork(分叉)。

重要提示:安全注意事项(请勿跳过)

如果你使用这款软件并按照这些说明操作,你将使你的本地机器暴露于一个非确定性、不可靠的软件之下 并且 在开放的互联网上,你的存在会被完全暴露给任何恶意的机器人(如果你熟悉黑暗森林理论,我认为这是一个相当贴切的比喻)。

如果发生坏事,你已经提前警告过了。

不过,如果你遵循这些建议:

  • 你可以在虚拟机(如VirtualBox、Lima等,无论哪种)中运行它,或者在一台一次性使用的机器(如树莓派)上运行,只需共享大型语言模型(LLM)所需的必要信息
  • 你使用了源IP过滤机制
  • 当你不用的时候,就放下隧道
  • 你对URL进行了混淆处理(通过保密来实现安全虽然常受诟病,但在应对非针对性攻击时非常有效)

我认为如果你决定接手它,你不会完全疯掉的。

引言

它是什么:一款轻量级产品/应用 GitHub OAuth保护的代理 用……建造/构建 FastMCP 将模型上下文协议(MCP)工具安全地暴露给ChatGPT。

解决的问题:

截至今日(2025年10月),ChatGPT在其所谓的“开发者模式”中确实支持MCP,但存在以下限制:

  • 仅支持远程端点(HTTPS加密且可访问互联网)。不支持本地(stdio)功能。
  • 认证选项包括:

- 无(非受保护的终端) - OAuth 保护 - 值得注意的是:不支持“简单”Bearer API密钥(与GPT Actions中支持的情况不同)

这些限制使得它难以像Claude Desktop那样公开地用于个人需求。

这个脚本允许运行一个代理,该代理支持将GitHub作为OAuth提供商,并将请求转发到本地(stdio)的mcp服务器。只有经过身份验证的GitHub用户才能 并且 在允许用户列表中的用户可使用这些服务。

为了增强安全性,它允许维护一个允许的IP范围列表。这样,只有来自OpenAI的连接才被允许(OpenAI在其https://openai.com/chatgpt-actions.json页面上发布了他们的CIDR范围)。

最后,它允许设置自定义的URI路径,因此不容易被机器人发现。

当代理启动时,它会进行预先的安全审计。日志中会用表情符号评估并报告三项保障措施:

  • ✅/⚠️ OAuth 认证(仅在 SKIP_OAUTH 是“truthy”的,例如。 SKIP_OAUTH=true
  • ✅/⚠️ IP白名单(通过 ALLOWED_RANGES_FILE)
  • ✅/⚠️ 混淆的URL路径(非默认) OBFUSCATED_PATH (至少包含8个字符)

如果少于两个保护机制处于激活状态,服务器将拒绝启动并抛出错误。请调整您的配置,确保至少通过两项检查后再重试。

仍然存在 有效的HTTPS且可访问互联网 问题,但对此有标准化的解决方案。

如何将有效的HTTPS端点路由到位于NAT后的个人电脑

我所知道的选项有:Tailscale 转换器、Cloudflare 隧道和 ngrok。

我测试过的Tailscale funnel,总体来说,仅需:

  • 安装Tailscale
  • 运行 \tailscale funnel\
  • 首次运行时,点击接受几次以启用它

就这些。坏消息是,一旦你启用了它,就会开始收到扫描漏洞(暴力破解尝试)的通知,因为证书的创建会表明其存在。也许其他解决方案没有这个问题,我不知道。

如何为GitHub配置OAuth

假设你已经有一个账户。请前往 https://github.com/settings/developers 并创建一个新的应用:

  • 客户端ID和客户端密钥由GitHub生成(请安全地记录下来)
  • 应用名称(类似“MCP for Laptop”这样的名称即可)
  • 主页URL。表单验证后,您将被重定向至此处:https://chatgpt.com/connector_platform_oauth_redirect
  • 授权回调URL:使用https://。.ts.net/auth/callback 翻译为中文是:“.ts.net 的认证回调页面”

(此部分由人工智能生成)

安装

先决条件:

  • Python 3.10或更高版本
  • 一个指向您机器的公共HTTPS URL(通过Tailscale Funnel、Cloudflare Tunnel或ngrok)
  • 一个GitHub OAuth应用程序(参见上文部分)

步骤:

  1. 克隆并进入仓库

- git clone(克隆) - cd(光盘驱动器,或用于命令行中切换目录的命令)

  1. 创建并激活一个虚拟环境

- 使用 Python 3 创建虚拟环境 .venv - source .venv/bin/activate (Windows:.venv\\Scripts\\activate)

  1. 安装依赖项

- 使用 pip 安装 requirements.txt 中列出的包

  1. 创建您的环境文件

- 复制 env.example 文件到 .env - 编辑 .env 文件并填写值(见下文配置)

  1. 准备您的MCP服务器配置

- 复制或编辑 mcp.json 文件(示例见 mcp.json.example),使其指向您本地的 stdio MCP 服务器。

配置

编辑 .env 文件。重要变量:

  • 内部主机 / 内部端口:代理在本地监听的地址(默认为127.0.0.1:8888)
  • EXTERNAL_HOSTNAME:客户端将使用的公共主机名(例如:myhost.tail123.ts.net)
  • GITHUB_CLIENT_ID / GITHUB_CLIENT_SECRET:来自您的GitHub OAuth应用程序
  • GITHUB_USERS:允许访问的GitHub用户名,以逗号分隔(留空则允许任何已认证用户访问)
  • BASE_URL_SCHEME:通常为“https”
  • OAUTH_REDIRECT_PATH:通常为“/auth/callback”;必须与您的GitHub OAuth应用程序设置相匹配
  • MCP_JSON_PATH:MCP 服务器配置文件的路径(默认为 ./mcp.json)
  • SERVER_NAME:ChatGPT 在 MCP 服务器上看到的服务器名称
  • ALLOWED_RANGES_FILE:可选的IPv4 CIDR允许列表文件路径;如果设置,则仅允许这些源IP
  • OBFUSCATED_PATH:一个看似随机的路径段,添加到您的公共终端以增加混淆性。为了通过启动检查,它必须与默认路径不同 "shouldberandom" 并且长度至少为8个字符。

可选:将源IP限制为OpenAI

  • 使用辅助脚本生成一个范围文件:

- 运行 Python 脚本 \generate_allowed_ranges_from_openai.py\,并将输出保存到 \allowed-ranges.txt\ 文件中

  • 在 .env 文件中将 ALLOWED_RANGES_FILE 指向该文件。

运行代理

  • 确保你的 .env 文件和 mcp.json 文件已准备就绪
  • 启动服务器:

- 运行 python server.py

  • 启动时,您将看到为每项安全措施标记的表情符号状态行;请确保至少两项为✅,否则进程将退出。
  • 代理随后监听INTERNAL_HOST:INTERNAL_PORT,并公开一个HTTP端点路径为/{OBFUSCATED_PATH}。

示例本地URL:http://127.0.0.1:8888/你的长随机路径

为了使ChatGPT能够访问它,请将其部署在公共的HTTPS端点之后(见下一节),并确保EXTERNAL_HOSTNAME指向该主机名。

获取一个公开的HTTPS URL

你可以使用以下任意一种:

  • Tailscale Funnel(中文可译为“Tailscale 管道”或根据具体语境译为“Tailscale 流量导向系统”,但“管道”在技术语境下更为常见)

- Tailscale 转换器(或 Tailscale 流量分配器)

  • Cloudflare 隧道

- \cloudflared tunnel --url http://127.0.0.1:\ 翻译成中文是:“Cloudflare 的隧道命令,指定 URL 为 http://127.0.0.1:”

  • ngrok

- \ngrok http http://127.0.0.1:\ 翻译成中文是:“使用 ngrok 将 http://127.0.0.1:(端口号)暴露到公共互联网”。不过,这里的“http://127.0.0.1:”后面通常会跟上具体的端口号,比如 \http://127.0.0.1:8080\,所以在实际翻译时,可能会根据上下文补充完整。但基于给出的片段,上述翻译是准确的

确保最终的公共URL主机名与您的.env文件中的EXTERNAL_HOSTNAME相匹配,并且已启用HTTPS。

与ChatGPT一起使用(开发者模式MCP)

  • 在ChatGPT中,打开设置 → 开发者模式 → 添加MCP服务器
  • 选择OAuth作为认证类型
  • 终端点URL:https://\/{混淆路径}
  • 遵循OAuth流程;授权后,代理将仅允许GITHUB_USERS中的用户访问
  • 代理将把MCP流量转发到由您的mcp.json文件描述的本地stdio服务器

更新允许的IP范围

OpenAI 在 https://openai.com/chatgpt-actions.json 发布了 ChatGPT Actions 的 IP 范围

  • 定期更新您的允许列表:

- 运行 Python 脚本生成允许的范围(基于 OpenAI):python generate_allowed_ranges_from_openai.py

  • 重启代理以应用更改

故障排除

  • 403 / 禁止访问:

- 检查GITHUB_USERS是否包含你的GitHub用户名 - 如果设置了ALLOWED_RANGES_FILE,请确认您的请求来自允许的IP地址(请考虑您的隧道提供商的X-Forwarded-For行为)

  • OAuth回调不匹配:

- 确保 OAUTH_REDIRECT_PATH 与 GitHub 应用配置相匹配 - 确保EXTERNAL_HOSTNAME正确且可通过HTTPS公开访问

  • 无法连接到MCP服务器:

- 验证你的 mcp.json 文件语法,并确保命令可以通过 stdio 在本地运行

  • 日志太安静/太详细:

- 在.env文件中设置DEBUGLEVEL(例如,INFO、DEBUG、WARNING)

卸载/清理

  • 停用并删除虚拟环境
  • 如果存在,请移除隧道配置
  • 如果 .env 文件包含敏感信息,请将其删除

目录标签

目录标签

PythonClaudeChatGPT集成GitHubOAuth本地部署MCP工具安全代理

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP