hermes-agent/optional-mcps/figma/manifest.yaml
Brooklyn Nicholson 1eb5ee1eaa fix(mcp): make Figma remote OAuth work via DCR allowlist defaults
Figma's mcp.figma.com register endpoint is a client_name allowlist
(Claude Code / Codex succeed; Hermes Agent 403s) and returns a client
secret while advertising auth_method=none, then requires the secret on
token exchange. Auto-set client_name + client_secret_post for Figma
hosts, pass oauth cfg through login/add paths, force interactive OAuth
for hermes mcp login from non-TTY desktop shells, and ship a catalog
entry. Proven: hermes mcp login figma → 26 tools.
2026-07-28 00:53:16 -05:00

39 lines
1.5 KiB
YAML

# Nous-approved MCP catalog entry.
# Presence in this directory = approval. Merged via PR review.
manifest_version: 1
name: figma
description: >-
Official Figma remote MCP — design context, Code Connect, and
write-to-canvas via https://mcp.figma.com/mcp (OAuth).
source: https://developers.figma.com/docs/figma-mcp-server/remote-server-installation/
# Figma's hosted endpoint requires OAuth 2.1 + DCR. Their registration
# endpoint allowlists *exact* client_name strings (not arbitrary clients):
# "Claude Code" and "Codex" succeed; "Hermes Agent" 403s. Hermes's MCP
# OAuth layer auto-sets client_name to "Claude Code" for this host (see
# tools/mcp_oauth.apply_oauth_provider_defaults) so the browser flow can
# start. Users can override via oauth.client_name if they want Codex
# instead. Scope defaults to mcp:connect.
transport:
type: http
url: https://mcp.figma.com/mcp
auth:
type: oauth
post_install: |
On first connection Hermes opens a browser to authorize with Figma
(or run `hermes mcp login figma`). Approve access, then restart the
session so tools load.
Figma walks OAuth DCR by exact client_name. Hermes registers as
"Claude Code" automatically so registration is not 403'd — you do not
need to paste a client_id.
Prompt with a frame/file link:
implement this design: https://www.figma.com/design/<fileKey>/...
Desktop alternative (no OAuth, local only): enable Dev Mode MCP in the
Figma desktop app (Shift+D → Inspect → Enable desktop MCP server) and
point url at http://127.0.0.1:3845/mcp instead.