mcpField
M
mediamcp

mediamcp

本地服务
github.com/legolev媒体与设计43 周前更新

关于 mediamcp

mediamcp 是一个 MCP 服务,可让 AI 助手通过 OpenRouter 或 OpenAI 兼容 API 生成和编辑图像与视频。它将结果保存到磁盘,并返回文件路径和预览。

主要功能

  1. 01根据文本生成图像
  2. 02编辑并组合现有图像
  3. 03生成文本转视频和图像转视频
  4. 04检查视频任务状态
  5. 05列出媒体模型和价格
  6. 06保存文件并返回路径和预览

适用场景

  1. 01为落地页制作图像
  2. 02移除或更改图像背景
  3. 03将图像转换为短视频

MCP 相关

mediamcp 向 MCP 客户端提供图像与视频生成、编辑、状态查询、模型列表及配置检查工具。生成的媒体保存在本地,结果包含文件路径和内嵌预览。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"legolev-mediamcp": {
"command": "npx",
"args": [
"-y",
"mediamcp"
],
"env": {
"OPENROUTER_API_KEY": "<OPENROUTER_API_KEY>",
"MEDIAMCP_OUTPUT_DIR": "<MEDIAMCP_OUTPUT_DIR>",
"MEDIAMCP_MODEL": "<MEDIAMCP_MODEL>"
}
}
}
}
启动命令npx -y mediamcp
需要配置的环境变量
OPENROUTER_API_KEY密钥OpenRouter API key (https://openrouter.ai/keys)
MEDIAMCP_OUTPUT_DIRDirectory for generated files (default: ~/Pictures/mediamcp)
MEDIAMCP_MODELDefault image model slug (default: google/gemini-2.5-flash-image)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmediamcp0.3.0

工具

6

收录的工具列表 · 更新于 2 周前

参数类型必填说明
countinteger否要生成的变体数量(1-4,并行请求,按图像计费)。
modelstring否模型标识,例如 'google/gemini-2.5-flash-image' 或 'openai/gpt-5-image'。省略则使用已配置的默认模型。调用 list_models 查看选项。
promptstring是对期望结果的详细描述。请具体说明主体、风格、光线和构图。
output_dirstring否保存到的目录(绝对路径,或用 ~ 表示主目录)。默认为已配置的输出目录。
aspect_ratioenum否所需的宽高比。不同模型的支持情况有所不同;此值仅作为强提示。1:1 | 16:9 | 9:16 | 4:3 | 3:4 | 3:2 | 2:3 | 21:9
filename_prefixstring否用于保存文件名的简短标签,例如 'hero-banner'。会清理为仅含字母、数字和连字符。

详细介绍

mediamcp
让任何 AI Agent 都能创建图像和视频

mediamcp 是一个 MCP 服务,可将您的 AI 助手——Claude Code、Claude Desktop、
Cursor、Windsurf、VS Code 或任何其他支持 MCP 的客户端——连接到云端媒体模型
(Gemini Flash Image、GPT-5 Image、Seedream、Veo、Sora,等等),连接方式可以是通过 OpenRouter 或任何兼容 OpenAI 的 API。

npm version CI node >= 20 license: MIT

英语 | 简体中文

⭐ 上方的横幅由 mediamcp 自行生成——只需调用一次 generate_image。


生成的文件始终会保存到磁盘(默认保存在 ~/Pictures/mediamcp),每条回复都会包含文件的绝对路径和一个小型内嵌预览——Agent 可以立即看到生成结果。

致 AI Agent: 专为您优化的安装说明见 llms-install.md。

您需要一个 OpenRouter API 密钥——可在 https://openrouter.ai/keys 获取。

快速安装

Claude Code
claude mcp add mediamcp -e OPENROUTER_API_KEY=sk-or-v1-YOUR_KEY -- npx -y mediamcp
Claude Desktop

将以下内容添加到 claude_desktop_config.json(macOS:~/Library/Application Support/Claude/claude_desktop_config.json,Windows:%APPDATA%\Claude\claude_desktop_config.json),然后重启 Claude Desktop:

{
  "mcpServers": {
    "mediamcp": {
      "command": "npx",
      "args": ["-y", "mediamcp"],
      "env": { "OPENROUTER_API_KEY": "sk-or-v1-YOUR_KEY" }
    }
  }
}
Cursor

安装 MCP 服务

或者添加到 ~/.cursor/mcp.json:

{
  "mcpServers": {
    "mediamcp": {
      "command": "npx",
      "args": ["-y", "mediamcp"],
      "env": { "OPENROUTER_API_KEY": "sk-or-v1-YOUR_KEY" }
    }
  }
}
Windsurf

添加到 ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "mediamcp": {
      "command": "npx",
      "args": ["-y", "mediamcp"],
      "env": { "OPENROUTER_API_KEY": "sk-or-v1-YOUR_KEY" }
    }
  }
}
VS Code(GitHub Copilot)

在 VS Code 中安装

或者添加到 .vscode/mcp.json(密钥会单独请求,不会写入文件):

{
  "servers": {
    "mediamcp": {
      "command": "npx",
      "args": ["-y", "mediamcp"],
      "env": { "OPENROUTER_API_KEY": "${input:openrouter-key}" }
    }
  },
  "inputs": [
    {
      "id": "openrouter-key",
      "type": "promptString",
      "password": true,
      "description": "OpenRouter API key (https://openrouter.ai/keys)"
    }
  ]
}

你的 Agent 能做什么

安装后,只需告诉 Agent 类似这样的内容:“为我的落地页生成一张主视觉图,16:9”、“移除 logo.png 的背景”、“制作一段 8 秒的日落海浪视频” 或 “将 logo.png 制作成一段 4 秒的视频”(图生视频)。Agent 会自行选择合适的工具:

工具功能
generate_image文本 → 图像(一个或多个)。保存到磁盘,返回路径和内嵌预览。支持 count(最多 4 个变体)、aspect_ratio 和 model 覆盖。
edit_image现有图像(一个或多个)+ 指令 → 编辑后的图像。接受文件路径、https:// 和 data: URL;多个来源可用于合并图像,制作成一张构图。
generate_video文本 → 视频 或图片 → 视频(异步任务,通常需要 1–5 分钟)。传入 first_frame_image 可将现有图片制作成动态视频(图生视频);传入 last_frame_image 可指定最后一帧;传入 reference_images 可作为风格参考。需要使用 i2v 模型(bytedance/seedance-2.0、bytedance/seedance-2.0-fast、google/veo-3.1)。等待任务完成,保存 mp4 并返回路径。超时时返回 polling_url。
check_video_status根据 polling_url / id 恢复等待视频任务;任务完成后下载结果。
list_models列出支持图像/视频的模型标识和价格,Agent 可据此自行选择模型。
check_config诊断:检查密钥是否存在且有效、端点、默认值,以及输出目录是否可写。如果遇到问题,请先运行此工具。

配置

所有设置均通过 MCP 客户端配置中 env 区块里的环境变量完成:

变量默认值用途
OPENROUTER_API_KEY—必填。 你的 OpenRouter 密钥。
MEDIAMCP_API_KEY—供非 OpenRouter 端点使用的 OPENROUTER_API_KEY 别名;如果同时设置了两个变量,则优先使用此变量。
MEDIAMCP_BASE_URLhttps://openrouter.ai/api/v1任何兼容 OpenAI 的 API 的根 URL。
MEDIAMCP_MODELgoogle/gemini-2.5-flash-image默认图像模型标识。
MEDIAMCP_VIDEO_MODELgoogle/veo-3.1默认视频模型标识。
MEDIAMCP_OUTPUT_DIR~/Pictures/mediamcp生成文件的保存位置(如果 ~/Pictures 不存在,则使用 ~/mediamcp)。
MEDIAMCP_TIMEOUT_MS120000每个请求的 HTTP 超时时间。
MEDIAMCP_PREVIEWtrue随每个结果返回内嵌预览(设为 false 则仅返回路径)。
MEDIAMCP_PREVIEW_MAX_DIM768内嵌预览较长一边的像素尺寸。
MEDIAMCP_SCHEMA_DIALECT2020-12发布工具 Schema 时使用的 JSON Schema 方言。设为 draft-7 时,按原样返回 MCP SDK 的输出。
使用其他提供商

将 MEDIAMCP_BASE_URL 设为任意兼容 OpenAI 的端点,并设置相应的密钥:

"env": {
  "MEDIAMCP_BASE_URL": "https://your-endpoint.example.com/v1",
  "MEDIAMCP_API_KEY": "your-key",
  "MEDIAMCP_MODEL": "your/image-model"
}

mediamcp 会自动检测端点支持的 API 格式:专用 /images 端点(OpenRouter)、/images/generations(经典 OpenAI)或支持图像的 chat/completions;并记住第一个成功的选项。

问题诊断

  1. 请 Agent 运行工具 check_config——它会告知具体的配置错误及修复方法。
  2. 也可以在终端中运行相同的诊断:npx -y mediamcp --check(使用 shell 的环境变量)。
  3. 常见问题:
    • “No API key configured”——将 OPENROUTER_API_KEY 添加到 MCP 客户端配置中服务器条目的 env 块(而不仅仅是 shell 配置文件),然后重启客户端。
    • “Out of credits (HTTP 402)”——前往 https://openrouter.ai/credits 充值。
    • “Not found (HTTP 404) … for model”——模型的 slug 不正确;运行 list_models。
    • 客户端没有任何反应——确认已安装 Node.js ≥ 20(node --version)。
    • “Tool '…' has an invalid outputSchema … unsupported dialect”——客户端仅根据 JSON Schema 2020-12 验证架构。mediamcp 默认发布 2020-12,因此此错误表示版本过旧:请升级,并确认 check_config 显示 tool schema dialect: 2020-12。

开发

git clone https://github.com/legolev/mediamcp && cd mediamcp
npm install
npm run build       # сборка в dist/index.js
npm test            # юнит-тесты (vitest)
npm run inspect     # открыть MCP Inspector с собранным сервером

许可证

MIT


mcp-name: io.github.legolev/mediamcp

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。