Future Video Studio

Create and manage cinematic AI video renders through the Future Video Studio Agent API.

我該用這個嗎

品質與安全性

B
說明品質
100%
結構描述完整度
61%
命名品質
80%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~3,342Token(工具定義)
~4.0 KB典型回應大小
顯著的注意力影響(128k 上下文的 2.61%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "future-video-studio": {
      "command": "uvx",
      "args": [
        "future-video-studio-mcp"
      ]
    }
  }
}

可執行的套件

pypifuture-video-studio-mcp0.1.8stdio

遠端端點

https://mcp.future.video/mcpstreamable-http

它能做什麼

工具清單

工具(8)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢fvs_open_chatgpt_app(project_id, status_url, quote_id, claim_token, final_video_url)

Open the Future Video Studio ChatGPT app widget without creating a render. Use this when the user wants the FVS app panel, wants to paste a status URL, or wants to prepare a render interactively before spending credits.

輸入結構描述

{
  "type": "object",
  "properties": {
    "project_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Project Id"
    },
    "status_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Status Url"
    },
    "quote_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Quote Id"
    },
    "claim_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Claim Token"
    },
    "final_video_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Final Video Url"
    }
  },
  "title": "fvs_open_chatgpt_appArguments"
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "fvs_open_chatgpt_appDictOutput"
}
🔴fvs_submit_render(request, upload_urls, poll_until_complete)

Submit a Future Video Studio render job through the FVS Agent API. Pass the render payload in the required `request` object. For reference assets, pass public HTTPS URLs in `upload_urls`; every `request.assets[].filename` must match one uploaded URL basename or explicit upload URL filename. Credentials come from the connector header, marketplace account mapping, or FVS_AGENT_API_KEY in the MCP server environment.

輸入結構描述

{
  "type": "object",
  "properties": {
    "request": {
      "$ref": "#/$defs/RenderRequestPayload",
      "description": "Required render request object. Include name. project_mode must be one of scene, music, or custom. Use assets[].purpose for asset intent. Usually include screenplay, instructions, shot_count, duration, and resolution."
    },
    "upload_urls": {
      "anyOf": [
        {
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "$ref": "#/$defs/UploadUrlPayload"
              }
            ]
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional public HTTPS reference asset URLs. Each object can include url and filename; filename should match request.assets[].filename.",
      "title": "Upload Urls"
    },
    "poll_until_complete": {
      "default": false,
      "title": "Poll Until Complete",
      "type": "boolean"
    }
  },
  "required": [
    "request"
  ],
  "$defs": {
    "RenderAssetPayload": {
      "additionalProperties": true,
      "properties": {
        "filename": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Basename of an uploaded or referenced asset. When upload_urls is used, this must match an upload_urls filename or URL basename.",
          "title": "Filename"
        },
        "label": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Short label for the asset, such as Character, Logo, or Reference.",
          "title": "Label"
        },
        "purpose": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional guidance for how this asset should be used, such as character_reference, location_reference, logo_reference, style_reference, music_reference, or document_reference. Use this field for asset intent.",
          "title": "Purpose"
        }
      },
      "title": "RenderAssetPayload",
      "type": "object"
    },
    "RenderRequestPayload": {
      "additionalProperties": true,
      "properties": {
        "name": {
          "description": "Required project name for the Future Video Studio render.",
          "title": "Name",
          "type": "string"
        },
        "project_mode": {
          "default": "scene",
          "description": "Render mode: scene for cinematic scenes, music for music-first videos, or custom for advanced requests.",
          "enum": [
            "scene",
            "music",
            "custom"
          ],
          "title": "Project Mode",
          "type": "string"
        },
        "screenplay": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Shot-by-shot creative brief or script describing what should happen in the video.",
          "title": "Screenplay"
        },
        "instructions": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Additional direction for continuity, style, camera movement, subtitles, audio, or constraints.",
          "title": "Instructions"
        },
        "shot_count": {
          "anyOf": [
            {
              "maximum": 64,
              "minimum": 1,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Target number of shots or clips to plan for the render.",
          "title": "Shot Count"
        },
        "scene_target_duration_seconds": {
          "anyOf": [
            {
              "maximum": 600,
              "minimum": 4,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Target total scene duration in seconds.",
          "title": "Scene Target Duration Seconds"
        },
        "video_resolution": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Requested output resolution, such as 720p or 1080p.",
          "title": "Video Resolution"
        },
        "visual_style_preset": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional FVS visual style preset, such as realistic_cinematic.",
          "title": "Visual Style Preset"
        },
        "assets": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/RenderAssetPayload"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional reference assets that correspond to uploaded or public upload_urls.",
          "title": "Assets"
        }
      },
      "required": [
        "name"
      ],
      "title": "RenderRequestPayload",
      "type": "object"
    },
    "UploadUrlPayload": {
      "additionalProperties": true,
      "properties": {
        "url": {
          "description": "Public HTTPS URL for a reference asset.",
          "title": "Url",
          "type": "string"
        },
        "filename": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional basename used to match request.assets[].filename.",
          "title": "Filename"
        }
      },
      "required": [
        "url"
      ],
      "title": "UploadUrlPayload",
      "type": "object"
    }
  },
  "title": "fvs_submit_renderArguments"
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "fvs_submit_renderDictOutput"
}
🟡fvs_create_paid_render_quote(request, upload_urls)

Create a no-account Link payment quote for an FVS render. The backend returns HTTP 402 payment details as data: `payment_url`, `status_url`, `claim_token`, `amount_cents`, `currency`, and a raw `www_authenticate` challenge. Pay `payment_url` with Link's MPP flow, then poll with fvs_get_paid_render_status. Local file uploads are not available in paid quote mode; use public HTTPS `upload_urls` when assets are needed.

輸入結構描述

{
  "type": "object",
  "properties": {
    "request": {
      "$ref": "#/$defs/RenderRequestPayload",
      "description": "Required render request object used for the paid quote. Include name. project_mode must be one of scene, music, or custom. Use assets[].purpose for asset intent. Usually include screenplay, instructions, shot_count, duration, and resolution."
    },
    "upload_urls": {
      "anyOf": [
        {
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "$ref": "#/$defs/UploadUrlPayload"
              }
            ]
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional public HTTPS reference asset URLs. Each object can include url and filename; filename should match request.assets[].filename.",
      "title": "Upload Urls"
    }
  },
  "required": [
    "request"
  ],
  "$defs": {
    "RenderAssetPayload": {
      "additionalProperties": true,
      "properties": {
        "filename": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Basename of an uploaded or referenced asset. When upload_urls is used, this must match an upload_urls filename or URL basename.",
          "title": "Filename"
        },
        "label": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Short label for the asset, such as Character, Logo, or Reference.",
          "title": "Label"
        },
        "purpose": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional guidance for how this asset should be used, such as character_reference, location_reference, logo_reference, style_reference, music_reference, or document_reference. Use this field for asset intent.",
          "title": "Purpose"
        }
      },
      "title": "RenderAssetPayload",
      "type": "object"
    },
    "RenderRequestPayload": {
      "additionalProperties": true,
      "properties": {
        "name": {
          "description": "Required project name for the Future Video Studio render.",
          "title": "Name",
          "type": "string"
        },
        "project_mode": {
          "default": "scene",
          "description": "Render mode: scene for cinematic scenes, music for music-first videos, or custom for advanced requests.",
          "enum": [
            "scene",
            "music",
            "custom"
          ],
          "title": "Project Mode",
          "type": "string"
        },
        "screenplay": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Shot-by-shot creative brief or script describing what should happen in the video.",
          "title": "Screenplay"
        },
        "instructions": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Additional direction for continuity, style, camera movement, subtitles, audio, or constraints.",
          "title": "Instructions"
        },
        "shot_count": {
          "anyOf": [
            {
              "maximum": 64,
              "minimum": 1,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Target number of shots or clips to plan for the render.",
          "title": "Shot Count"
        },
        "scene_target_duration_seconds": {
          "anyOf": [
            {
              "maximum": 600,
              "minimum": 4,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Target total scene duration in seconds.",
          "title": "Scene Target Duration Seconds"
        },
        "video_resolution": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Requested output resolution, such as 720p or 1080p.",
          "title": "Video Resolution"
        },
        "visual_style_preset": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional FVS visual style preset, such as realistic_cinematic.",
          "title": "Visual Style Preset"
        },
        "assets": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/RenderAssetPayload"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional reference assets that correspond to uploaded or public upload_urls.",
          "title": "Assets"
        }
      },
      "required": [
        "name"
      ],
      "title": "RenderRequestPayload",
      "type": "object"
    },
    "UploadUrlPayload": {
      "additionalProperties": true,
      "properties": {
        "url": {
          "description": "Public HTTPS URL for a reference asset.",
          "title": "Url",
          "type": "string"
        },
        "filename": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional basename used to match request.assets[].filename.",
          "title": "Filename"
        }
      },
      "required": [
        "url"
      ],
      "title": "UploadUrlPayload",
      "type": "object"
    }
  },
  "title": "fvs_create_paid_render_quoteArguments"
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "fvs_create_paid_render_quoteDictOutput"
}
🟢fvs_get_render_status(project_id, status_url)

Check a Future Video Studio render job. Provide either `project_id` or the full `status_url` returned by fvs_submit_render.

輸入結構描述

{
  "type": "object",
  "properties": {
    "project_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Project Id"
    },
    "status_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Status Url"
    }
  },
  "title": "fvs_get_render_statusArguments"
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "fvs_get_render_statusDictOutput"
}
🟢fvs_get_paid_render_status(quote_id, claim_token, status_url)

Check a no-account paid render created with fvs_create_paid_render_quote. Provide the full `status_url` or pass both `quote_id` and `claim_token`.

輸入結構描述

{
  "type": "object",
  "properties": {
    "quote_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Quote Id"
    },
    "claim_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Claim Token"
    },
    "status_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Status Url"
    }
  },
  "title": "fvs_get_paid_render_statusArguments"
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "fvs_get_paid_render_statusDictOutput"
}
🔴fvs_cancel_render(project_id, cancel_url)

Cancel a Future Video Studio render job. Provide either `project_id` or the full `cancel_url` returned by fvs_submit_render.

輸入結構描述

{
  "type": "object",
  "properties": {
    "project_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Project Id"
    },
    "cancel_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Cancel Url"
    }
  },
  "title": "fvs_cancel_renderArguments"
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "fvs_cancel_renderDictOutput"
}
🔴fvs_download_final_video(final_video_url, output_path, overwrite)

Download a completed Future Video Studio final render URL to a local file. Use this only after fvs_get_render_status or fvs_get_paid_render_status returns a final_video_url for a completed render. The tool performs an unauthenticated HTTPS GET to that signed URL and writes the response bytes to output_path on the MCP server's local filesystem. It does not call the FVS Agent API, spend wallet credits, require FVS_AGENT_API_KEY, cancel jobs, or modify remote render state. Side effects and constraints: output_path is a local filesystem path for the MCP server process, parent directories are created, existing files are not replaced unless overwrite is true, and large videos may take minutes to download. The request timeout is 600 seconds. Use a fresh status check to refresh expired signed URLs, and do not pass arbitrary or untrusted URLs.

輸入結構描述

{
  "type": "object",
  "properties": {
    "final_video_url": {
      "description": "HTTPS signed final_video_url returned by a completed fvs_get_render_status or fvs_get_paid_render_status response. Use a fresh status check if the signed URL has expired.",
      "title": "Final Video Url",
      "type": "string"
    },
    "output_path": {
      "description": "Local filesystem path where the MCP server should write the video, for example C:/Users/me/Videos/fvs-result.mp4 or /tmp/fvs-result.mp4. Parent directories are created. Existing files are refused unless overwrite is true.",
      "title": "Output Path",
      "type": "string"
    },
    "overwrite": {
      "default": false,
      "description": "Set true only when replacing an existing output_path is intended. Defaults to false to avoid accidental local file overwrites.",
      "title": "Overwrite",
      "type": "boolean"
    }
  },
  "required": [
    "final_video_url",
    "output_path"
  ],
  "title": "fvs_download_final_videoArguments"
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "fvs_download_final_videoDictOutput"
}
🟢fvs_example_render_request

Return a minimal scene render request agents can adapt.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "title": "fvs_example_render_requestArguments"
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "fvs_example_render_requestDictOutput"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本8 個工具
已驗證未記錄版本8 個工具
已驗證未記錄版本8 個工具