万物皆可Plugin —— 将阿里云 ESA MCP 接入 ChatGPT Plugin

Sep 14, 20267 min read

前言

好久不见,想起来已经快4个月没更新文章了...每天不是在上班就是在上班😵‍💫

最近一直在狂蹬Codex,发现自己已经完全离不开Agent了(都说21天养成一个好习惯)。然而,即使开了20x订阅,还是被gpt6瞬间跑完,gpt5.6sol极高也就勉勉强强...🥲

而ChatGPT Chat模式的额度是独立的,不跟Work/Codex共享,但大部分人Chat在吃灰。。。这个时候,我们可以通过OpenAI赏赐的开发者模式,接入自己开发的plugin,并在plugin中调用外部mcp服务,达到近似work/codex的效果。

除了不占用work/codex额度这个好处以外,将mcp包装为plugin,让你的chatgpt在全平台成为一个更加全能的日常助手,而无需codex remote依赖一台电脑挂着codex去做第三方操作。

原理

原理是比较简单的,以阿里云官方的esa mcp为例:

JSON

可以看到,实际上就是一个node进程,通过安装mcp-server-esa包去做。

这个时候,问题1来了,ChatGPT没有一个平台让我们执行node进程,我们要解决“ChatGPT如何调用mcp-server-esa的问题”。

通过博主的折腾,回答这个问题,有几种解决方案:

  1. 有一个伟大的项目mcp-auth-proxy,可以实现一键将这种node mcp包装为即插即用的http OAuth网关,并可以在Claude、Claude Code、ChatGPT、GitHub Copilot、Cursor等客户端使用。
    • 这个时候,实际上我们把 MCP 变成了一个 ChatGPT 能访问的公网 HTTP 服务
    • 链路:ChatGPT --> 你的域名/ip --> 你的服务器 --> MCP --> 阿里云
  2. 后来博主发现一个更好的途径,OpenAI官方的Tunnel Service,类似cloudflare tunnel,可以将私有的mcp服务通过openai官方tunnel暴露给chatgpt。
    • 这个时候,MCP 不出公网,由你的服务器主动连 OpenAI,让 OpenAI 反向把调用送下来
    • 链路:ChatGPT --> OpenAI Tunnel --> 你的服务器 --> MCP --> 阿里云

如果只需要在ChatGPT使用,博主推荐方案2,因为无需对外暴露任何服务,只需要服务器能连上公网即可。不过,方案2需要你的服务器ip出口要在openai的服务地区,比如香港是不行的,这个时候可以自行挂代理绕过。。。

本文以方案2为例,在chatgpt web中通过plugin接入阿里云esa mcp。

准备工作

所以,综上所述,你需要准备:

  1. 一台服务器(ip出口要在openai服务地区,比如美国)
  2. 为你的服务器安装好docker环境
  3. 一个开通了esa的阿里云账号(废话,没有esa你点进来干啥😠)
  4. 为你的阿里云账号创建ram用户并拿到AccessKey IDAccessKey Secret,并赋予AliyunESAFullAccess权限(参考下文)
  5. chatgpt订阅用户(只在pro 20x确定可行,不确定其他订阅or免费用户可用)
  6. 为你的chatgpt账号创建tunnel和api key,拿到tunnel_idapi_key(参考下文)

博主已经在GitHub开源了chatgpt-esa-mcp-tunnel,支持配置socks5代理更换出口,并且修复了阿里云官方mcp schema不规范的问题。

开始

获取阿里云ak和sk

此处博主直接贴官方教程,跟着来就行:

创建RAM用户

  1. 使用阿里云账号(主账号)或RAM管理员登录RAM控制台,单击创建用户image.png
  2. 填写RAM用户的登录名称,并勾选控制台访问使用永久AccessKey访问image.png
  3. 单击确定,根据界面提示,完成安全验证
  4. 单击下载 CSV 文件,将AccessKey IDAccessKey Secret保存至本地。
    • 请务必保存好CSV文件,页面关闭后无法再次获取AccessKey IDAccessKey Secretimage.png

RAM用户授权

  1. 返回RAM 用户页面,找到上一步创建的RAM用户,单击添加权限image.png
  2. 新增授权 > 权限策略中搜索AliyunESAFullAccess权限并勾选,然后单击确认新增授权image.png

获取OpenAI的tunnel_id和api_key

创建tunnel

打开OpenAI Tunnels,点击Create tunnel,Name和Description随便写,Organizations选personal那个,ChatGPT workspaces就选默认那个。

image.png

然后,你就得到了tunnel_xxxx开头的tunnel id。

创建api key

打开OpenAI Runtime API Keys,点击Create new secret key,选择Service account,Service Key Name随便取,Project就选default那个,有效期可以选择永久,然后提交即可。

image.png

然后,你就得到了api key(sk)。

部署项目

在服务器git clone博主的chatgpt-esa-mcp-tunnel,然后cp .env.example .env,在.env中修改下面内容:

BASH

然后执行docker compose up -d --build即可(更多详情可以看readme)。

接入ChatGPT Plugin

打开chatgpt.com,点击左下角设置-账户安全与登录-开发者模式,打开“开发人员模式”。

image.png

然后打开插件页面,点击右上角加号-名称描述随便取-选择“隧道”-可用隧道选择刚刚创建的tunnel-身份验证选择“无身份验证”,然后创建即可。

image.png

然后可以在 设置-插件 里,成功看到刚刚添加的plugin,成功识别了很多esa工具:

image.png

然后,打开新会话测试一下,发现已经成功调用了阿里云esa mcp,获取到了我们在阿里云上的esa站点、pages等信息。

image.png

至此,全文结束~

浏览量

最后修改于

Sep 15, 2026
Made withbyMr.Ke