MCP — Model Context Protocol — låter AI-agenter göra körningsverktygsanrop till externa tjänster. Figma levererar en officiell MCP-server, och communityn har byggt flera till. Budskapet: din agent kan be Figma om designdata direkt, på begäran, mitt i en konversation. Inget exportsteg. Alltid live.

figmascope tar det motsatta arkitektoniska vadslagandet: exportera en gång, leverera ett paket, anslut aldrig igen. Det här är genuint olika val med olika implikationer. Här är vad vart och ett faktiskt kostar och vinner.

Vad Figmas MCP-server är

Model Context Protocol är Anthropics öppna standard för att ansluta AI-agenter till externa verktyg via ett servergränssnitt. En MCP-server exponerar typade verktyg som agenten kan anropa: "get_file," "get_node," "get_styles" och så vidare. När agenten behöver designkontext anropar den verktyget, MCP-servern anropar Figma API, och resultatet återkommer som kontext för den aktuella prompten.

Figmas officiella MCP-server täcker filläsning, nodinspektion, komponenthämtning och kommentarsåtkomst. Community MCP-servrar (det finns flera på GitHub) utökar detta med anpassade scheman, ytterligare transformationer eller smalare scope optimerade för specifika agentarbetsflöden.

För att använda en Figma MCP-server konfigurerar du den i din agentklient (Claude Desktop, Cursor, Continue, etc.), tillhandahåller en Figma PAT och servern körs som en lokal process. När din agent behöver Figma-kontext anropar den verktyget. Du exporterar inte något explicit — agenten hämtar det den behöver när den behöver det.

MCP-modellen i praktiken

Ett typiskt MCP-drivet Figma-arbetsflöde ser ut så här: du öppnar Cursor, startar en konversation, säger "implementera kassaskärmen från den här Figma-filen," och agenten anropar get_file, drar nodträdet och har designdatan i kontext. Om du sedan säger "designern uppdaterade knapp-tokens" kan agenten anropa igen och få färska data.

Den här live-anslutningsmodellen är verklig och övertygande för vissa arbetsflöden. Agenten arbetar med aktuella data. Du hanterar inte exportartefakter. Det finns inget manuellt steg mellan "designern tryckte en ändring" och "agenten har den."

Där MCP vinner

Live-data, inget exportsteg. Agenten hämtar nuläget på begäran. Om designen ändrades för tio minuter sedan kan agenten se det. figmascope kräver en manuell re-export för att fånga ändringar.

Konversationsbaserad designutforskning. "Vad är färgen på CTA-knappen?" "Hur många skärmar refererar till den här komponenten?" Med MCP kan en agent svara på dessa genom att anropa Figma. Med ett paket är svaret bara så färskt som den senaste exporten.

Redigera Figma direkt. Vissa MCP-servrar exponerar skrivoperationer — skapa noder, uppdatera egenskaper, posta kommentarer. Det här är bara möjligt med en live-anslutning. Ett statiskt paket har ingen skrivväg.

Inget manuellt arbetsflöde. För utvecklare som redan använder MCP-anslutna agentinställningar innebär inget exportsteg en sak mindre att glömma. Kontexthanteringen delegeras till agenten.

Där MCP förlorar

Live-anslutningsmodellen har arkitektoniska kostnader som är lätta att underskatta.

Sessionsbundet tillstånd. MCP-anrop sker i kontexten av en konversationssession. Data som agenten hämtade i session A är inte tillgänglig i session B utan att hämta igen. Om du startar en ny chatt börjar agenten från noll. Ett figmascope-paket kvarstår mellan sessioner, mellan utvecklare och mellan verktyg — det är bara filer.

Ogenomskinligt för git. Det finns ingen artefakt. Inget att checka in. Designkontexten som informerade din kod lever inte i repot. Om sex månader, om du vill förstå hur designen såg ut när en komponent byggdes, finns det inget register. Med ett paket i repot har du en commit-historik av designavsikt.

Kräver anslutning. MCP behöver en körande server, en live Figma API-anslutning och en PAT med åtkomst. Nätverk nere, Figma API nere, PAT utgången — agenten har ingen kontext. Ett paket fungerar på ett flygplan.

Modellberoende hämtning. Vad agenten ber om via MCP beror på vad den bestämmer sig för att fråga om. Den kanske inte hämtar tokenvärdena. Den kanske inte drar komponentinventeringen. Den kanske bara begär det nodunderträd den tror sig behöva, och missar rumslig kontext från angränsande noder. Hämtningen är probabilistisk, inte deterministisk. figmascope hämtar allt, varje gång, med ett fast schema.

Svårare att testa och reproducera. "Min agent byggde den här komponenten från dessa Figma-data vid den här tidpunkten" är inte verifierbart med MCP. Hämtningen är flyktig. Med ett paket kan du spela upp exakt: samma paket, samma agent, samma prompt — deterministisk utdata. Det här spelar roll för felsökning, kodgranskning och leveransansvar.

Kontextfönstrettryck. Ett naivt get_file-anrop på en komplex Figma-fil returnerar ett enormt JSON-träd. Agenter måste göra selektiva verktygsanrop för att hålla sig inom kontextbudgetar. Det introducerar heuristik och bedömningsbeslut som kan gå fel. figmascope förbearbetar trädet till en strukturerad IR med bara det som behövs, i en känd, begränsad storlek.

figmascopes paketmodell: fånga en gång, leverera för alltid

figmascope exporterar en .zip av vanliga filer från Figma REST API — inget plugin, ingen server, körs i din webbläsare. Paketet innehåller:

När det väl är exporterat är paketet självständigt och oföränderligt. Det läggs i din repo bredvid koden det beskriver. Vilken agent som helst, vilken session som helst, vilken utvecklare som helst, vilket CI-jobb som helst kan läsa det. Ingen anslutning till något krävs.

Versionerbara diffar: jämföra paket som kod

Det här är paketmodellens starkaste argument. Eftersom utdatan är strukturerat JSON och Markdown kan du diffa det.

Exportera ett paket före en designsprint. Exportera ett till efter. Kör difftokens.json:

- "spacing.4": "16px"
+ "spacing.4": "14px"

Det är en brytande förändring i din avståndsskala. Det är synligt, granskningsbart och spårbart till en commit. Med MCP sker samma förändring tyst — nästa gång agenten hämtar får den det nya värdet, och det finns inget register att något ändrades.

Du kan köra det här som ett PR-grinde: exportera paketet som en del av designöverlämning, checka in det, kräv designer- och dev-godkännande av diffen innan implementationen börjar. Det är designspecifikation-som-kod. MCP har ingen motsvarighet.

Determinismsargumentet

Samma Figma-filversion + samma figmascope-export = samma paket. Varje gång. IR-schemat är fast. Tokenkällans logik är deterministisk. Strängnyckelextraktionen är regelbaserad.

MCP-hämtning är inte deterministisk. Agenten bestämmer vad den ska hämta. Olika agenter, olika promptformuleringar, olika kontextbudgetar — olika hämtningsbeteende. Utdatan är modellberoende.

För produkt-UI-kodgenerering spelar determinism roll. Du vill att specifikationen som genererade en komponent ska vara reproducerbar. Du vill kunna regenerera komponenten från samma indata och få konsekventa resultat. Paket stöder detta. MCP-sessioner gör det inte.

Jämförelse

Dimension Figma MCP figmascope-paket
Dataaktualitet Alltid live — hämtar nuläget i Figma Ögonblicksbild — så färsk som senaste exporten
Exportsteg krävs Nej Ja — en gång per designversion
Versionskontrollerbart Nej — ingen artefakt Ja — paketet är diffbart JSON + Markdown
Kvarstår över sessioner Nej — måste hämta om varje session Ja — filer kvarstår på obestämd tid
Fungerar offline Nej Ja
Deterministisk utdata Nej — modellberoende hämtning Ja — samma indata → samma paket alltid
Kontextfönstrettryck Högt — rå Figma JSON är stor och ostrukturerad Lågt — IR är förbearbetat, begränsad storlek
Skrivoperationer på Figma Ja (vissa MCP-servrar) Nej — skrivskyddad export
Designspec i git-historik Nej Ja — checka in paket, spåra designhistorik
Agentinställning krävs Ja — konfigurera MCP-server per agentklient Nej — vilken agent som helst som läser filer fungerar
i18n-strängnyclar Inte i bas Figma MCP-schema Ja — stringRef.key i IR + strings.json
Rumslig / layout IR Rått Figma-nodträd (inga semantiska layouttyper) Typad IR: stack / overlay / absolute / leaf
Tokenkälla Variables om inställt; annars råvärden Variables → härledd från frekvens → ingen

MCP lyser för "redigera Figma live" — paket lyser för "bygg produkt-UI"

Det här är den ärliga sammanfattningen. Om ditt arbetsflöde är konversationsbaserad designutforskning — "ändra den här komponenten," "kommentera den här skärmen," "vad är färgtokens på den här ramen" — är MCPs live-anslutning rätt modell. Agenten är en samarbetspartner i designprocessen och behöver aktuella data för att göra det.

Om ditt arbetsflöde är att bygga produkt-UI från en färdigställd (eller nästan färdigställd) design — implementera komponenter, koppla upp tillstånd, skriva tester — är paketmodellen bättre. Du vill att specifikationen ska vara förankrad i din repo, diffbar över designiterationer, läsbar av vilken agent som helst utan konfiguration och deterministisk nog att bygga på.

De två modellerna kompletterar varandra. Använd MCP när designen är i rörelse och du itererar i samarbete. Exportera ett figmascope-paket när designen är stabil och du överlämnar den till ingenjörer för implementering. Paketet blir sanningskällan som implementeringen är byggd mot — spårbar, granskningsbar, reproducerbar.