Framea MCP Server
The Framea MCP server lets AI assistants like Claude search your photos and videos in plain language. Connect it with a single URL, sign in with Google, and your assistant can find any moment by what was said, shown, or written on screen, then deep-link you straight to it.
https://api.framea.cloud/mcpWhat it does
Framea indexes every photo and video in your library by audio transcript, on-screen text, and visual scene. The MCP server exposes that index to any Model Context Protocol client, so an assistant can run a search, follow up with “more like this,” and fetch a playback link, all scoped to your own account.
Connect it
Framea is a remote MCP server, so there is nothing to install. Authentication runs over Google OAuth, so connecting always opens a browser sign-in.
Clients with remote-server support (Claude.ai, Claude Desktop)
Add a custom connector and paste the server URL above. A Google sign-in window opens; use the same email as your Framea account and the three tools appear in your chat.
Clients that only run local servers
Bridge to the remote server with mcp-remote in your client's config:
{
"mcpServers": {
"framea": {
"command": "npx",
"args": ["mcp-remote", "https://api.framea.cloud/mcp"]
}
}
}The first call opens a browser for Google sign-in; the session is cached afterward.
Authentication
Sign-in uses Google OAuth. The server maps your Google email to a Framea account, so the Google address you sign in with must match your Framea account email. If no account exists for that email, sign up at framea.cloud first. Every tool call is scoped to your library and yours alone.
Tools
Search your library
search_media(query, media_type?, limit?, mode?)The primary tool. Searches your library by describing a moment in plain language, across speech transcripts, on-screen text, scene descriptions, and visual appearance. Returns matches ranked by relevance, each with a deep link to the exact moment.
- query
- Plain-language description of the moment you want.
- media_type
- Optional. “video” or “photo” to filter.
- limit
- Optional. Number of results (1–50, default 10).
- mode
- Optional. “auto” (default, best overall) or “visual” to match purely on how a frame looks.
find_similar(media_id, limit?)Given a media_id, returns items visually similar to it, useful for “more like this” browsing after a search hit.
- media_id
- The id of an existing item to match against.
- limit
- Optional. Number of results (1–50, default 10).
Analyze a video
analyze_video(media_id)A complete timestamped breakdown of one video or photo already in your library, without downloading or watching the file. Returns what Framea already understands about it: speech, on-screen text, and scene descriptions against timecodes.
- media_id
- The id of an item in your library.
analyze_video_url(video_url, question?)Analyze a video that is not in your library, by link. Nothing is added to Framea.
- video_url
- A URL the server can fetch the video from.
- question
- Optional. Ask something specific instead of a full breakdown.
create_video_upload(filename, mime_type?)Step one for a video file you have locally, such as one attached in chat. Returns a one-time upload_id to hand to analyze_uploaded_video. Two steps because file bytes cannot travel through a tool call.
- filename
- Name of the file you are about to upload.
- mime_type
- Optional. Defaults to video/mp4.
analyze_uploaded_video(upload_id, question?)Step two. Analyzes the video uploaded via create_video_upload and returns the same shape as analyze_video.
- upload_id
- The id returned by create_video_upload.
- question
- Optional. Ask something specific.
Item details
get_media(media_id)Metadata and links for one item: status, duration, a thumbnail, and a deep link into Framea. Use analyze_video instead if you want to know what is actually in the footage.
- media_id
- The id of the item to fetch.
Photos and videos indexed on your iPhone or Mac stay on that device. They are fully searchable through the assistant, because only the index syncs, but they have no streaming URL — open them with the deep link instead. Media you uploaded to Framea returns a temporary playback URL as well.
Results come back as clean JSON for the model: ids, snippets, relevance scores, timestamps, and an open_url that deep-links to the exact moment (for videos, with the timestamp in the link).
Try these prompts
- “Find the part of my keynote where I talk about pricing.”
- “Show me beach videos from last summer.”
- “Pull a wide shot of the city at night from my b-roll.”
- “Find clips that look like this one.”
Frequently asked questions
What is the Framea MCP server?
It is a remote Model Context Protocol (MCP) server that exposes your Framea media library to AI assistants. Once connected, an assistant like Claude can search your photos and videos in plain language, find visually similar media, get a timestamped breakdown of what is in a video, and analyze videos that are not in your library yet. Every call is scoped to your own account.
How do I connect Framea to Claude?
Add a custom connector pointing to https://api.framea.cloud/mcp. A Google sign-in window opens; sign in with the same Google email as your Framea account and the tools become available in your chat.
Do I need a Framea account?
Yes. The MCP server matches your Google identity to a Framea account by email. If no account exists for that email, sign up at framea.cloud first, then connect.
Is my media exposed to other users?
No. Every tool call resolves the authenticated Google identity to your Framea account and queries only your library. Other users cannot reach your media through the server.
Your library, in your assistant.
Framea makes every photo and video you own searchable by describing the moment. Free during beta on iPhone, Mac, and the web.