Server definition
- Hash
- sha256:4199e476b8d3bea99638dae69259a8a197f3ee3d0e79999a3b35ef976fbc8e50
- What it is
- What a remote MCP server returned when asked what it offers: 8 tools
The blob, as servednamed by its sha256
{
"instructions": "Create videos through the Future Video Studio Agent API.\n\nIn ChatGPT, this MCP server also exposes a Future Video Studio app widget for\nsubmitting, paying for, polling, and opening renders directly inside the\nconversation.\n\nUse fvs_submit_render for account API-key projects, fvs_create_paid_render_quote\nfor no-account Link payment quotes, fvs_get_render_status or\nfvs_get_paid_render_status to poll, fvs_cancel_render to stop account-owned runs,\nand fvs_download_final_video to save a finished signed final_video_url. Prefer\nFVS_AGENT_API_KEY and FVS_AGENT_BASE_URL from the MCP server environment when\nthe user has an FVS account. Agent API keys are owned by normal FVS user\naccounts and use the same pricing, wallet, and saved pipeline defaults as the\nweb app. Marketplace-linked calls map a signed marketplace account to an FVS\nAgent API key. Paid quotes use the same credit estimate and return a claim token\nso the result can be retrieved without an FVS account.",
"tools": [
{
"description": "Cancel a Future Video Studio render job.\n\n Provide either `project_id` or the full `cancel_url` returned by\n fvs_submit_render.\n ",
"inputSchema": {
"properties": {
"cancel_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Cancel Url"
},
"project_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Project Id"
}
},
"title": "fvs_cancel_renderArguments",
"type": "object"
},
"name": "fvs_cancel_render",
"outputSchema": {
"additionalProperties": true,
"title": "fvs_cancel_renderDictOutput",
"type": "object"
}
},
{
"description": "Create a no-account Link payment quote for an FVS render.\n\n The backend returns HTTP 402 payment details as data: `payment_url`,\n `status_url`, `claim_token`, `amount_cents`, `currency`, and a raw\n `www_authenticate` challenge. Pay `payment_url` with Link's MPP flow, then\n poll with fvs_get_paid_render_status. Local file uploads are not available\n in paid quote mode; use public HTTPS `upload_urls` when assets are needed.\n ",
"inputSchema": {
"$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": {
"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"
},
"instructions": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Additional direction for continuity, style, camera movement, subtitles, audio, or constraints.",
"title": "Instructions"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
}
},
"required": [
"name"
],
"title": "RenderRequestPayload",
"type": "object"
},
"UploadUrlPayload": {
"additionalProperties": true,
"properties": {
"filename": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional basename used to match request.assets[].filename.",
"title": "Filename"
},
"url": {
"description": "Public HTTPS URL for a reference asset.",
"title": "Url",
"type": "string"
}
},
"required": [
"url"
],
"title": "UploadUrlPayload",
"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"
],
"title": "fvs_create_paid_render_quoteArguments",
"type": "object"
},
"name": "fvs_create_paid_render_quote",
"outputSchema": {
"additionalProperties": true,
"title": "fvs_create_paid_render_quoteDictOutput",
"type": "object"
}
},
{
"description": "Download a completed Future Video Studio final render URL to a local file.\n\nUse this only after fvs_get_render_status or fvs_get_paid_render_status returns\na final_video_url for a completed render. The tool performs an unauthenticated\nHTTPS GET to that signed URL and writes the response bytes to output_path on the\nMCP server's local filesystem. It does not call the FVS Agent API, spend wallet\ncredits, require FVS_AGENT_API_KEY, cancel jobs, or modify remote render state.\n\nSide effects and constraints: output_path is a local filesystem path for the MCP\nserver process, parent directories are created, existing files are not replaced\nunless overwrite is true, and large videos may take minutes to download. The\nrequest timeout is 600 seconds. Use a fresh status check to refresh expired\nsigned URLs, and do not pass arbitrary or untrusted URLs.",
"inputSchema": {
"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"
},
"name": "fvs_download_final_video",
"outputSchema": {
"additionalProperties": true,
"title": "fvs_download_final_videoDictOutput",
"type": "object"
}
},
{
"description": "Return a minimal scene render request agents can adapt.",
"inputSchema": {
"properties": {},
"title": "fvs_example_render_requestArguments",
"type": "object"
},
"name": "fvs_example_render_request",
"outputSchema": {
"additionalProperties": true,
"title": "fvs_example_render_requestDictOutput",
"type": "object"
}
},
{
"description": "Check a no-account paid render created with fvs_create_paid_render_quote.\n\n Provide the full `status_url` or pass both `quote_id` and `claim_token`.\n ",
"inputSchema": {
"properties": {
"claim_token": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Claim Token"
},
"quote_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Quote Id"
},
"status_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Status Url"
}
},
"title": "fvs_get_paid_render_statusArguments",
"type": "object"
},
"name": "fvs_get_paid_render_status",
"outputSchema": {
"additionalProperties": true,
"title": "fvs_get_paid_render_statusDictOutput",
"type": "object"
}
},
{
"description": "Check a Future Video Studio render job.\n\n Provide either `project_id` or the full `status_url` returned by\n fvs_submit_render.\n ",
"inputSchema": {
"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"
},
"name": "fvs_get_render_status",
"outputSchema": {
"additionalProperties": true,
"title": "fvs_get_render_statusDictOutput",
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"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"
},
"project_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Project Id"
},
"quote_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Quote Id"
},
"status_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Status Url"
}
},
"title": "fvs_open_chatgpt_appArguments",
"type": "object"
},
"name": "fvs_open_chatgpt_app",
"outputSchema": {
"additionalProperties": true,
"title": "fvs_open_chatgpt_appDictOutput",
"type": "object"
}
},
{
"description": "Submit a Future Video Studio render job through the FVS Agent API.\n\n Pass the render payload in the required `request` object. For reference\n assets, pass public HTTPS URLs in `upload_urls`; every\n `request.assets[].filename` must match one uploaded URL basename or explicit\n upload URL filename. Credentials come from the connector header,\n marketplace account mapping, or FVS_AGENT_API_KEY in the MCP server\n environment.\n ",
"inputSchema": {
"$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": {
"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"
},
"instructions": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Additional direction for continuity, style, camera movement, subtitles, audio, or constraints.",
"title": "Instructions"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
}
},
"required": [
"name"
],
"title": "RenderRequestPayload",
"type": "object"
},
"UploadUrlPayload": {
"additionalProperties": true,
"properties": {
"filename": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional basename used to match request.assets[].filename.",
"title": "Filename"
},
"url": {
"description": "Public HTTPS URL for a reference asset.",
"title": "Url",
"type": "string"
}
},
"required": [
"url"
],
"title": "UploadUrlPayload",
"type": "object"
}
},
"properties": {
"poll_until_complete": {
"default": false,
"title": "Poll Until Complete",
"type": "boolean"
},
"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"
}
},
"required": [
"request"
],
"title": "fvs_submit_renderArguments",
"type": "object"
},
"name": "fvs_submit_render",
"outputSchema": {
"additionalProperties": true,
"title": "fvs_submit_renderDictOutput",
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:4199e476b8d3bea99638dae69259a8a197f3ee3d0e79999a3b35ef976fbc8e50 | sha256sum