pi-figma-remote

Official Figma MCP server for the Pi coding agent — design-to-code, canvas writes, FigJam and Code Connect over OAuth. No API key needed.

Packages

Package details

package

Install pi-figma-remote from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-figma-remote
Package
pi-figma-remote
Version
0.1.1
Published
Sep 21, 2026
Downloads
337/mo · 337/wk
Author
shahriar374
License
MIT
Types
package
Size
7.3 KB
Dependencies
0 dependencies · 0 peers
Pi manifest JSON
{
  "mcp": "./mcp.json"
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

pi-figma-remote

The official Figma MCP server (https://mcp.figma.com/mcp) for the Pi coding agent — one command to install, browser click to authenticate, full toolset unlocked: design-to-code, canvas writes, FigJam, design-system search, and Code Connect. No Personal Access Token needed.

pi install npm:pi-figma-remote

Then restart pi, run /mcp, and authenticate pi-figma-remote__figma.

Why this exists

Pasting Figma's official MCP config into pi fails with a cryptic error:

Dynamic Client Registration rejected (HTTP 403): Forbidden

Figma's OAuth registration endpoint (POST api.figma.com/v1/oauth/mcp/register) allowlists the exact client_name: only recognized clients (Claude Code, Codex, …) get 200, everything else gets 403. Verified live:

client_name Response
Claude Code (figma) 200
anything else 403

Only the name is checked — no User-Agent or redirect games needed. This package sets pi-mcp-adapter's oauth.clientName to an allowlisted value, so pi's native OAuth flow (discovery → registration → browser → OS-keychain storage → automatic refresh) completes untouched. Your mcp.json stays secret-free; there is nothing to paste and no helper script to run.

Prerequisites

  • pi-mcp-adapter (the MCP client for pi):
    pi install npm:pi-mcp-adapter

Install

pi install npm:pi-figma-remote

Restart pi (or /reload), then:

/mcp

Start/authenticate pi-figma-remote__figma → approve in the browser → done. Tokens are stored in your OS keychain and refresh automatically.

Verify

Ask pi to call the whoami tool (remote-only, reports the authenticated Figma account), or paste a Figma frame link and ask it to implement the design. The remote server is link-based: right-click a frame → Copy/Paste as → Copy link to selection.

What's included

The full official server — not the read-only subset that PAT-based community servers expose:

  • Design to code: get_design_context, get_metadata, get_screenshot, download_assets, get_variable_defs, get_motion_context
  • Code to design: use_figma (create/edit frames, components, variables, auto-layout), generate_figma_design, create_new_file, upload_assets
  • FigJam: get_figjam, generate_diagram
  • Design systems + Code Connect: search_design_system, get_libraries, get_code_connect_map, add_code_connect_map
  • Account: whoami

Prior art — read this first

This is not the only way to get the official Figma server into pi, and it was not the first. pi-figma-remote-auth (by diantama) predates this package and does the same job via an extension: slash commands (/figma-remote-auth setup, login, logout) that write the MCP config and run the OAuth flow (registering as "Codex") for you. It has real usage and more features (project/shared config targets, --direct-tools flags, logout). If you want the full-featured route, start there.

This package exists as the minimal alternative for one reason: it contains zero executable code — just mcp.json plus package.json. No third-party code runs on your machine, there is nothing to security-review beyond two JSON files, and it rides entirely on pi-mcp-adapter's native OAuth flow (discovery → registration → browser → OS-keychain storage → automatic refresh), so there is less to break across adapter upgrades. The price of that minimalism: no helper commands, no logout, no per-project targets — just /mcp → authenticate.

Not to be confused with: pi-figma-remote-auth (extension, Codex name) vs this package, pi-figma-remote (config-only, Claude Code name). Similar names, same endpoint, different tradeoffs. There is also an unrelated pi-figma-mcp, which targets the local Figma desktop bridge rather than the remote server.

Disclosure — read this

This package registers with Figma's OAuth endpoint using another client's display name because Figma currently gates registration to its MCP Catalog clients. Concretely: the Figma consent screen will show "Claude Code (figma)" as the requesting app, not Pi. That is a temporary workaround, openly documented here — same approach as the community tools for OpenCode. It works today (verified September 2026) but can break if Figma tightens registration, and impersonating an allowlisted client's name may itself violate Figma's terms/acceptable-use, with potential consequences up to account action. Proceed with eyes open. The proper long-term fix is Figma allowlisting more clients; pi users can add weight via the waitlist. If auth starts failing with 403, that is what happened — fall back to a PAT-based server (e.g. figma-developer-mcp) until then.

Use of the Figma API is subject to Figma's terms. This project is not affiliated with or endorsed by Figma, Inc.

Troubleshooting

Symptom Fix
403 during /mcp authenticate Figma changed the gate — see Disclosure above
Server missing from /mcp /reload, ensure pi-mcp-adapter is installed
Tools return auth errors later /mcp → re-authenticate; refresh tokens can expire

License

MIT