项目简介

这是一个实现了 Model Context Protocol (MCP) 标准的服务器,它通过 MCP 接口桥接各种开放API(主要是 OpenAI 兼容 API,也包括 SiliconFlow 等),为大型语言模型 (LLM) 客户端提供多种多媒体处理能力。LLM 客户端可以通过调用该服务器注册的工具,实现图像生成、语音合成、音频转写、图像编辑以及视频生成等功能。

主要功能点

  • 图像生成: 根据文本提示词调用API生成图像。
  • 图像编辑: 根据文本提示词和基础图像调用API编辑图像。
  • 语音合成: 将文本转换为语音并保存为音频文件。
  • 音频转写: 将音频文件(支持本地路径或URL)转写为文本。
  • 视频生成: 调用SiliconFlow API根据文本或图像生成视频(结果通过通知发送)。
  • 灵活配置: 支持通过环境变量或命令行参数配置API密钥、URL、默认模型、输出路径等。
  • 结果通知: 特别是对于耗时任务(如视频生成),支持通过 OneBot 或 Telegram 发送完成通知。
  • 文件处理: 支持下载远程文件(如音频转写输入、图像编辑输入),保存生成的文件到本地目录,并将生成图像或视频上传至 Cloudflare ImgBed 图床,将语音文件上传至 WebDAV 服务器。

安装步骤

  1. 确保您的系统已安装 Node.js (版本 >= 16)。
  2. 通过 npm 安装服务器程序包:
    npm install -g openai-image-mcp
    或者使用 npx 直接运行而无需全局安装:
    npx openai-image-mcp@latest

服务器配置

MCP 服务器需要通过 MCP 客户端(例如 LLM 应用)来启动和连接。您需要在您的 MCP 客户端的配置文件中指定该服务器的启动命令和必要的配置参数。

以下是一个典型的 MCP 客户端配置示例中,关于此服务器的部分:

{
  "mcpServers": {
    "my-openai-media-server": { // 您为此服务器起的任意名称
      "command": "npx",
      "args": ["openai-image-mcp@latest", "-y"], // 启动命令和参数
      "env": { // 需要为服务器进程设置的环境变量
        "OPENAI_API_KEY": "YOUR_OPENAI_COMPATIBLE_API_KEY", // **必需**: 用于访问 OpenAI 兼容 API 的密钥
        "OPENAI_API_URL": "https://api.openai.com", // 可选: OpenAI 兼容 API 的地址, 默认为 OpenAI 官方地址
        "DEFAULT_IMAGE_MODEL": "gpt-image-1", // 可选: 图像生成的默认模型
        "DEFAULT_EDIT_IMAGE_MODEL": "gpt-image-1", // 可选: 图像编辑的默认模型
        "DEFAULT_SPEECH_MODEL": "tts-1", // 可选: 语音合成的默认模型
        "DEFAULT_SPEECH_SPEED": "1.0", // 可选: 语音合成的默认语速 (0.25 - 4.0)
        "DEFAULT_SPEECH_VOICE": "alloy", // 可选: 语音合成的默认音色
        "DEFAULT_TRANSCRIPTION_MODEL": "gpt-4o-transcribe", // 可选: 音频转写的默认模型
        "REQUEST_TIMEOUT": "180000", // 可选: API 请求超时时间 (毫秒), 默认为 180000 (3分钟)
        "DEFAULT_OUTPUT_PATH": "./output", // 可选: 生成文件 (图像, 音频) 的默认保存目录, 默认为当前目录下的 ./output

        // WebDAV 配置 (可选, 用于上传语音文件)
        "WEBDAV_URL": "YOUR_WEBDAV_URL",
        "WEBDAV_USERNAME": "YOUR_WEBDAV_USERNAME",
        "WEBDAV_PASSWORD": "YOUR_WEBDAV_PASSWORD",

        // Cloudflare ImgBed 配置 (可选, 用于上传生成的图像和视频)
        "CF_IMGBED_UPLOAD_URL": "YOUR_CLOUDFLARE_IMGBED_UPLOAD_URL",
        "CF_IMGBED_API_KEY": "YOUR_CLOUDFLARE_IMGBED_API_KEY",

        // SiliconFlow 视频生成配置 (可选, **视频功能必需**)
        "SILICONFLOW_API_KEY": "YOUR_SILICONFLOW_API_KEY", // **视频功能必需**: SiliconFlow API 密钥
        "SILICONFLOW_VIDEO_MODEL": "Wan-AI/Wan2.1-T2V-14B", // 可选: 视频生成的默认模型
        "SILICONFLOW_BASE_URL": "https://api.siliconflow.cn", // 可选: SiliconFlow API 地址, 默认为官方地址

        // 通知配置 (可选, 建议配置至少一种用于接收视频生成结果)
        "ONEBOT_HTTP_URL": "YOUR_ONEBOT_HTTP_URL", // OneBot HTTP API 地址
        "ONEBOT_ACCESS_TOKEN": "YOUR_ONEBOT_ACCESS_TOKEN", // OneBot Access Token
        "ONEBOT_MESSAGE_TYPE": "private", // 通知类型: 'private' 或 'group'
        "ONEBOT_TARGET_ID": "YOUR_TARGET_ID", // 接收通知的用户ID或群组ID

        "TELEGRAM_BOT_TOKEN": "YOUR_TELEGRAM_BOT_TOKEN", // Telegram Bot Token
        "TELEGRAM_CHAT_ID": "YOUR_TELEGRAM_CHAT_ID" // 接收通知的 Chat ID
      }
    }
    // 其他 MCP 服务器配置...
  }
}

注意:

  • 'OPENAI_API_KEY' 是运行此服务器的最低要求。
  • 视频生成功能需要配置 'SILICONFLOW_API_KEY',并且至少配置 OneBot 或 Telegram 中的一种通知方式来接收生成结果。
  • 其他配置项根据您的需求选择性配置。
  • 具体的配置方式取决于您的 MCP 客户端实现,请参考您的客户端文档。

基本使用方法

在配置并成功启动该 MCP 服务器后,您的 LLM 客户端即可通过 MCP 协议与之通信,并调用其提供的工具。

示例:调用 'generate_image' 工具生成图像

LLM 客户端需要向服务器发送一个 MCP 'CallTool' 请求,指定工具名称 ('generate_image') 和参数。

  • 必需参数: 'prompt' (文本描述)
  • 可选参数: 'model', 'width', 'height', 'steps', 'n' 等 (具体参数及其默认值、约束请参考工具定义)

服务器接收请求,调用后端的 OpenAI 兼容 API 进行图像生成。对于某些模型(如 'dall-e-3', 'gpt-image-1'),生成任务会在后台处理并通过配置的通知方式发送结果;对于其他模型,服务器会同步返回生成的图像 URL。

客户端接收到服务器的响应后,可以向用户展示结果(例如,将返回的 URL 渲染为图像)。

其他工具('generate_speech', 'transcribe_audio', 'edit_image', 'generate_video')也遵循类似的调用模式,根据其功能需要不同的参数。LLM 客户端可以通过调用 'ListTools' 请求获取所有可用工具的详细定义(包括参数说明和示例)。

信息

分类

AI与计算