Frame.io V4 MCP
Frame.io V4 MCP
Node.js stdio MCP server backed by Frame.io's official V4 OpenAPI document. It exposes all 97 operations through a searchable catalog and adds complete local multipart upload handling.
MCP tools
verify_connection— verifies OAuth withGET /v4/mesearch_tools— searches by text, API tag, or HTTP methodget_tool_schema— returns official parameters and referenced schemas for anoperationIdinvoke_tool— invokes any published operation; DELETE requiresconfirm: trueupload_local_file— creates an upload, PUTs each prescribed chunk, and reads upload status
The catalog covers accounts, workspaces, projects, folders, files, version stacks, comments, shares, reviewers, permissions, metadata, search, collections, groups, custom actions, webhooks, users, and audit logs.
Install and run
Requires Node.js 20 or newer.
npm install
cp .env.example .env
npm startKeep .env private. The server never writes or prints credentials.
Adobe Developer Console and OAuth
Sign in to Adobe Developer Console with the Adobe ID used for Frame.io V4.
Create a Developer Console project. This is an API application, not a Frame.io content project.
Choose Add API, select Frame.io API, and select OAuth Native App for user authentication.
Use the Native App's authorization-code flow with PKCE. Do not create or store a client secret.
Request
openid,profile,offline_access, andadditional_info.roles. Adobe documents that refresh-token availability depends on the credential and API; the MCP also works with only a short-lived access token.Complete the Adobe login yourself, then place the returned values in
.env.FRAMEIO_ACCESS_TOKENis sufficient for a session. If Adobe issues a refresh token,ADOBE_CLIENT_IDandADOBE_REFRESH_TOKENenable public-client refresh without a client secret.Verify only after login:
node probe.mjs verify_connection '{}'Official references: Getting Started, Authentication, Upload, and OpenAPI.
Examples
Discover the exact API operation before calling it:
node probe.mjs search_tools '{"query":"comments"}'
node probe.mjs get_tool_schema '{"operation_id":"comments.index"}'Timecoded client comments use the documented query parameter:
{
"operation_id": "comments.index",
"path": { "account_id": "ACCOUNT_ID", "file_id": "FILE_ID" },
"query": { "timestamp_as_timecode": true, "include": "owner,replies" }
}Creating a review link uses shares.create; its response contains short_url. New cuts can be uploaded and combined with an earlier file using version_stacks.create. Approval must come from explicit API evidence such as the production's configured metadata or review decision; zero unresolved comments alone is not treated as approval.
Tests
npm testThe checked-in OpenAPI document was retrieved on 2026-09-11 and has SHA-256 e7487c89bfebadca4d67ee9e7a6c38c56318d3d83a41d52f266cb05d6681c825.