ViewMax MCP
Générez des vidéos, des images, de la musique et de l'audio avec ViewMax via un serveur MCP distant ; inspectez les modèles, interrogez les tâches et vérifiez les crédits.
Serveur MCP hébergé
npx add-mcp 'https://viewmax.studio/api/mcp'S’installe dans Claude Code, Codex, Cursor et plus
Documentation
ViewMax MCP
将 MCP 客户端连接到 ViewMax——工具、参数、积分成本、任务轮询、幂等重试,以及视频、图片、音乐和音频生成的错误处理。
想先了解这个 Server 能做什么?请从 ViewMax MCP 主页 开始;本页详细说明接入和配置。
端点与认证
ViewMax 提供名为 viewmax 的远程 MCP Server:
https://viewmax.studio/api/mcp
仅支持 Streamable HTTP:GET 返回 405,没有旧版 SSE 端点。
OAuth(claude.ai 与 Claude 桌面版)。 使用上方 URL 添加自定义连接器,点击 Connect 并用 ViewMax 账号登录。客户端会通过 /.well-known/oauth-protected-resource 发现授权流程,无需 API key。
API key(Claude Code、Cursor、Codex、VS Code、SDK)。 在 设置 → API Keys 创建 key,并在每个请求中发送:
Authorization: Bearer sk-your-api-key
没有 Authorization 请求头时,Server 仍会响应 initialize、tools/list 和目录类工具(list_video_models、get_video_model、list_image_models、get_image_model、list_music_models、list_voices)。get_task、wait_for_task、get_credits 以及所有 generate_* 工具会返回 unauthorized 错误。如果 bearer token 既不是有效的 API key,也不是有效的 OAuth access token,会得到带 OAuth challenge 的 HTTP 401;因此配置了已吊销 key 的客户端可能会转而要求你登录,请创建新 key。
连接客户端
以下配置都指向同一个端点。请把 key 放在 VIEWMAX_API_KEY 环境变量中,不要写进会提交的文件。这些配置按各客户端文档中的格式编写;客户端语法会随版本变化,如果某个字段被拒绝,请按客户端自己的 MCP 指南,填写上面的 URL 和请求头。
claude.ai 与 Claude 桌面版。 设置 → Connectors → Add custom connector。命名为 ViewMax,粘贴 https://viewmax.studio/api/mcp,点击 Connect 并登录。
Claude Code。
claude mcp add --transport http viewmax https://viewmax.studio/api/mcp \
--header "Authorization: Bearer $VIEWMAX_API_KEY"
如需在项目中共享,提交 .mcp.json。Claude Code 会从每位开发者的环境中展开 ${VIEWMAX_API_KEY}:
{
"mcpServers": {
"viewmax": {
"type": "http",
"url": "https://viewmax.studio/api/mcp",
"headers": {
"Authorization": "Bearer ${VIEWMAX_API_KEY}"
}
}
}
}
Cursor。 添加到 ~/.cursor/mcp.json(或项目中的 .cursor/mcp.json),然后重新加载 Cursor:
{
"mcpServers": {
"viewmax": {
"url": "https://viewmax.studio/api/mcp",
"headers": {
"Authorization": "Bearer ${env:VIEWMAX_API_KEY}"
}
}
}
}
Codex(ChatGPT)。 Codex 从指定的环境变量读取 key:
codex mcp add viewmax --url https://viewmax.studio/api/mcp \
--bearer-token-env-var VIEWMAX_API_KEY
等价的 ~/.codex/config.toml 配置:
[mcp_servers.viewmax]
url = "https://viewmax.studio/api/mcp"
bearer_token_env_var = "VIEWMAX_API_KEY"
VS Code。 添加 .vscode/mcp.json;VS Code 会提示输入一次 key 并安全保存:
{
"inputs": [
{
"type": "promptString",
"id": "viewmax-api-key",
"description": "ViewMax API key",
"password": true
}
],
"servers": {
"viewmax": {
"type": "http",
"url": "https://viewmax.studio/api/mcp",
"headers": {
"Authorization": "Bearer ${input:viewmax-api-key}"
}
}
}
}
其他客户端。 能修改自身 MCP 配置的 Agent 可以自行接入。粘贴这句话:“把 ViewMax MCP Server 添加到这个客户端:Streamable HTTP 传输,URL 为 https://viewmax.studio/api/mcp,HTTP 请求头 Authorization: Bearer <我的 API key>。然后调用 get_credits 验证连接。”
list_video_models 无需认证,只能证明 Server 可达;get_credits 才能证明连接已认证。
工具
该 Server 可生成视频、图片、音乐和音频。生成会消耗所连接账户的积分。在 Pro/Ultra 上,旗舰图片(GPT Image 2、GPT Image 2.5、Nano Banana 2、Grok Imagine)使用共用的每日公平使用额度,Ultra 上的 ViewMax C1 也是如此;额度覆盖任务时 cost_credits 为 0。
每个工具结果都是一个包含 JSON 的文本块。目录类工具、get_task、wait_for_task 和 get_credits 标记为只读(readOnlyHint),客户端可以不经确认直接运行。generate_* 工具标记为非只读、非破坏性、非幂等、会访问外部服务(open-world)。
任务与账户
| 工具 | 参数 | 结果 |
|---|---|---|
get_task | task_id | task_id、status、media_type、cost_credits;有结果后返回 output_urls(视频任务还有 video_urls);failed 或 canceled 时返回 error_code 和 error_message |
wait_for_task | task_id、可选 timeout_seconds(整数 1–50,默认 45) | 每 5 秒检查一次,直到任务结束或超时;返回 get_task 的字段,任务仍在运行时另带 poll_hint |
get_credits | 无 | remaining_credits |
视频
| 工具 | 参数 | 结果 |
|---|---|---|
list_video_models | 无 | 每个模型的 id、label、vendor、各模式的时长和分辨率,以及 credits_label |
get_video_model | model | 完整目录条目:各模式的时长、分辨率、宽高比、audio_toggle、积分、defaults,以及模型设置时的 max_prompt_length |
generate_video | model、prompt;可选 mode、image_urls、video_urls、duration、resolution、aspect_ratio、audio、source_video_duration_seconds(> 0)、idempotency_key | task_id、status、cost_credits、poll_hint |
- 省略
mode时:设置了image_urls则为image-to-video,设置了video_urls则为video-to-video,否则为text-to-video。 - 省略的
duration、resolution和aspect_ratio会在计价前按该模式的defaults填充,因此cost_credits与实际渲染一致。 - 仅当模式的
audio_toggle为true时才发送audio: true。 - 按秒计费的模型(Seedance 2.x、Seedance 2.5、MiniMax H3)使用
video_urls时需要source_video_duration_seconds。 - 媒体 URL 必须是服务商无需认证即可访问的公开
http(s)URL。
图片
| 工具 | 参数 | 结果 |
|---|---|---|
list_image_models | 无 | 每个模型的 id、label、vendor、各模式的宽高比和质量,以及 credits_label |
get_image_model | model | 单个图片模型完整的能力和积分价格 |
generate_image | model、prompt;可选 scene(text-to-image 或 image-to-image)、image_urls、aspect_ratio、quality、idempotency_key | task_id、status、cost_credits、poll_hint |
省略 scene 时,设置了 image_urls 则为 image-to-image。GPT Image 2.5 会拒绝未知的 quality 或尺寸;其他模型会把未知的 aspect_ratio 或 quality 替换为默认值并按该值计费,因此只发送模型列出的取值。
音乐
| 工具 | 参数 | 结果 |
|---|---|---|
list_music_models | 无 | 音乐模型、控制项和积分成本 |
generate_music | prompt;可选 duration_seconds(3–300,默认 60)、instrumental、style、lyrics、idempotency_key | task_id、status、cost_credits;通常已包含 output_urls |
音乐在 60 秒以内消耗 60 积分,超出部分每秒 1 积分;套餐额度不覆盖音乐。描述一首曲子时,把描述写在 prompt 中并省略 style。发送 style 会让服务商把 prompt 当作歌词,因此使用 style 时不要再发送 lyrics。
音频
| 工具 | 参数 | 结果 |
|---|---|---|
list_voices | 无 | default_model、characters_per_credit(20)、minimum_credits(1)和 voices(id、name、gender、language、languages、accent、use_case、description、preview_url、recommended_model) |
generate_speech | text、voice_id;可选 model_id(默认使用音色的 recommended_model)、speed(0.25–4)、stability(0–1)、similarity_boost(0–1)、idempotency_key | task_id、status、cost_credits;通常已包含 output_urls |
generate_sound_effect | prompt;可选 duration_seconds(0.5–22)、prompt_influence(0–1)、idempotency_key | task_id、status、cost_credits;通常已包含 output_urls |
语音按 ceil(字符数 / 20) 积分计费,最少 1 积分。每个音效消耗 5 积分。
模型校验、计价和退款规则与 v1 API 相同。
Agent 工作流
- 选择模型。 调用对应的
list_*工具,再对选定的模型调用get_video_model或get_image_model,读取其模式、可用取值、defaults和max_prompt_length。 - 确认成本。 根据目录价格和将要发送的取值(或模式的
defaults)算出积分,告诉用户将使用的模型和成本,并在调用任何generate_*前等待确认。get_credits可查看余额。 - 只创建一次。 调用
generate_*工具时带上新的idempotency_key,例如为本次请求生成的 UUID。 - 轮询。 如果
status为pending或processing,用task_id调用wait_for_task;只要结果中还有poll_hint就继续调用。视频可能需要几分钟。Server 没有任务超时,任务也不会丢失:请自行设定截止时间,之后可用get_task继续查询。音乐、语音和音效通常在创建调用中即完成。 - 返回结果。
success时把output_urls交给用户;failed或canceled时报告error_message,积分会自动退回。
幂等重试
每个 generate_* 工具都接受 idempotency_key(1–200 个可见 ASCII 字符,不含空格)。如果调用超时或连接中断,用同一个 key 再次调用:ViewMax 会返回首次调用创建的任务及其原始 cost_credits,不会再次扣费。参数不会被比对,所以每个新请求都要使用新 key。不带 key 时,每次调用都会创建并扣费一个新任务。MCP 的 key 与 REST 的 Idempotency-Key 相互独立。
错误与恢复
失败的工具调用带有 isError: true,并返回一个包含 JSON 的文本块:
{
"error": "minimax-h3 prompt must be 7000 characters or fewer, got 7412",
"error_type": "invalid_request",
"hint": "Fix the arguments using this message, then call the tool again. Re-read the model with get_video_model or get_image_model before repeating an unsupported model or option."
}
error_type 的取值与 REST 的 error.type 相同,hint 说明下一步操作。调用在失败前已创建任务时,会额外带上 task_id。
error_type | 常见原因 | 处理方式 |
|---|---|---|
unauthorized | 连接上没有 OAuth token 或 API key | 使用 OAuth 连接,或发送 Authorization: Bearer sk-...,key 可在 设置 → API Keys 创建 |
invalid_request | 未知或已下线的模型(video model temporarily unavailable: ...)、不支持的模式或选项、prompt 超过 max_prompt_length、未知 voice_id、已禁用的模型(This capability is unavailable.) | 按 error 修正参数,并重新读取 get_video_model 或 get_image_model。带 task_id 时表示服务商拒绝了这些设置,任务已退款 |
content_rejected | prompt 提到了禁止的用途(deepfake、换脸、冒充他人),即使出现在否定指令中也会命中;或服务商审核拒绝了 prompt 或素材 | 修改内容。原样重试仍会失败 |
insufficient_credits | 余额低于成本,未创建任务 | 告知用户。在 定价页 充值前不要重试 |
not_found | task_id 不存在或属于其他账户 | 使用本账户返回的 task_id |
internal_error | 服务商或服务器故障 | 按 hint 处理:任务已失败并退款时重试一次;服务商可能仍会完成时,用 task_id 调用 wait_for_task,不要新建任务 |
超出工具输入 schema 的参数(例如 timeout_seconds: 120)会在工具运行前被拒绝,返回纯文本 Input validation error: ...。共享的错误分类见 API 错误。