Frame.io MCP
Connects Claude to Frame.io to pull transcripts, post frame-accurate comments, list comments, and upload attachments.
README
Frame.io MCP
Connect Claude to Frame.io. Pull transcripts, post frame-accurate comments, walk your own comment list, upload attachments — all from inside Claude Desktop, Claude Code, Cowork, or any MCP-compatible client.
Built by AI Scale Studio as the companion tool for the AI Founders HQ Higgsfield workflow.
What it does
Five tools, all mapped to the Frame.io v4 REST API:
| Tool | What it does |
|---|---|
frameio_get_asset_from_url |
Resolve a Frame.io project or file URL to an account_id, project_id, and file_id. |
frameio_get_transcript_from_sibling |
Find an SRT/VTT transcript file next to a video in the same Frame.io folder, download and parse it into timestamped lines. |
frameio_post_comment |
Post a frame-accurate SMPTE-timestamped comment on a file. |
frameio_list_comments |
List comments on a file, with a filter for "only mine." Fable 5 uses this to walk its own comment list back. |
frameio_upload_attachment |
Attach a file (MP4, PNG, PDF, ...) to a specific comment. |
Why "sibling" transcript? Frame.io hasn't shipped a public transcript API yet (on their roadmap, no ETA). The workaround: export the transcript from Frame.io's UI (one click → SRT), drop it in the same folder as the video, and this MCP grabs it. When Frame.io ships the native transcript API, the frameio_get_transcript_from_sibling tool swaps to it internally and the editor's export step disappears.
Quickstart
Requirements
- Python 3.11+
- A Frame.io v4 account
- An Adobe Developer Console project with the Frame.io API added and OAuth Web App credentials generated (setup guide below)
Install
pipx install frameio-mcp
Or, if you're grabbing the wheel directly:
pipx install /path/to/frameio_mcp-*.whl
Configure
Create a .env file in your home directory or wherever you'll run the MCP from:
FRAMEIO_CLIENT_ID=your_client_id_here
FRAMEIO_CLIENT_SECRET=your_client_secret_here
FRAMEIO_OAUTH_RELAY_URL=https://aiscalestudio.github.io/frameio-mcp/callback.html
Alternatively, set these as environment variables.
Authenticate
frameio-mcp login
This opens your browser to Adobe's OAuth flow. After you sign in with your Adobe ID, you'll be redirected to a callback page that displays an authorization code. Copy the code, paste it back into your terminal, and frameio-mcp will exchange it for a set of tokens and save them to ~/.frameio-mcp/tokens.json with 0600 permissions.
Tokens auto-refresh in the background. If your refresh token expires (typically after 90+ days of no use), just run frameio-mcp login again.
Wire into your MCP client
Claude Desktop — add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"frameio": {
"command": "frameio-mcp",
"args": ["serve"]
}
}
}
Restart Claude Desktop. The tools appear under the plug icon.
Claude Code / Cowork — add the same entry to the local MCP config.
Verify
Ask Claude something like:
Given this Frame.io URL, pull the transcript and tell me the top three moments where the visual should carry emotion: https://next.frame.io/project/PROJECT_ID/view/FILE_ID
Claude will use frameio_get_asset_from_url → frameio_get_transcript_from_sibling → return a summary of what it found.
Adobe Developer Console setup
If you haven't set up the Adobe side yet:
- Go to developer.adobe.com/console.
- Sign in with the Adobe ID linked to your Frame.io account.
- Click Create new project.
- Inside the project → + Add API → select Frame.io API.
- Choose User Authentication (Server-to-Server is Enterprise-only).
- On the OAuth Web App configuration screen:
- Default Redirect URI:
https://aiscalestudio.github.io/frameio-mcp/callback.html - Redirect URI pattern:
https://aiscalestudio\.github\.io/frameio-mcp/callback\.html
- Default Redirect URI:
- Confirm scopes include:
openid,AdobeID,offline_access, and any Frame.io-specific scopes offered.offline_accessis critical — it's what gets you a refresh token so you don't re-authenticate every day. - Save. Adobe generates a Client ID and Client Secret — paste them into your local
.envfile (see above).
Editor workflow
For the MCP to read transcripts today, editors need to export the SRT from Frame.io once per video and drop it in the same folder as the video:
- Upload the video to Frame.io as usual. Wait for auto-transcription to finish (~1 min per 10 min of video).
- Open the video → three-dot menu → Export Transcript → choose SRT → download.
- Upload the downloaded SRT file back to Frame.io, in the same folder as the video.
- Done. The MCP will find it via the video's
parent_idwhen Claude asks.
Once Frame.io ships their public transcript API, this manual step disappears.
Tool reference
frameio_get_asset_from_url
Resolve a Frame.io URL to identifiers.
- Input:
url(str) — any Frame.io project or file URL - Output:
{ account_id, workspace_id, project_id, file_id, file_name, media_type, duration_seconds }
frameio_get_transcript_from_sibling
Find the SRT/VTT next to a video and parse it.
- Input:
account_id,file_id - Output:
{ transcript: [{ start_seconds, end_seconds, text, speaker }], source_file_name, source_file_id }
frameio_post_comment
Post a frame-accurate comment.
- Input:
account_id,file_id,text,timestamp_seconds, optionalduration_seconds - Output:
{ comment_id, text, timestamp_microseconds, created_at, url }
frameio_list_comments
List comments on a file, with pagination and an optional "mine only" filter.
- Input:
account_id,file_id, optionalpage_size(default 50), optionalafter(cursor), optionalonly_mine(default false) - Output:
{ comments: [{ comment_id, text, timestamp_seconds, duration_seconds, creator_id, created_at, attachments }], next_cursor, total_count }
frameio_upload_attachment
Attach a local file to a comment.
- Input:
account_id,comment_id,file_path(absolute local path) - Output:
{ attachment_id, comment_id, file_name, media_type, file_size_bytes, url }
Troubleshooting
"Adobe redirects me to a page that shows the code — what now?"
Copy the code, paste it in the terminal where frameio-mcp login is running. The terminal is waiting on stdin.
"401 Invalid or missing authorization token"
Your access token expired and refresh failed. Run frameio-mcp login again.
"No transcript file found in folder" The editor hasn't uploaded the SRT yet, or it's in a different folder than the video. Frame.io UI → open the video → three-dot menu → Export Transcript → SRT → upload the file to the same folder.
"License required" when adding Frame.io API in Adobe Console Your Frame.io account isn't provisioned for V4 API access yet. Email support@frame.io asking them to enable V4 API entitlement on your account.
Windows / WSL support
Untested. Should work in principle (pure Python + httpx), but the pipx path assumes Unix-style ~. Report issues.
Roadmap
- v0.2: multi-account support via
frameio-mcp login --profile <name>, tokens saved per-profile - v0.3: native transcript API when Frame.io ships it (drop the sibling workaround)
- v0.4: webhook helper for auto-processing on upload
- v0.5: batch operations (bulk comment creation from a list)
License
MIT. See LICENSE.
Credits
Built by (https://github.com/aiscalestudio) at AI Scale Studio, for the AI Founders HQ YouTube channel and the AI Business Trailblazers Hive community.
Frame.io is a trademark of Adobe. This project is not affiliated with or endorsed by Adobe.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。