Server

Figma

Endpoint
https://mcp.figma.com/mcp
Transport
Streamable HTTP
Access
Public Anyone can connect; where an account is needed, anyone can create one by self-service sign-up. Manual check · jbspeakr (documentation pass with Claude Code) · · evidence · Any Figma account, on any plan including Starter, connects through a client listed in the Figma MCP catalog, with per-seat rate limits; a new client must join a waitlist, which restricts client authors, not the person connecting.
Auth
OAuth An OAuth 2.x authorization obtained through the server's authorization server. Manual check · jbspeakr (documentation pass with Claude Code) · · evidence · Sign in with the Figma account and click Allow access on first connection; Okta XAA enterprise-managed authorization is available for Claude.
Why it is listed
Listed because it appears in a public directory of MCP servers. Source
Homepage
https://figma.com

Against MCP Authorization 2026-07-28current

  • Supported 11
  • Partial 1
  • Unsupported 1
  • Unknown 10

Passive scanGrade C · · Report

Contribute a correctionWithdraw this serverJSON

Older revisions of the matrix: 2025-11-25

MCP server features 13

FeatureLevelStatusObservedEvidence
Protected Resource Metadata servedmcp.prm · Discovery · Authorization Server Discovery › Authorization Server LocationMUSTSupportedPassive scan · scanner@0.3.0source— HTTP 200; resource: https://mcp.figma.com/mcp
1 earlier observation
  1. Supported · Passive scan · scanner@0.2.0 · evidence
PRM lists an authorization servermcp.prm.authorization-servers · Discovery · Authorization Server Discovery › Authorization Server LocationMUSTSupportedPassive scan · scanner@0.3.0source— HTTP 200; authorization_servers: [https://api.figma.com]
1 earlier observation
  1. Supported · Passive scan · scanner@0.2.0 · evidence
PRM lists scopes_supportedmcp.prm.scopes-supported · Discovery · Authorization › Scope Selection StrategyMAYSupportedPassive scan · scanner@0.3.0source— HTTP 200; scopes_supported: [mcp:connect]
1 earlier observation
  1. Supported · Passive scan · scanner@0.2.0 · evidence
PRM reachable at a well-known URImcp.prm.well-known · Discovery · Authorization Server Discovery › Protected Resource Metadata Discovery RequirementsMUSTSupportedPassive scan · scanner@0.3.0source— HTTP 200; found at the path-aware location
1 earlier observation
  1. Supported · Passive scan · scanner@0.2.0 · evidence
resource_metadata in the 401 challengemcp.prm.www-authenticate · Discovery · Authorization Server Discovery › Protected Resource Metadata Discovery RequirementsMUSTUnknownPassive scan · scanner@0.3.0source— HTTP 400; no 401 challenge to an unauthenticated request (GET HTTP 405, POST HTTP 400), nothing to judge
1 earlier observation
  1. Unknown · Passive scan · scanner@0.2.0 · evidence
403 insufficient_scope for step-upmcp.rs.insufficient-scope · Authorization · Authorization › Scope Challenge HandlingSHOULDUnknown no observationno observation yet
Scope in the WWW-Authenticate challengemcp.rs.scope-challenge · Authorization · Authorization › Scope Selection StrategySHOULDUnknownPassive scan · scanner@0.3.0source— HTTP 400; no 401 challenge to an unauthenticated request (GET HTTP 405, POST HTTP 400), nothing to judge
No offline_access in advertised scopesmcp.prm.no-offline-access · Tokens · Authorization › Refresh TokensSHOULDSupportedPassive scan · scanner@0.3.0source— HTTP 200; scopes_supported without offline_access: [mcp:connect]
1 earlier observation
  1. Supported · Passive scan · scanner@0.2.0 · evidence
401 for missing or invalid tokensmcp.rs.401-on-invalid · Tokens · Authorization › Token HandlingMUSTUnknown no observationno observation yet
Audience validationmcp.rs.audience-validation · Tokens · Security Considerations › Access Token Privilege RestrictionMUSTUnknown no observationno observation yet
Bearer token only in the Authorization headermcp.rs.bearer-header · Tokens · Authorization › Access Token UsageMUSTUnknown no observationno observation yet
No token passthrough to upstream APIsmcp.rs.no-passthrough · Delegation · Security Considerations › Access Token Privilege RestrictionMUSTUnknown no observationno observation yet
Per-client consent on proxy serversmcp.proxy.consent · Consent · Security Considerations › Confused Deputy ProblemMUSTUnknown no observationno observation yet

Authorization server features 10

FeatureLevelStatusObservedEvidence
Metadata issuer matches the discovery URLmcp.as.issuer-match · Discovery · Authorization Server Discovery › Authorization Server Metadata DiscoveryMUSTSupportedPassive scan · scanner@0.3.0source— HTTP 200; issuer: https://api.figma.com equals the issuer the PRM named
1 earlier observation
  1. Supported · Passive scan · scanner@0.2.0 · evidence
Authorization server metadata discoverablemcp.as.metadata · Discovery · Authorization Server Discovery › Authorization Server Metadata DiscoveryMUSTSupportedPassive scan · scanner@0.3.0source— HTTP 200; issuer: https://api.figma.com
1 earlier observation
  1. Supported · Passive scan · scanner@0.2.0 · evidence
Client ID Metadata Documents supportedmcp.as.cimd · Registration · Client Registration › Client ID Metadata DocumentsSHOULDUnsupportedPassive scan · scanner@0.3.0source— HTTP 200; client_id_metadata_document_supported: absent
1 earlier observation
  1. Unsupported · Passive scan · scanner@0.2.0 · evidence
Dynamic Client Registration offeredmcp.as.dcr · Registration · Client Registration › Dynamic Client RegistrationMAYSupportedPassive scan · scanner@0.3.0source— HTTP 200; registration_endpoint: https://api.figma.com/v1/oauth/mcp/register
3 earlier observations
  1. Partial · Manual check · jbspeakr · evidence
  2. Supported · Passive scan · scanner@0.2.0 · evidence
  3. Unsupported · Vendor claim · jbspeakr · evidence
Documented pre-registration pathmcp.as.preregistration · Registration · Client Registration › Pre-registrationSHOULDPartialVendor claim · jbspeakr (documentation pass with Claude Code)source— "Only clients listed in the Figma MCP Catalog are able to connect to the Figma MCP Server. If you're a developer interested in connecting a new MCP client, you can join the waitlist." (The only documented path for a new client is a waitlist; no self-service way to obtain client credentials is described.)
Issuer identifier in authorization responsesmcp.as.iss-param · Authorization · Authorization › Authorization Response ValidationSHOULDSupportedPassive scan · scanner@0.3.0source— HTTP 200; authorization_response_iss_parameter_supported: true
1 earlier observation
  1. Supported · Passive scan · scanner@0.2.0 · evidence
PKCE with S256 advertisedmcp.as.pkce-s256 · Authorization · Security Considerations › Authorization Code ProtectionMUSTSupportedPassive scan · scanner@0.3.0source— HTTP 200; code_challenge_methods_supported: [S256]
1 earlier observation
  1. Supported · Passive scan · scanner@0.2.0 · evidence
Refresh token rotation for public clientsmcp.as.refresh-rotation · Tokens · Security Considerations › Token TheftMUSTUnknown no observationno observation yet
Resource indicators honouredmcp.as.resource-indicator · Tokens · Security Considerations › Token Audience Binding and ValidationMUSTUnknown no observationno observation yet
All endpoints served over HTTPSmcp.as.https · Transport · Security Considerations › Communication SecurityMUSTSupportedPassive scan · scanner@0.3.0source— HTTP 200; all 3 endpoints use https
1 earlier observation
  1. Supported · Passive scan · scanner@0.2.0 · evidence