Frame.io V4 MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Frame.io V4 MCPfind all comments on file FILE_ID in account ACCOUNT_ID with timecodes"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
Related MCP server: @wecandeo/mcp-videopack-v4
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.
Available Tools
5 toolsget_tool_schemaB
Get official parameters and referenced schemas for one Frame.io V4 operation.
| Name | Required | Description | Default |
|---|---|---|---|
| operation_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read-only lookup but never states that it is non-mutating, what happens with an unknown operation_id, or whether the returned schema is authoritative. The word 'official' hints that returned parameters should be used verbatim, which is modest added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler, stating the resource, return content, and scope. Nothing is redundant or buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description only loosely sketches the return ('parameters and referenced schemas') and omits the workflow context — that this lookup precedes invocation — and error behavior for invalid ids. Adequate but with clear gaps for a schema-discovery tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the sole required parameter operation_id is undocumented in the schema. The description adds partial semantics by identifying it as naming 'one Frame.io V4 operation', but gives no format, source, or validation detail, so it does not fully compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Get official parameters and referenced schemas') scoped to 'one Frame.io V4 operation', which is more precise than the bare name get_tool_schema. It does not, however, explicitly distinguish itself from siblings like search_tools or invoke_tool, leaving the agent to infer its place in the toolchain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no stated prerequisite (e.g., that operation_id typically comes from search_tools), and no reference to the sibling tools. An agent must guess that this is a discovery step to run before invoke_tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoke_toolC
Invoke one operation from the official Frame.io V4 OpenAPI catalog. DELETE requires confirm=true.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| path | No | ||
| query | No | ||
| confirm | No | ||
| operation_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses one useful trait (the confirm requirement for DELETE), but says nothing about side effects, whether arbitrary operations are destructive, authentication needs, or how the confirm gate is enforced for other write verbs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler, and the constraining rule is front-loaded after the core purpose. It is efficient, though arguably too terse given the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a high-complexity generic gateway with five under-documented parameters, nested objects, no annotations, and no output schema, yet the description gives no guidance on constructing path/query/body payloads or discovering operation_ids. For a tool of this scope the description is materially incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across five parameters, including nested body/path/query objects that carry no structure or examples. The description only hints at the semantics of 'confirm' (via the DELETE note) and says nothing about operation_id, body, path, or query, so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Invoke') and resource ('one operation from the official Frame.io V4 OpenAPI catalog'), so an agent can tell it performs a passthrough API call. It does not differentiate itself from siblings such as get_tool_schema or upload_local_file, which also touch the tool surface, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It includes one concrete usage rule (DELETE requires confirm=true), which implies when the confirm parameter is mandatory. However, it never states when to prefer this generic invoker over siblings like upload_local_file or how to obtain a valid operation_id, leaving most selection guidance to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_toolsC
Search all operations in the official Frame.io V4 OpenAPI catalog.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | ||
| limit | No | ||
| query | No | ||
| method | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden but only implies it is a read operation. It does not state whether results are paginated, whether limit caps returned matches, how matching is performed (tag/query/method combined or any-of), or what the result payload looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste. Nothing redundant or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter catalog-search tool with no annotations and no output schema, the description is too thin: it omits filtering semantics, result shape, and pagination behavior, leaving the agent to guess at how to construct a useful query.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description mentions none of the four parameters (tag, limit, query, method). The agent cannot tell from either source whether these filters are ANDed, what 'tag' refers to, or that limit defaults to 100 and maxes at 100 — a notable gap for a search tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (all operations in the official Frame.io V4 OpenAPI catalog), which is more precise than a bare 'search'. It does not name or differentiate itself from siblings such as get_tool_schema or invoke_tool, so the agent must infer the discovery-to-invocation workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never says when to use this tool versus the sibling tools (get_tool_schema, invoke_tool) that operate on the same catalog. No prerequisites, no exclusions, no statement of what to do with the results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_local_fileC
Upload a local file through Frame.io V4 presigned URLs and return its upload status.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| file_path | Yes | ||
| folder_id | Yes | ||
| account_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden. It hints at the mechanism (presigned URLs, implying a direct-to-storage transfer) and that it returns upload status, but omits required permissions/auth, file size limits, overwrite behavior, and whether failures are partial or atomic — all material for an upload tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the verb front-loaded and no filler. Nothing redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, no output schema, and 4 undocumented parameters, the description is too thin. It should disclose permission needs, size/type constraints, and what 'upload status' entails, none of which are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 4 parameters (file_path, account_id, folder_id, name). The description only loosely implies file_path is a local path; account_id, folder_id, and the optional name are never explained. With zero schema coverage, the description should have compensated but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (upload), resource (local file), and mechanism (Frame.io V4 presigned URLs), plus what it returns (upload status). An agent can tell what this does without opening the schema. Sibling tools are unrelated meta-tools, so no differentiation is required.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, no alternatives, and no indication of when this is appropriate versus not. The agent gets a capability statement but zero routing context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_connectionA
Verify Frame.io V4 OAuth by calling GET /v4/me.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose the underlying HTTP call (GET /v4/me), which tells the agent the operation is a read with no mutation, but it says nothing about what success vs. failure looks like, required credentials/token state, or error/rate-limit behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the purpose first and the mechanism second; no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless connectivity check with no output schema, the description covers what it does and how it does it. It could say more about interpreting the result (success/failure semantics, auth prerequisites), but nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the baseline rule a 4 applies. There is nothing for the description to disambiguate beyond what the empty schema already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (verify) and a specific resource (Frame.io V4 OAuth), plus the exact mechanism (GET /v4/me), so the agent knows precisely what the tool does. It is unambiguous against the unrelated meta siblings, though it does not explicitly contrast itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is a pre-flight auth/connectivity check, but there is no explicit 'use before X', 'do not use when Y', or named alternative. Adequate but with a clear gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v1.0.0- First observed
get_tool_schema - First observed
invoke_tool - First observed
search_tools - First observed
upload_local_file - First observed
verify_connection
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: verify_connection checks OAuth, search_tools discovers operations, get_tool_schema retrieves parameter details, invoke_tool executes an operation, and upload_local_file handles file uploads. No two tools overlap in a way that would cause misselection.
All tool names follow a consistent snake_case verb_noun pattern (e.g., verify_connection, search_tools, get_tool_schema, invoke_tool, upload_local_file). There is no mixing of conventions.
Five tools are well-scoped for a meta-gateway that wraps the entire Frame.io V4 OpenAPI catalog. Each tool earns its place, and the count avoids both bloat and thinness.
The server provides full access to the Frame.io V4 API through search_tools, get_tool_schema, and invoke_tool, plus a specialized upload tool and an OAuth check. No obvious gaps exist for its stated purpose as a dynamic API gateway.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Remote MCP for 1,500+ APIs. Vault-managed credentials; OAuth or API key. Search, load, and execute.
- OneOAuthai.withone
Search, document and execute authenticated API calls across 700+ apps via one MCP server
Manage videos and live streams, inspect captions, players and webhooks, and read play analytics.
Generate, edit, and render videos via the Shotstack video editing API.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with FileMaker databases via the Model Context Protocol, providing dynamic script discovery, full CRUD operations, and OData query capabilities with flexible authentication.MIT
- AlicenseAqualityCmaintenanceEnables interaction with Wecandeo VideoPack v4 API for video upload, encoding, publishing, and media library management via natural language.295MIT
- AlicenseNot gradedqualityBmaintenanceEnables coding agents to read and write to Frame.io (projects, assets, reviews, comments, and more) with confirmation-gated mutations.2MIT
- AlicenseAqualityCmaintenanceEnables querying and invoking BlazeMeter's public API v4 explorer operations, including vault settings, session management, and static asset routes.3MIT