云媒体上传服务

一个可流式传输的HTTP MCP服务器,用于将图像/视频上传到Cloudinary,并提供丰富的交互式UI,适用于ChatGPT应用、Goose和任何MCP主机。

  • by EbonyLouis
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 EbonyLouis/cloudinary-mcp-app

使用说明

Cloudinary MCP应用程序→ ChatGPT工作坊

一个可流式传输的HTTP MCP服务器,可将图像/视频上传到Cloudinary,并展示一个丰富的交互式UI,适用于:

✅ ChatGPT应用程序
✅ 鹅
✅ 任何MCP主机

此仓库用于车间:

“将MCP应用程序插入ChatGPT”

它演示了如何:

  • 将MCP应用程序转换为兼容ChatGPT的应用程序
  • 通过流式HTTP为MCP提供服务
  • 在铁路上举办
  • 使用一台服务器进行Goose+ChatGPT

架构概述

ChatGPT
   ↓
Streamable HTTP (Railway)
   ↓
Cloudinary MCP Server
   ↓
Cloudinary API

同一服务器支持:

  • 鹅MCP应用程序(ui://资源)
  • ChatGPT Apps SDK(天桥模板+结构化输出)

特性

  • 将图像/视频上传到Cloudinary
  • 交互式UI预览
  • 在ChatGPT+Goose中工作
  • ChatGPT的结构化工具输出
  • 适用于Goose的MCP应用程序用户界面
  • 远程流式HTTP部署
  • 无状态服务器(可安全托管)

需求

  • Node.js 18+
  • Cloudinary帐户

获取凭据:

👉 https://console.cloudinary.com/settings/api-keys

您需要:

CLOUDINARY_CLOUD_NAME
CLOUDINARY_API_KEY
CLOUDINARY_API_SECRET

本地开发

安装

npm install

运行开发服务器

npm run dev

服务器运行时间:

http://localhost:3000

健康检查:

GET /

MCP端点:

POST /mcp

环境变量

创建 .env 项目根目录中的文件:

CLOUDINARY_CLOUD_NAME=...
CLOUDINARY_API_KEY=...
CLOUDINARY_API_SECRET=...

不要提交此文件。


部署到铁路

  1. 将仓库推送到GitHub
  2. 首选https://railway.app
  3. 新项目→ 从GitHub部署
  4. 选择此仓库
  5. 在铁路仪表板中添加环境变量
  6. 部署

铁路会给你一个网址:

https://your-app.up.railway.app

您的MCP端点变为:

https://your-app.up.railway.app/mcp

连接到Goose

添加远程扩展:

goose configure

选择:

Remote Extension (Streamable HTTP)

端点:

https://your-app.up.railway.app/mcp

现在Goose可以调用Cloudinary上传工具。


连接到ChatGPT

在ChatGPT中:

使用相同的端点添加自定义MCP应用程序:

https://your-app.up.railway.app/mcp

ChatGPT将:

  • 加载模板UI
  • 注入结构化工具输出
  • 呈现上传预览

可用工具

上传

将媒体上传到Cloudinary。

参数:

  • file_path --当地小路(鹅)
  • file --URL或数据URI(ChatGPT)
  • resource_type --图像/视频/原始
  • public_id
  • overwrite
  • tags

退货:

  • JSON元数据
  • 交互式用户界面
  • ChatGPT结构化输出

研讨会目标

该项目教授:

  • MCP服务器结构
  • 流式HTTP托管
  • ChatGPT适配器模式
  • 模板+结构化内容桥
  • 跨主机UI兼容性