Frame.io MCP

Frame.io MCP

Connects Claude to Frame.io to pull transcripts, post frame-accurate comments, list comments, and upload attachments.

Category
访问服务器

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:

  1. Go to developer.adobe.com/console.
  2. Sign in with the Adobe ID linked to your Frame.io account.
  3. Click Create new project.
  4. Inside the project → + Add API → select Frame.io API.
  5. Choose User Authentication (Server-to-Server is Enterprise-only).
  6. 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
  7. Confirm scopes include: openid, AdobeID, offline_access, and any Frame.io-specific scopes offered. offline_access is critical — it's what gets you a refresh token so you don't re-authenticate every day.
  8. Save. Adobe generates a Client ID and Client Secret — paste them into your local .env file (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:

  1. Upload the video to Frame.io as usual. Wait for auto-transcription to finish (~1 min per 10 min of video).
  2. Open the video → three-dot menu → Export Transcript → choose SRT → download.
  3. Upload the downloaded SRT file back to Frame.io, in the same folder as the video.
  4. Done. The MCP will find it via the video's parent_id when 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, optional duration_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, optional page_size (default 50), optional after (cursor), optional only_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

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选