Figma Ui MCP vs Katto

A side-by-side look at the Figma Ui MCP and Katto MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Figma Ui MCP logoFigma Ui MCPMultimedia Process · Local subprocess (stdio)Bidirectional Figma MCP — AI draws UI on Figma canvas, reads designs back71GreatAuth: no auth requiredKatto logoKattoMultimedia Process · Local subprocess (stdio)Turn long videos (YouTube, Twitch, podcasts) into scored, captioned 9:16 clips.63GoodAuth: not declared

Verdict: choose Figma Ui MCP for multimedia process work as a local process; choose Katto for multimedia process as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Figma Ui MCP logoChoose Figma Ui MCP when

  • You need dedicated capabilities in the Multimedia Process domain.
  • You prefer a local stdio subprocess transport.
  • Its auth model fits you: No auth required.
  • You want tools like figma_status, figma_write, figma_read.
Explore Figma Ui MCP

Katto logoChoose Katto when

  • You need dedicated capabilities in the Multimedia Process domain.
  • You prefer a local stdio subprocess transport.
  • You have the keys it needs: KATTO_API_KEY, KATTO_API_URL.
  • You want tools like katto_create_clip_job, katto_get_job, katto_list_jobs.
Explore Katto

Feature & specification comparison

Rows where the two servers differ are marked.

SpecFigma Ui MCP logoFigma Ui MCPKatto logoKatto
CategoryMultimedia ProcessMultimedia Process
Quality signal71/100 · Great63/100 · Good
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNo auth requiredNot declared
PricingFreeFreemium
Required env varsNone listedKATTO_API_KEYKATTO_API_URL
Verified ownerCommunity listingCommunity listing
GitHub stars2643
Directory activity 7 views 0 installs 0 upvotes 1 views 0 installs 0 upvotes
Tools529

Tools & capabilities

Figma Ui MCP tools 5

  • figma_statusCheck whether the Figma plugin bridge is connected. Always call this first to confirm the plugin is running before any other tool.
  • figma_writeExecute JavaScript code to CREATE or MODIFY designs in Figma. ⚠️ MANDATORY: Call figma_docs BEFORE writing any design code. Skipping figma_docs causes hardcoded colors, wrong sizing, broken layouts, and low-quality UI. Use the `figma` proxy object — all methods return Promises, use async/await. Operations: create, modify, delete, clone, group, ungroup, flatten, resize, set_selection, set_viewport, batch (multiple ops in one call). Design Tokens: createVariableCollection, createVariable, setVariableValue, addVariableMode, renameVariableMode, removeVariableMode, applyVariable, setFrameVariableMode, clearFrameVariableMode, createPaintStyle, createTextStyle, createComponent. Prototyping: setReactions, getReactions, removeReactions (click/hover/press → navigate/overlay/swap with Smart Animate transitions). Scroll: setScrollBehavior (overflowDirection: NONE/HORIZONTAL/VERTICAL/BOTH). Variants: setComponentProperties, swapComponent, getComponentProperties. Component property definitions (master-side, required for instance text overrides to recalc auto-layout): addComponentProperty (TEXT/BOOLEAN/INSTANCE_SWAP), bindComponentPropertyToText, removeComponentProperty. The code runs in a sandboxed VM: no access to require, process, fs, fetch, or network.
  • figma_readREAD design data from Figma — extract node trees, colors, typography, spacing, and screenshots. Use to understand an existing design before generating code, or to inspect what's on the canvas.
  • figma_docsGet the API reference and design rules for figma_write. Call with no args first — returns quick-start guide + critical rules. Then load specific sections as needed: section='rules' (design principles, token rules, layer order, component-first), section='layout' (auto-layout, button/card/badge/progress/mobile rules), section='api' (create/modify/delete/clone/batch/read operations + workflow), section='tokens' (variables, multi-mode, paint styles, text styles), section='icons' (loadImage, loadIcon, loadIconIn, icon libraries, coloring, sizing). Always call figma_docs BEFORE any figma_write code.
  • figma_rulesGenerate a design system rule sheet from the current Figma file — aggregates color tokens, typography styles, variables (all modes), and component catalog into a single markdown block. Equivalent to official Figma MCP's create_design_system_rules. Call once at the start of a design-to-code session to give the AI full context: what tokens to use, what text styles exist, which components are available. Re-run when the design system changes.

Katto tools 29

  • katto_create_clip_jobSubmit a long video for clipping, either by public link in url (YouTube, Twitch, Kick, Vimeo, Zoom, Google Drive, Dropbox, Loom, LinkedIn, Facebook, Rumble, Dailymotion, Medal.tv, or a direct https link to a video file; Google Drive and Dropbox links must be shared publicly) or, for a local file, by upload_id after katto_upload_video and the PUT of the file. Pass exactly one of url or upload_id. Consumes 1 video from your monthly quota — check katto_get_usage first. Clips are produced asynchronously; returns a job id, then poll katto_get_job every 30-60 s until status is 'completed', or pass webhook_url to be notified (url jobs only). Pass idempotency_key when you might retry a url job, so a retry never spends a second video (an upload can only be started once anyway). Fails if the URL is unsupported, the uploaded file is missing, or the video is longer than your plan allows.
  • katto_get_jobRead-only. Get the status, progress and clips of a job by id. Clips come ranked by virality score (0-100, highest first; ties broken by clip_index). Each clip is { url, captions_url, title, score, clip_index, hd }: when status is 'completed' every url is a finished, downloadable clip; hd is true once the 1080p high-quality render is ready. hd=false does NOT mean broken — the url already works, the 1080p is just still rendering in the background (and stays the standard render on the free plan). The job-level hd_ready flag turns true once every clip is hd, i.e. the URLs are final and won't be swapped again (status='completed' fires earlier). Returns 404 for an unknown id.
  • katto_list_jobsRead-only. List your recent jobs, newest first. Paginate with 'cursor' (pass the previous next_cursor); optional 'status' filter. Returns { jobs: [{id, status, source, created_at, completed_at}], next_cursor }.
  • katto_get_clipsRead-only convenience: the clips of a job as { url, captions_url, title, score, clip_index, hd }, ranked by score (highest first). hd=true means the 1080p render is ready; hd=false means the url is the standard render (HD still finishing, or the free plan). Empty until the first clip is ready.
  • katto_get_usageRead-only. Your current plan and monthly video quota: { plan, videos_used, videos_limit, videos_remaining }. Call before katto_create_clip_job to confirm remaining quota.
  • katto_get_transcriptRead-only. The transcript of a completed job as timestamped segments [{ start, end, text }]. Returns 404 while the job is still processing.
  • katto_cancel_jobCancel a still-running job (queued/processing) and refund the video back to your monthly quota. Safe to retry (idempotent). Returns an error if the job already finished, failed, or was cancelled.
  • katto_get_accountRead-only. The account behind this key: plan, this key's scopes (read/write), and monthly quota { videos_used, videos_limit, videos_remaining }.
  • katto_list_sourcesRead-only. The link sources Katto can clip from (YouTube, Twitch, Kick, Vimeo, Zoom, Google Drive, Dropbox, Loom, LinkedIn, Facebook, Rumble, Dailymotion, Medal.tv, or a direct https link to a video file), each with an example URL. Use it to confirm a URL is supported before calling katto_create_clip_job; for a local file use katto_upload_video instead.
  • katto_list_clip_lengthsRead-only. The valid values for the optional config.clipLength on katto_create_clip_job (target clip-duration buckets). Note: clipLength is fixed at creation and cannot be changed by re-render.
  • katto_list_caption_stylesRead-only. The valid caption_style preset names for katto_rerender_clip (id + label), e.g. 'hormozi' for bold word-by-word highlight. Call this before re-rendering so you pass a real preset instead of guessing.
  • katto_rerender_clipRe-render one already-finished clip with a new reframe layout and/or caption style (get valid caption_style values from katto_list_caption_styles). Free — does NOT use video quota. Each call starts a new render (not idempotent); the original clip is kept. Returns a rerender_id; poll katto_get_rerender for the new clip url.
  • +17 more on the listing page

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

Figma Ui MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "figma-ui-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "figma-ui-mcp"
      ]
    }
  }
}

Katto

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "katto": {
      "command": "npx",
      "args": [
        "-y",
        "katto-mcp"
      ],
      "env": {
        "KATTO_API_KEY": "YOUR_KATTO_API_KEY_HERE",
        "KATTO_API_URL": "YOUR_KATTO_API_URL_HERE"
      }
    }
  }
}

Frequently asked questions

Figma Ui MCP is categorized under Multimedia Process and uses a local stdio subprocess. Katto belongs to Multimedia Process and uses a local stdio subprocess. Pick Figma Ui MCP for multimedia process work and Katto for multimedia process.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

Figma Ui MCP is listed as free. Auth: no auth required. Katto is listed as freemium — a free tier with paid plans. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add figma-ui-mcp and katto as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, Figma Ui MCP has a quality signal of 71/100 (Great) with 7 views, 0 installs and 264 GitHub stars. Katto has 63/100 (Good) with 1 views, 0 installs and 3 GitHub stars.