Skip to content

feat(figma): add Figma REST API MCP server - #2607

Open
sriaradhyula wants to merge 1 commit into
mainfrom
prebuild/feat/figma-rest-mcp
Open

feat(figma): add Figma REST API MCP server#2607
sriaradhyula wants to merge 1 commit into
mainfrom
prebuild/feat/figma-rest-mcp

Conversation

@sriaradhyula

Copy link
Copy Markdown
Member

Description

Adds a CAIPE-maintained Figma REST API MCP server for deployments that cannot use Figma's hosted MCP server. The integration supports:

  • PAT authentication through Figma's X-Figma-Token REST API header
  • Per-user OAuth tokens forwarded through X-CAIPE-Provider-Token
  • File, node, image, metadata, version, comment, folder, library, and developer-resource tools
  • Docker Compose and Helm deployment paths
  • AgentGateway routing, dynamic-agent seeding, RBAC credential discovery, and UI OAuth bootstrap
  • The current official hosted endpoint, https://mcp.figma.com/mcp, in the remote catalog

Figma's hosted MCP server remains OAuth-only; this server is the interim PAT/OAuth REST API path.

Type of Change

  • Bugfix
  • New Feature
  • Breaking Change
  • Refactor
  • Documentation
  • Other

Checklist

  • I have read the contributing guidelines
  • Existing issues have been referenced (where applicable)
  • I have verified this change is not present in other open pull requests
  • Functionality is documented
  • All code style checks pass
  • New code contribution is covered by automated tests
  • All new and existing tests pass

Validation

  • Figma MCP tests: 4 passed
  • AgentGateway targeted tests: 13 passed
  • AgentGateway config bridge suite: 32 passed
  • UI OAuth tests: 16 passed
  • Ruff, UI lint, UI build, Compose config, and Helm rendering passed
  • One pre-existing static-config test remains failing because the host-specific config expects an absent GitHub route: test_github_route_rewrites_provider_token_to_authorization

Signed-off-by: Sri Aradhyula <sraradhy@cisco.com>
body = response.json()
if isinstance(body, dict) and isinstance(body.get("message"), str):
message = body["message"]
except ValueError:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant