{
  "markdown": "# Future Video Studio MCP\n\n<!-- mcp-name: video.future/future-video-studio -->\n\nFuture Video Studio MCP lets agents create, monitor, cancel, and download\ncinematic AI video renders through the Future Video Studio Agent API.\n\nThe hosted MCP server is available at:\n\n```text\nhttps://mcp.future.video/mcp\n```\n\nThe same server can also run locally over stdio from this Python package.\n\nThe hosted service also serves the ChatGPT Apps domain verification endpoint at\n`https://mcp.future.video/.well-known/openai-apps-challenge`. Set\n`OPENAI_APPS_CHALLENGE_RESPONSE` only if the submission dashboard requires an\nexact challenge body.\n\n## ChatGPT App\n\nThe hosted MCP server is also ready to connect as a ChatGPT App in developer\nmode:\n\n```text\nConnector URL: https://mcp.future.video/mcp\nApp manifest:  https://mcp.future.video/chatgpt-app.json\nWidget URI:    ui://future-video-studio/render-console-v1.html\n```\n\nThe app exposes a small render console inside ChatGPT. It can prepare a render,\nsubmit account-wallet jobs, create no-account Link pay-per-render quotes, poll\nstatus, show payment links, and open the finished video when FVS returns a\nsigned `final_video_url`.\n\nChatGPT connector setup:\n\n- Account mode: add `X-FVS-Agent-Key` as a secret connector header.\n- Pay-per-render mode: leave `X-FVS-Agent-Key` unset, or set\n  `X-FVS-Billing-Mode: pay-per-render`.\n- Marketplace-linked mode: use the signed `X-FVS-Marketplace-*` headers from\n  the account-linking gateway.\n\nIn ChatGPT, enable developer mode, create a connector, and use\n`https://mcp.future.video/mcp` as the connector URL. The tool metadata links the\nrender tools to the FVS widget using the MCP Apps `ui.resourceUri` field and the\nChatGPT `openai/outputTemplate` compatibility field.\n\n## A2A / Gemini Enterprise Preview\n\nThe hosted service also exposes a first A2A-compatible wrapper for the Google\nCloud Marketplace / Gemini Enterprise Track 3 path:\n\n```text\nhttps://mcp.future.video/.well-known/agent-card.json\nhttps://mcp.future.video/message:send\nhttps://mcp.future.video/tasks/{task_id}\nhttps://mcp.future.video/tasks/{task_id}:cancel\n```\n\nThe A2A layer uses the same `X-FVS-Agent-Key` account credential as the MCP\nserver, marketplace-linked account headers, or paid quote mode. A `message:send`\nrequest can include either plain text brief parts or a structured\n`fvs_render_request` data part. Account and marketplace submissions create an\nFVS Agent API render and return an A2A task whose `id` is the FVS `project_id`.\nPaid quote submissions return HTTP 402 with an A2A task whose `id` is the\n`quote_id`; pay the returned Link/Stripe MPP `payment_url`, then poll\n`/tasks/{quote_id}?claim_token=...`.\n\nThe Agent Card advertises the Official MCP Registry name,\n`video.future/future-video-studio`, so enterprise agents can see both the A2A\ndelegation surface and the hosted MCP tool surface.\n\n## Billing Paths\n\n- Account mode: provide `X-FVS-Agent-Key` or `FVS_AGENT_API_KEY`. Renders charge\n  the owning Future Video Studio account wallet under the same credit model and\n  saved pipeline defaults as the web app.\n- Marketplace-linked mode: provide `X-FVS-Marketplace-Account` for a linked\n  marketplace customer. Production deployments should also set\n  `X-FVS-Marketplace-Entitlement`, `X-FVS-Marketplace-Timestamp`, and\n  `X-FVS-Marketplace-Signature` from the account-linking gateway. The MCP server\n  maps the marketplace account to a stored FVS Agent API key and charges the\n  linked wallet.\n- Pay-per-render mode: omit account credentials or set\n  `X-FVS-Billing-Mode: pay-per-render`. The server returns a Link/Stripe MPP\n  payment quote, then exposes a claim-token status URL so the agent can retrieve\n  the result.\n\nAgents should get explicit user approval before submitting wallet-backed\naccount renders.\n\n## Security Configuration\n\nMarketplace account mapping is configured with environment variables on the MCP\ndeployment:\n\n```powershell\n$env:FVS_MARKETPLACE_MODE = \"optional\"\n$env:FVS_MARKETPLACE_SHARED_SECRET = \"replace-with-random-secret\"\n$env:FVS_MARKETPLACE_REQUIRE_SIGNATURE = \"true\"\n$env:FVS_MARKETPLACE_ACCOUNT_KEYS_JSON = '{\"acct_google_123\":{\"api_key\":\"fvs_live_replace_me\",\"entitlement_id\":\"ent_123\",\"plan\":\"starter\",\"status\":\"active\"}}'\n```\n\nThe marketplace signature is HMAC-SHA256 over:\n\n```text\n{unix_timestamp}.{marketplace_account_id}.{marketplace_entitlement_id}\n```\n\nSend it as `X-FVS-Marketplace-Signature: sha256=<hex>`. The default timestamp\nwindow is 300 seconds and can be adjusted with\n`FVS_MARKETPLACE_SIGNATURE_MAX_SKEW_SECONDS`.\n\nFor Cloud Run production deploys, pass\n`FVS_MARKETPLACE_SHARED_SECRET_SECRET` and\n`FVS_MARKETPLACE_ACCOUNT_KEYS_JSON_SECRET` to `scripts/deploy_mcp_cloud.ps1` so\nthe HMAC secret and account-key mapping come from Secret Manager instead of\nplain environment variables.\n\n## Tools\n\n- `fvs_submit_render`: submit a render request, optionally with public asset URLs\n- `fvs_create_paid_render_quote`: create a no-account Link payment quote\n- `fvs_get_render_status`: check a render by `project_id` or `status_url`\n- `fvs_get_paid_render_status`: check a paid render by `status_url` or `quote_id` plus `claim_token`\n- `fvs_cancel_render`: cancel a render by `project_id` or `cancel_url`\n- `fvs_download_final_video`: save a completed render from its signed URL\n- `fvs_example_render_request`: return an example scene render payload\n- `fvs_open_chatgpt_app`: open the ChatGPT app widget without creating a render\n\n## Downloading Final Renders\n\nUse `fvs_download_final_video` only after `fvs_get_render_status` or\n`fvs_get_paid_render_status` returns a `final_video_url` for a completed render.\nIf a signed URL has expired, call the relevant status tool again to refresh it.\n\nThe download tool:\n\n- performs an unauthenticated HTTPS GET to the signed `final_video_url`\n- writes the video bytes to `output_path` on the MCP server's local filesystem\n- creates missing parent directories\n- refuses to replace an existing file unless `overwrite` is `true`\n- does not require `FVS_AGENT_API_KEY`\n- does not spend wallet credits, create renders, cancel jobs, or modify remote state\n- may take minutes for large videos and uses a 600 second request timeout\n\nParameters:\n\n- `final_video_url`: an absolute HTTPS signed URL returned by a completed render\n  status response. Do not pass arbitrary or untrusted URLs.\n- `output_path`: a local path visible to the MCP server process, such as\n  `C:/Users/me/Videos/fvs-result.mp4` or `/tmp/fvs-result.mp4`.\n- `overwrite`: defaults to `false`; set it to `true` only when replacing the\n  destination file is intended.\n\n## Remote MCP Config\n\nAccount mode:\n\n```json\n{\n  \"mcpServers\": {\n    \"future-video-studio\": {\n      \"url\": \"https://mcp.future.video/mcp\",\n      \"headers\": {\n        \"X-FVS-Agent-Key\": \"fvs_live_replace_me\"\n      }\n    }\n  }\n}\n```\n\nPay-per-render mode:\n\n```json\n{\n  \"mcpServers\": {\n    \"future-video-studio\": {\n      \"url\": \"https://mcp.future.video/mcp\"\n    }\n  }\n}\n```\n\nMarketplace-linked mode:\n\n```json\n{\n  \"mcpServers\": {\n    \"future-video-studio\": {\n      \"url\": \"https://mcp.future.video/mcp\",\n      \"headers\": {\n        \"X-FVS-Billing-Mode\": \"marketplace-linked-account\",\n        \"X-FVS-Marketplace-Account\": \"acct_google_123\",\n        \"X-FVS-Marketplace-Entitlement\": \"ent_123\",\n        \"X-FVS-Marketplace-Timestamp\": \"<unix_timestamp>\",\n        \"X-FVS-Marketplace-Signature\": \"sha256=<hmac>\"\n      }\n    }\n  }\n}\n```\n\n## Local Install\n\n```powershell\npython -m pip install future-video-studio-mcp\npython -m fvs_mcp_server\n```\n\nExample local stdio MCP config:\n\n```json\n{\n  \"mcpServers\": {\n    \"future-video-studio\": {\n      \"command\": \"python\",\n      \"args\": [\"-m\", \"fvs_mcp_server\"],\n      \"env\": {\n        \"FVS_AGENT_API_KEY\": \"fvs_live_replace_me\",\n        \"FVS_AGENT_BASE_URL\": \"https://app.future.video\"\n      }\n    }\n  }\n}\n```\n\n`FVS_AGENT_API_KEY` is optional. Leave it unset to use paid quote mode.\n`FVS_AGENT_BASE_URL` defaults to `https://app.future.video`.\n\n## Local Development\n\n```powershell\npython -m pip install -e \".[dev]\"\npython -m pytest\npython -m fvs_mcp_server\n```\n\nRun the HTTP transport locally:\n\n```powershell\n$env:FVS_MCP_TRANSPORT = \"streamable-http\"\npython -m fvs_mcp_server\n```\n\n## Publishing\n\nBuild and check the package:\n\n```powershell\npython -m build\npython -m twine check dist/*\n```\n\nThis package is intended to publish to PyPI as:\n\n```text\nfuture-video-studio-mcp\n```\n\nThe MCP Registry package verification marker is the hidden comment near the top\nof this README:\n\n```html\n<!-- mcp-name: video.future/future-video-studio -->\n```\n\n## Links\n\n- Future Video Studio: https://future.video\n- Agent API docs: https://future.video/api-docs\n- Hosted MCP manifest: https://mcp.future.video/server.json\n- Official MCP Registry name: `video.future/future-video-studio`\n",
  "bytes": 8777,
  "sha": "7ad7057f881e3b154d466e220c11686b98582d4959626a2a807b70d638070140",
  "repo_slug": "ariadne-coil/fvs-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_video_future_future_video_studio_208ae016/readme"
}