mcpField
U
UnificAlly MCP

UnificAlly MCP

已认证精选远程服务
unifically.comAI 与智能体02 周前更新

关于 UnificAlly MCP

UnificAlly MCP 将 AI 助手连接到 UnificAlly API,通过模型目录生成和编辑媒体、转录音频及放大媒体。它适合希望在 MCP 客户端中通过一个 API 密钥使用这些操作,并跟踪任务和控制支出的用户。

主要功能

  1. 01生成视频和图像
  2. 02制作音乐、语音和音效
  3. 03转录及清理音频
  4. 04编辑和延长视频
  5. 05放大图像和视频
  6. 06跟踪任务、模型和费用

适用场景

  1. 01生成图像并将其用作视频起始帧
  2. 02转录音频或将文本转为语音
  3. 03查询生成任务状态或估算费用

MCP 相关

该 MCP 服务将 UnificAlly API 操作以工具形式提供,涵盖媒体生成、编辑、任务管理、模型查询、文件上传和费用检查。它支持 stdio 和 Streamable HTTP,并提供托管端点。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.unifically.com/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://mcp.unifically.com/mcp需要授权

工具

14
参数类型必填说明
promptstring是描述所需视频的文本提示词。
modelstring否模型,可使用简短别名或完整 ID。别名:'veo'(默认)、'veo-quality'、'veo-lite'、'kling'、'kling-omni'、'hailuo'、'seedance'、'grok-video'、'grok-1.5'。也支持 'google/veo-3.1-fast' 等完整 ID。调用 list_models 查看目录,并阅读模型文档页面以了解其确切参数。
durationinteger否视频时长(秒)。省略时使用模型默认值。允许的值因模型而异。
aspect_ratiostring否输出宽高比,例如 '16:9'。各模型支持的比例不同,有些模型不支持此参数。
image_urlstring否图生视频的可选起始帧。此工具会将其映射到所选模型所需的字段,因此请在此处传入,而不要使用模型自身的字段名。必须是公开的 https URL,不能是本地路径或内嵌的 base64。对于本地文件,请先使用直接 PUT 上传到 files.unifically.com/upload,然后传入返回的 file_url。
end_image_urlstring否可选的结束帧(起始帧与结束帧之间的插值)。仅部分模型支持。必须是公开的 https URL,不能是本地路径或内嵌的 base64。对于本地文件,请先使用直接 PUT 上传到 files.unifically.com/upload,然后传入返回的 file_url。
reference_image_urlsarray否可选的风格/主体参考图像,每张都必须是公开的 https URL(请先上传本地文件,不能使用路径或 base64)。支持情况、最大数量以及能否与起始帧组合使用,均因模型而异。
seedinteger否可选的可复现输出种子。在支持的模型上,相同种子和相同输入会产生相同结果。
waitboolean否默认值为 true:等待任务完成并返回结果。设为 false 可立即获取 task_id,并使用 get_task 轮询;适用于耗时较长的任务(高质量视频、完整歌曲),或连接可能超时的情况。
callback_urlstring否可选的 Webhook URL。设置后,工具会立即返回 task_id,并在任务完成时将结果 POST 到此 URL。Webhook 请求体:{ task_id, status: 'completed'|'failed', data: { video_url | image_url | audio_url | ... }, error_message? } — 请注意,媒体位于 'data' 下,而非 'output'。适用于长时间运行的任务,可替代等待。
confirm_costboolean否仅当操作员启用了支出保护时才相关。调用金额超过配置的确认阈值时,会返回报价;使用 confirm_cost: true 重试即可继续。否则可忽略。
provider_optionsobject否用于传入未作为命名参数公开的模型专属字段(例如 Kling multi_shots、Flux steps)。这些字段会合并到 API 的 'input' 负载中。拒绝以下字段:此工具已管理的字段(prompt、媒体 URL、task_id 等),以及保留的路由/计费/身份验证键(model、callback_url、dry_run、api_key、authorization)。请使用 'model' 参数切换模型,而不要在此处切换。各模型的字段请参阅 https://docs.unifically.com。

详细介绍

UnificAlly MCP 服务

npm

面向 UnificAlly API 的 MCP 服务。它让 AI 助手通过一个 API 密钥,使用 100 多种模型(Veo 3.1、Kling、Seedance、Hailuo、Grok Imagine、Nano Banana、Flux、GPT Image、Suno、ElevenLabs、Topaz)生成视频、图像、音乐、语音和音效,转录音频并提升媒体分辨率。

它适用于任何 MCP 客户端:Cursor、Claude Desktop、Claude Code、Cline、Windsurf、Zed、ChatGPT Desktop、Goose、n8n,以及你自己的代码。

安装

  1. 在 https://unifically.com/api-keys 创建 API 密钥。新账号会获得 $0.50 余额,可用于测试。
  2. 将服务添加到客户端配置中:
{
  "mcpServers": {
    "unifically": {
      "command": "npx",
      "args": ["-y", "@unifically/mcp-server"],
      "env": { "UNIFICALLY_API_KEY": "sk-..." }
    }
  }
}

该代码块可直接用于 Cursor(.cursor/mcp.json)、Claude Desktop(claude_desktop_config.json)、Cline 和 Windsurf(~/.codeium/windsurf/mcp_config.json)。保存后重启客户端。

Claude Code:

claude mcp add unifically -e UNIFICALLY_API_KEY=sk-... -- npx -y @unifically/mcp-server
其他客户端

Zed(~/.config/zed/settings.json):

{
  "context_servers": {
    "unifically": {
      "command": { "path": "npx", "args": ["-y", "@unifically/mcp-server"] },
      "env": { "UNIFICALLY_API_KEY": "sk-..." }
    }
  }
}

ChatGPT Desktop:依次选择 Settings、Connectors、Add MCP server。使用命令 npx -y @unifically/mcp-server,并设置 UNIFICALLY_API_KEY 变量。

Goose、n8n 或任何支持 stdio 的工具:

UNIFICALLY_API_KEY=sk-... npx -y @unifically/mcp-server

在 Windows 上,如果客户端提示 npx not found,请使用 "command": "cmd", "args": ["/c", "npx", "-y", "@unifically/mcp-server"]。

此外,还提供托管服务 https://mcp.unifically.com/mcp,供接受 URL 的客户端使用。请参阅远程服务。

示例

向助手提出需求:

生成一张 16:9 的黄昏灯塔图像,然后生成一段以该图像为起始画面的 6 秒视频。

它会按顺序调用工具:

{ "name": "generate_image", "arguments": { "prompt": "a lighthouse at dusk, waves, warm light", "aspect_ratio": "16:9" } }
Generated image with google/nano-banana-pro. Result: https://files.unifically.com/image/....png [task_id: 7f3c...]
{ "name": "generate_video", "arguments": { "prompt": "slow push in, waves rolling", "image_url": "https://files.unifically.com/image/....png", "duration": 6 } }

每个生成工具都会等待任务完成并返回媒体 URL。结构化结果如下:

{
  task_id: string,
  status: "completed" | "pending" | "processing",
  output: { video_url?, image_url?, audio_url?, image_urls?, audio_urls?, text? },  // when completed
  model: string,
  cost_usd?: number
}

在底层,每次调用都会向 UnificAlly API 发送一个请求(POST /v1/tasks,包含 { model, input },然后调用 GET /v1/tasks/{id}),与 API 文档中所示的方式相同。

工具

工具功能是否消耗余额
generate_video文本或图像转视频(Veo、Kling、Hailuo、Seedance、Grok 等)。可选起始帧和结束帧、参考图像。是
generate_image文本转图像和图像编辑(Nano Banana、GPT Image、Flux、Qwen、Kling、Grok、SeeDream)。是
generate_audio文本转语音、音效、对话、转录(stt)、语音转换(voice-changer)、音频清理(voice-isolation)。是
generate_musicSuno:创作歌曲,或对现有曲目执行 cover、extend、add-vocals、add-instrumental 或 stems。是
edit_video根据提示词编辑现有片段,或将动作迁移到主体图像上(motion-control)。是
upscale_media使用 Topaz 处理任意图像或视频(image_url / video_url),或为 Veo 和 Grok 升级工具提供 task_id。是
extend_video延长已完成的 Veo(+8 s)或 Grok Imagine 生成内容。是
upload_file将 URL 或 stdio 服务上的本地文件转换为公共 CDN URL。否
get_task根据 id 获取任务状态和结果,可选择等待任务完成。否
list_tasks按状态、模型、类别、提供方或时间筛选任务,并按时间倒序显示。否
list_resourcesElevenLabs(默认)、Kling 和 Veo 的语音列表。否
list_models模型目录及别名。否
dry_run_cost查询调用价格,但不实际运行。否
check_balance以 USD 计的账户余额。否

每个工具都会设置全部四个 MCP 提示。七个会消耗余额的工具均标记为 destructiveHint: true 和 idempotentHint: false,因此,即使客户端会自动批准只读工具,也仍会在付费运行前征求确认。生成失败不会收费。

支持的模型及其参数、id 和浏览器试用页面:

list_models 会返回完整的实时目录。

工作方式

  • 每个生成工具仅通过 prompt 工作。model 为可选项,可使用短别名(veo、kling、flux、nano-banana-2、seedance、tts、sfx、stt)或完整 ID,例如 google/veo-3.1-fast。
  • 媒体字段(image_url、image_urls、end_image_url、reference_image_urls、audio_url、video_url)仅接受公开的 https URL。本地路径或 base64 字符串会触发错误,提示先上传。
  • 不同模型的字段名称各不相同(Kling 使用 start_frame_url,Veo 使用 start_image_url,Seedance 使用 first_frame_url)。你传入 image_url,服务会将其重命名。服务不支持的字段参数应放在 provider_options 中,该参数也会覆盖映射。
  • 服务不会保存各模型支持的时长、分辨率或宽高比。API 会检查参数值,并返回指出如何修正的 422 错误,且不收取费用。服务指令会要求助手在运行模型前阅读其在 docs.unifically.com/llms.txt 中的页面。
  • 每个生成工具还接受 wait、callback_url、provider_options 和 confirm_cost。
  • 错误以一句话返回:缺少密钥或密钥错误时返回 401,余额不足时返回 402(附充值链接),参数验证失败时返回包含 API 验证消息的 422;超时消息会提示助手使用 get_task 继续。遇到 429、5xx 和网络错误时,会采用退避策略重试。
上传

模型只能读取公开 URL,因此本地文件会先上传到 UnificAlly CDN。

  1. upload_file { content_type: "image/png" } 会返回一次性 upload_url 和最终的 file_url。助手使用 curl 发送字节数据,shell 中不会包含任何 API 密钥:

    curl -X PUT '<upload_url>' --data-binary @photo.png
    

    URL 经过签名,只能使用一次,并会在约 5 分钟后过期。文件会保持完整质量。

  2. upload_file { url } 会导入已经在线的文件。

  3. upload_file { file_path } 会从磁盘读取文件,但仅限服务在本地通过 stdio 运行时使用。

不支持 base64 上传,且指令会要求助手绝不将用户的文件发送到其他主机。这两条规则都源于实际发生过的失误:由于 base64 大小限制,Agent 曾缩小用户的图片以满足要求;还有一个 shell 中没有密钥的 Agent 曾将私人照片上传到公开文件托管服务。

长时任务

高质量视频和完整歌曲可能需要几分钟才能完成。

  • wait: false 会立即返回 { task_id, status: "pending" }。轮询 get_task,直到 status 为 "completed"。
  • callback_url 也会立即返回,API 会将结果 POST 到你的 webhook。

任何任务都可以稍后通过 get_task 获取。

支出限制

默认情况下,所有限制均关闭。可按部署设置:

  • UNIFICALLY_CONFIRM_COST_ABOVE=<usd>:价格高于此金额的调用会返回报价,只有助手使用 confirm_cost: true 重试后才会运行。
  • UNIFICALLY_MAX_COST_PER_TASK=<usd>:价格高于此金额的调用会被拒绝。confirm_cost 无法覆盖此限制。
  • UNIFICALLY_BLOCKED_MODELS=veo-quality,suno 或 UNIFICALLY_ALLOWED_MODELS=nano-banana-2,flux,tts:限制可运行的模型。
  • UNIFICALLY_DISABLE_GENERATION=true:只读模式。浏览、dry_run_cost 和 check_balance 仍可使用。

环境变量

变量必填默认值
UNIFICALLY_API_KEY仅 stdio 必填无。HTTP 调用方自行提供密钥。UNIFICALLY_KEY、UNIFICALLY_TOKEN 和 UNIFICALLY_API_TOKEN 也可使用。
UNIFICALLY_BASE_URL否https://api.unifically.com
UNIFICALLY_FILES_BASE_URL否https://files.unifically.com
UNIFICALLY_REQUEST_TIMEOUT_MS否60000
UNIFICALLY_MAX_RETRIES否3
UNIFICALLY_POLL_TIMEOUT_MS否600000
UNIFICALLY_POLL_START_MS否2000
UNIFICALLY_POLL_MAX_MS否10000
UNIFICALLY_CONFIRM_COST_ABOVE否关闭
UNIFICALLY_MAX_COST_PER_TASK否关闭
UNIFICALLY_BLOCKED_MODELS否无
UNIFICALLY_ALLOWED_MODELS否无
UNIFICALLY_DISABLE_GENERATION否false
MCP_TRANSPORT否stdio(或 http)
UNIFICALLY_HTTP_WAIT_BUDGET_MS否85000,HTTP 调用在返回 task_id 前等待的最长时间
PORT否由托管平台设置
UNIFICALLY_CORS_ORIGIN否*
UNIFICALLY_TRUSTED_PROXIES否loopback。也允许使用 private、精确 IP 或 CIDR,它们可发送 X-Forwarded-For。
UNIFICALLY_TRUST_CF_CONNECTING_IP否false
UNIFICALLY_RATE_PER_MIN否每个密钥和账户每分钟 120 个请求
UNIFICALLY_RATE_BURST否40
UNIFICALLY_PUBLIC_DISCOVERY否true。允许无密钥调用方运行 initialize、tools/list、resources/list 和 ping。设为 0 可要求所有操作都提供密钥。
UNIFICALLY_ANON_RATE_PER_MIN否每个 IP 每分钟 30 个无密钥请求
UNIFICALLY_ANON_RATE_BURST否12

远程服务

MCP_TRANSPORT=http 会在 /mcp 上提供 Streamable HTTP,并在 GET /sse + POST /messages 上提供旧版 SSE。托管版本运行于 https://mcp.unifically.com/mcp。

每个调用方都发送自己的密钥,因此一个部署即可服务多个用户,并从各自的余额中扣费:

  1. Authorization: Bearer <key>(推荐)
  2. X-API-Key: <key>
  3. ?api_key=<key>,适用于只能接收 URL 的客户端。查询字符串可能会出现在代理日志中,因此尽可能使用请求头。
{
  "mcpServers": {
    "unifically": {
      "url": "https://mcp.unifically.com/mcp",
      "headers": { "Authorization": "Bearer sk-..." }
    }
  }
}

对于 claude.ai(Settings、Connectors、Add custom connector),请将密钥放入 URL:https://mcp.unifically.com/mcp?api_key=sk-...。对于仅支持 stdio 的客户端,可使用 mcp-remote 进行桥接:

{
  "mcpServers": {
    "unifically": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.unifically.com/mcp", "--header", "Authorization: Bearer sk-..."]
    }
  }
}

HTTP 模式详情:

  • Streamable HTTP 为无状态模式,因此可在任何反向代理后扩展,无需粘性会话。
  • 无密钥的调用方可以运行 initialize、tools/list、resources/list、prompts/list 和 ping,以便目录读取工具列表。其他所有操作都会返回 401。无密钥流量按 IP 限速,并发消息数上限为 16。GET /.well-known/mcp-config 会返回仅包含一个必填设置(api_key)的 JSON Schema,GET /.well-known/mcp/server-card.json 会返回工具列表。
  • 密钥会向 API 验证,验证结果会缓存;此外,每个 IP 都有失败验证次数上限。限速按密钥和账户分别执行,因此增加密钥不会提高单个账户的限额。批次最多包含 16 条消息,请求正文最大为 512 KB。
  • 浏览器的 Origin 请求头会经过 DNS 重绑定验证。MCP 客户端不会发送该请求头,因此不受影响。
  • 仅信任来自 UNIFICALLY_TRUSTED_PROXIES 的 X-Forwarded-For。提供的 Compose 文件会为其隔离网络设置 private;请勿在共享 LAN 上使用该设置。
  • 余额为零的密钥仍可查询余额、列出和获取任务,以及查询作业价格,但无法启动作业(402)。
  • GET / 会返回连接说明,GET /health 是无需身份验证的健康检查。
自托管

此仓库提供了 Dockerfile 和 docker-compose.yml,可通过每个请求的密钥运行 HTTP 传输。将容器置于 HTTPS 反向代理之后,将域名指向该容器,并使用 /health 进行健康检查。无需设置任何环境变量。对于共享部署,UNIFICALLY_CONFIRM_COST_ABOVE=1.00 是一个合理的默认值。

开发

git clone https://github.com/unifically-dev/unifically-mcp.git
cd unifically-mcp
npm install
cp .env.example .env       # add your UNIFICALLY_API_KEY
npm run dev

交互式检查工具:

npx @modelcontextprotocol/inspector npx -y tsx src/index.ts

测试:

npm test               # build + smoke test
npm run test:vitest    # full suite

故障排查

症状解决方法
spawn npx ENOENTNode 不在 PATH 中。在客户端配置中使用 node 和 dist/index.js 的绝对路径。
401 Unauthorized客户端的 env 块中缺少 UNIFICALLY_API_KEY。编辑后重启客户端。
402 Payment Required前往 https://unifically.com/payments 充值。
工具调用卡住对于时长较长的视频或完整歌曲:传入 wait: false 或 callback_url。
客户端未显示工具运行 npx @modelcontextprotocol/inspector npx -y @unifically/mcp-server。如果工具在检查器中显示,则客户端配置 JSON 格式错误。

链接

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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