Files
hermes-agent/optional-mcps/figma/manifest.yaml
T
Teknium fc8ebff6d8 feat(mcp): unify the desktop MCP suggestion directory into the catalog
The desktop app carried its own hardcoded list of 17 vendor MCP endpoints
(apps/desktop/src/lib/mcp-directory.ts) powering the composer suggestion
pills — a second PR-reviewed vendor list, overlapping and drifting from the
Nous-approved MCP catalog (optional-mcps/).

This makes the catalog the single source of truth:

- manifest schema: optional `suggest:` block (keywords + hosts), parsed,
  validated, and normalized in mcp_catalog.py
- 15 new URL-only hosted-remote catalog entries (atlassian, sentry, datadog,
  notion, stripe, vercel, supabase, netlify, hugging_face, asana, intercom,
  airtable, webflow, paypal, square); figma + linear manifests gain suggest
  blocks
- GET /api/mcp/catalog now serves the suggest metadata
- desktop suggestion provider builds its match index from the catalog;
  the static directory remains only as a compatibility rung for older
  backends without suggest metadata
- setup card source line prefers the catalog entry's transport URL

GitHub stays out of the catalog on purpose: its hosted MCP rejects generic
DCR and the bundled github/* skills (gh CLI) are the stronger integration.
New desktop `github` suggestion provider offers the github-auth skill
instead — gated on a new cached GET /api/git/gh-auth probe so already-
authenticated users never see the pill.
2026-08-15 02:03:24 -07:00

49 lines
1.7 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
# Composer-suggestion triggers (desktop brand pills).
suggest:
keywords:
- figma
- mockup
- wireframe
hosts:
- figma.com
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.