Figma Context MCP
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
A video editor in your browser that your AI drives: cuts, captions, multicam, motion titles, export.
选择你使用的 AI 应用,然后复制设置。
通过 2/3 项检查 · 你的提问会经过开发者的服务器(app.frapea.com)
第一步:你用哪个 AI?
选择你用的应用,步骤会显示在下方。
可连接 Claude · 约 2 分钟
不需要密钥,不用安装程序 · 在 claude.ai 或桌面应用设置一次,即可在聊天中使用 · 免费账户可添加 1 个 · Team/Enterprise 方案由所有者(Owner)添加
CustomizeConnectors
把这里的内容复制到 Claude 中同名的输入框,然后点击 Continue
Frapeahttps://app.frapea.com/mcpAuthentication 保持 Claude 检测到的设置,然后点击 Add
+ConnectorsFrapea
用 Frapea 告诉我你能帮我做什么,然后做一件给我看✓ 如果 Claude 说正在使用 Frapea,或回答中出现 Frapea 的工具名称,就表示连接成功
菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同
仅企业版 ChatGPT 可连接
适用于网页版 ChatGPT Business、Enterprise 或 Edu,需由工作区管理员或所有者添加 · 使用 Free、Plus 或 Pro:你的 ChatGPT 方案暂时无法自行连接 MCP
Plugins+Add custom MCP server
输入名称,在 Connection 下粘贴地址,勾选风险提示,然后点击 Create as a plugin
Frapeahttps://app.frapea.com/mcp开启新聊天,输入前先从插件列表中选择 Frapea
用 Frapea 告诉我你能帮我做什么,然后做一件给我看✓ 如果 ChatGPT 说正在使用 Frapea,或回答中出现 Frapea 的工具名称,就表示连接成功
菜单名称已于 2026年11月11日 对照 OpenAI 帮助页面核实 · 你的界面可能因版本略有不同
可连接 Claude Code · 约 2 分钟
不需要密钥,不用安装程序
Mac:按 Command+空格,输入 Terminal · Windows:打开 PowerShell
claude mcp add --transport http --scope user editor https://app.frapea.com/mcp应能看到 Frapea 在列表中并显示已连接
用 Frapea 告诉我你能帮我做什么,然后做一件给我看✓ 如果 Claude Code 说正在使用 Frapea,或回答中出现 Frapea 的工具名称,就表示连接成功
菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同
可连接 Cursor · 约 2 分钟
不需要密钥,不用安装程序
用 Frapea 告诉我你能帮我做什么,然后做一件给我看✓ 如果 Cursor 说正在使用 Frapea,或回答中出现 Frapea 的工具名称,就表示连接成功
菜单名称已于 2026年11月11日 对照 Cursor 帮助页面核实 · 你的界面可能因版本略有不同
可连接 VS Code · 约 2 分钟
不需要密钥,不用安装程序
用 Frapea 告诉我你能帮我做什么,然后做一件给我看✓ 如果 VS Code 说正在使用 Frapea,或回答中出现 Frapea 的工具名称,就表示连接成功
菜单名称已于 2026年11月11日 对照 VS Code 帮助页面核实 · 你的界面可能因版本略有不同
其他支持 MCP 的应用(如 Windsurf、Zed、Gemini CLI)添加方式各不相同,请在应用列表中查看
通过网页连接的应用使用的地址
https://app.frapea.com/mcpJSON 设置在下方“开发者专用”中
Claude Code
claude mcp add --transport http --scope user editor https://app.frapea.com/mcpCursor (~/.cursor/mcp.json)
{
"mcpServers": {
"editor": {
"url": "https://app.frapea.com/mcp"
}
}
}VS Code (mcp.json)
{
"servers": {
"editor": {
"type": "http",
"url": "https://app.frapea.com/mcp"
}
}
}这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
依据这个服务器的连接方式和各应用自己的文档,检查于 2026年11月10日。
通过互联网连接,适用于
ClaudeChatGPTGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast
工具名称和描述与服务器在 2026年11月8日 报告的完全一致。这些内容由作者撰写,不是我们写的;我们以纯文本形式显示。
connectPairs you with the user's Frapea browser tab. TWO WAYS ROUND. (1) If they already have Frapea open: ask them for the pairing code (the Connect MCP button) and call this with it. (2) If they do not, or you are not sure: call this with NO arguments and you get back a link — send th
get_projectsLists the projects Frapea knows on this machine: id, name, lastOpenedAt, and for a project stored in a folder on disk its `folder` (the directory's name — files you write into its `media/` subfolder join the pool by themselves). Call first to find the projectId every other tool n
get_timelineReads a project's timeline structure: timelines (id, name, fps, resolution) with tracks and clips. THE USER CAN COPY A CLIP'S ID from the editor's right-click menu, so a bare UUID in their message names exactly one clip — call this with NO timelineId to search every timeline and
get_mediaLists the project's media library: mediaRef (the id clips use), name, kind (video/audio/image), durationSeconds, resolution, and sceneSamples — timestamps (seconds) where the visual indexer detected distinct moments. sceneSamples is a ready-made shot map: inspect or cut at those
get_transcriptReturns the word-level speech transcript of one media asset: language and words [{text, startSec, endSec}]. Only assets the user has transcribed have one — NOT_FOUND means ask the user to run Transcribe on the clip in Frapea. Use the timestamps to align cuts with what is being sa
create_motion_compositionCreates a MOTION COMPOSITION — an animated graphic (infographic, title, promo end-card, chart…) written as a React TSX component. Read the 'motion' skill (read_skill {topic:'motion'}) for the exact API surface, available fonts/icons and golden examples before writing one. files m
update_motion_compositionUpdates a motion composition's TSX files and/or manifest (name, duration, schema…). Same compile-and-test gate as create; files given here MERGE over the existing set. Every clip playing the composition re-renders. preview:true returns one large frame of the result with the reply
get_motion_compositionReturns a motion composition's manifest and full TSX sources.
list_motion_compositionsLists the project's motion compositions: id, mediaRef (for add_clips), name, size, fps, duration and the editable props schema.
create_timelineCreates a new timeline in the project and returns its id. Set fps, width and height for the target format (e.g. 1080×1920 @30 for a vertical short). The new timeline starts with one video and one audio track; spare tracks appear automatically as clips land.
add_clipsPlaces media segments on a timeline. Each clip: mediaRef (from get_media, 'timeline: ' to NEST another timeline as a clip, 'solid:#rrggbb' , 'motion: ' for a MOTION composition (create_motion_composition) for a generated solid-colour matte, 'adjustment:' for an adjustment clip —
split_clipsBlades clips at a timeline frame. Splits every listed clip (and its linked partner) into two independent clips at atFrame. Frames are in the target timeline's fps. Use with get_timeline to find clip ids first.
remove_clipsDeletes clips (lift — leaves a gap). Linked partners are NOT removed automatically; pass both ids of a pair to delete it whole. To close the gap too, use ripple_delete_ranges instead.
ripple_delete_rangesExtracts [fromFrame, toFrame) on one track and shifts everything after it left to close the gap (sync-locked tracks follow). The go-to tool for tightening a cut or removing a bad take.
set_clip_propertiesAdjusts a clip. Only the provided fields change. Mix: volume (0–4, 1 = unity; volume keyframes, when the clip has any, override it), fadeInFrames / fadeOutFrames (gain or opacity ramps at the edges). Look: opacity (0–1), blend (normal | multiply | screen | overlay | darken | ligh
generate_captionsGenerates animated captions from a spoken clip's transcript (the same generator as Frapea's UI): transcript words group into caption text clips over the clip's span, word-timed so the animation follows speech. One undo, and they share a captionGroupId — restyle them all via set_c
manage_effectsEdits a clip's effect stack (ordered, per-effect enable). action: 'add' (type; returns the new effect's id) | 'remove' (effectId) | 'move' (effectId + toIndex — the order IS the render order) | 'toggle' (effectId + enabled) | 'set' (effectId + params patch, clamped to the effect'
manage_transitionsTransitions on a track's cuts OR lone clip edges (a free head/tail takes a single-sided fade from/to nothing; its alignment is forced). action: 'add' (trackId + atFrame = the cut where one clip ends and the next starts, + type; optional durationFrames (default 30, clamped to the
manage_tracksTrack operations on a timeline. action: 'mute' | 'unmute' | 'solo' | 'unsolo' (audio only; any solo silences non-solo tracks) | 'hide' | 'show' | 'rename' (needs name) | 'duck' | 'unduck' (audio only: dip this track under speech detected on the other audio tracks — transcript wor
cut_to_angleMULTICAM angle switch. The angles are ordinary video tracks stacked over each other (sync them beforehand — clips of the same take on V1..Vn); this razors the whole angle stack at `atFrame` and keeps only `chosenTrackId` live from there to the next cut — the other angles' clips a
move_clipsMoves clips to new positions (linked partners follow automatically). Each move: clipId, toStartFrame, optional toTrackId (same-kind track). Overwrite semantics — landing on another clip trims it like a drag-drop.
set_active_timelineSets which timeline the project opens on (and what the user sees if the editor is open), opening its tab if it was closed. Purely a convenience — every tool here takes an explicit timelineId regardless.
set_project_settingsUpdates a timeline's fps / width / height (clips keep their timing; content re-fits) and/or renames it. Only provided fields change.
search_mediaSemantic search over the project's media. Visual scope matches what is IN the picture (describe a shot: 'aerial city at night'); spoken scope matches transcribed speech (exact words, ranked first, with a snippet). Hits: {mediaRef, timeSec (best moment), fromSec, toSec, score, sco
remove_wordsText-based editing: cuts the given transcript words OUT of a clip as ripple deletes (everything after each cut shifts left). wordIndices are positions in get_transcript's words array for the clip's media. Contiguous indices merge into single cuts. The go-to tool for removing fill
remove_silenceCuts silent gaps inside a clip: any pause between transcribed words longer than minGapSec becomes a ripple delete (a small margin is kept so speech never clips). Typical minGapSec: 0.6 tight, 1.0 balanced, 1.5 loose.
undoReverts the most recent edit THIS agent session made to the project (one step per call; repeat to go further). Cannot revert other tabs' or the user's edits.
inspect_mediaLooks INSIDE a source asset. Returns ONE contact sheet — every requested moment as a labelled cell in a single grid image — plus a per-cell fingerprint. Pass atSec (max 12 timestamps, seconds); combine with get_media's sceneSamples for an instant storyboard of the whole file. Sho
inspect_timelineWATCHES the cut. Composites every video layer at each requested frame and returns ONE contact sheet — the frames as labelled cells of a single grid image — plus, per cell, the visibleClipIds that contributed pixels and a fingerprint. Pass frames (timeline frame numbers, max 12).
get_problemsWhat has gone WRONG in the user's editor — renders that failed or stopped, footage that would not decode, chunks that could not be prepared for playback, exports that failed — each with WHERE (the timeline and frames, the source and its own frames, the footage and frame the engin
get_bug_reportPrepare a BUG REPORT for the user: it opens in Frapea (Problems → Create bug report) for them to read and save. The report itself is NOT returned to you — it would leave the user's machine before they have seen it. You get a summary: open problems, media counts, and how many of t
verify_timelineRenders a timeline the way an export does and reports what fails. inspect_timeline shows a few frames through the preview path, which quietly substitutes a nearby picture where a frame cannot be rendered; this renders every motion segment the timeline reads (through every nested
insert_clipsRipple-inserts media segments: everything at/after atFrame shifts right to make room (clips under the cut split). Same clip shape as add_clips. Use to splice a shot INTO an existing sequence without overwriting.
organize_mediaPool file operations. action: 'rename' renames the real file on disk (needs newName; clips referencing the old name go offline). 'delete' UNLINKS the file from the media pool — the real file on disk is NOT touched; clips using it go offline until it is added again.
read_skillReturns Frapea's editing documentation for a topic. With no topic: the editing conventions, how the tools fit together and the current feature surface. MOTION topics: 'motion' is the API surface (imports, fonts, props schema, the parts-board-first golden example) and routes to th
await_user_actionWaits (up to ~45 s per call) for the user to resolve a pending Frapea prompt — e.g. the folder-permission dialog another tool just opened. The dialog waits for the user in the Frapea tab; the tool that opened it returned what they need to click. Returns {status: 'granted' | 'deni
open_projectNavigates the user's Frapea tab to a project so they can WATCH the edit live. Not required for editing — every tool works headlessly; use this for show-your-work moments. This reloads the Frapea tab, so an export or render running there stops.
close_projectNavigates the user's Frapea tab back to the project manager and releases this session's headless runtime for the project. When the tab shows that project it reloads, so an export or render running there stops.
new_projectCreates a project. By default it is created in the browser's own storage, which needs no permission and no click: the project id comes back immediately and you can start working. The user can turn it into a real folder on their disk whenever they want (Cmd/Ctrl+S, or File → Save
connect_media_folderAsks the user to attach a folder of THEIR OWN source footage to the project — opens a dialog in Frapea with a 'Connect folder' button. Only a human can do this (browser security gesture): tell the user IN YOUR REPLY to click it, then call await_user_action with the returned actio
trim_clipsAdjusts one edge of a clip (linked A/V partners follow). edge: 'start' trims/extends the in-point, 'end' the out-point. deltaFrames > 0 moves the edge right, < 0 left — e.g. edge 'end', delta -12 shortens the clip by 12 frames. Extending is limited by the source material.
get_analysis_statusHow far the project's media analysis has got. Analysis runs BY ITSELF whenever media is connected. Returns percent (0-100) — 100 means nothing is OUTSTANDING, not that everything succeeded: `failed` lists items whose analysis failed (retry_analysis re-runs one) — done/total/pendi
request_ai_modelsAsks the user to enable Frapea's on-device AI analyzers (picture search, speech). Opens a dialog in every Frapea tab and returns an actionId — tell the user IN YOUR REPLY to confirm it, then call await_user_action and poll get_analysis_status until models are enabled. Call this w
start_visual_indexingIndexes the project's pictures for search_media. Usually not needed: indexing is automatic and this only nudges the queue to re-check now. When the user switched automatic indexing off, this asks for every video and image to be indexed. Returns the same payload as get_analysis_st
start_transcriptionTranscribes one asset even if automatic transcription is switched off. Speech transcripts otherwise appear on their own. Returns the project's analysis status; poll get_analysis_status, then read get_transcript.
get_job_statusStatus of a background job started by a job-returning tool (generate_voiceover, verify_timeline, measure_loudness): {state: queued|running|done|failed|cancelled, progress: 0-1, detail, ...result fields such as mediaRef when done; verify_timeline, measure_loudness puts its report
list_voiceover_modelsThe text-to-speech providers Frapea can generate voiceovers with. Returns providers[]: the FREE in-browser models straight from the TTS registry ({id, label, languages, voices: [{id, label, language, gender, grade}], modelAssets, state: {phase: needs-download|downloading|ready|er
generate_voiceoverGenerates an AI voiceover from a script — on-device with the free models, or in the cloud with ElevenLabs (the user's own key and credits). The WAV lands in the project's media library as a normal audio asset (with waveform and analysis), the script is stored as asset metadata, a
search_stock_mediaSearches the Pexels stock library (photos or videos) with the user's connected API key. Returns items with id, dimensions, duration (videos), author, thumbnail url, available video qualities, and a `downloaded` flag telling whether the asset is already in the project's media pool
download_stock_mediaDownloads one Pexels asset into the project's media pool as a virtual file at the Library root (name `pexels- .jpg|.mp4`). Asynchronous: the first call accepts the download and returns its state; CALL AGAIN with the same arguments to poll — state becomes 'done' with the asset's m
search_soundsSearches the Freesound library (SFX, ambience, foley) with the user's connected API key. Every item carries what you need to JUDGE the sound without hearing it: the uploader's full description, tags, duration, community rating and download count, format/samplerate, and — when ana
download_soundDownloads one Freesound sound (its HQ MP3 preview, ~128 kbps — plenty for SFX/ambience) into the project's media pool as a virtual file at the Library root (name `freesound- .mp3`). Asynchronous: the first call accepts the download and returns its state; CALL AGAIN with the same
add_sfxFrapea's BUILT-IN sound-effects pack — synthesized, licence-free, no API key, no download wait. Covers common UI and motion sounds; search_sounds is for what the pack does not (ambience, foley, a specific real-world object). Call with no `ids` to get the catalogue: each sound car
manage_queueFull control of the background work queue. action 'list' returns every queued/running item across all projects (analyses, proxies, beats) plus the visible task rows (downloads, voiceover jobs, failures) with a cancellable flag. action 'cancel' stops ONE kind of work for ONE asset
retry_analysisRuns ONE analysis of ONE asset again — picture indexing or speech transcription — clearing whatever failure was recorded for it. If the asset already has a finished transcript or index, that result is deleted and rebuilt. Use when get_media shows phase 'failed' and the error look
set_keyframesAnimates one clip property. property: opacity | volume | positionX | positionY | scaleX | scaleY | rotationDeg | pitch | yaw | anchorX | anchorY | cropLeft | cropTop | cropRight | cropBottom | cropSoftness. Keyframes are stamped in SOURCE frames (frames into the media, i.e. timel
apply_layoutArranges clips into a screen layout by writing ordinary transform + crop values (first clipId → first cell). layout: full | side-by-side | top-bottom | pip-top-left | pip-top-right | pip-bottom-left | pip-bottom-right | grid-2x2 | main-sidebar | three-up. mode 'fit' letterboxes e
track_facesFinds every FACE in a video clip and stores one independent path per person — position, size and head rotation (nod/turn/tilt) per frame. Queued, not immediate: poll list_face_tracks until state is 'ready'. Re-running on the same clip REPLACES its previous run and keeps the same
list_face_tracksLists face-tracking runs and the people each one found: faceId, name, frame range, how many frames it was actually visible for, and how many gaps it has. Sample data is deliberately not returned. Use this to poll a queued run and to pick a faceId for bind_face.
merge_facesJoins two or more faces from one run into a single person — for somebody who walked out of the shot and came back. REFUSED when any two of them appear on the same frame, since they cannot then be one person. The earliest face's id and name survive, so existing bindings keep worki
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月12日
提问、分享技巧或报告无法使用。按“有帮助”数量排序。
还没有评价
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 3 项适用的基础检查中通过了 2 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在作者的云端运行。通过互联网连接,无需安装,但你发送的内容会经过作者的服务器。
GitHub 仓库最后更新于–,最新版本(0.2.0)于32天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,因此也能用于支持远程 MCP 的应用,例如 ChatGPT Business 及以上方案。
同一分类中有:Figma Context MCP, AutoClip, Next AI Draw.io
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
draw.io diagrams your AI agent draws on a live browser canvas that you can also edit by hand
仓库中没有找到 README