{"adoption": {"forks": 771, "observed_at": "2026-08-28T04:09:51.914474+00:00", "stars": 6987}, "canonical_url": "https://ross.abutalabs.com/products/cursor-talk-to-figma-mcp", "card": {"archived": false, "artifact_type": "plugin", "description": "TalkToFigma: MCP integration between AI Agent (Cursor, Claude Code, Codex) and Figma, allowing Agentic AI to communicate with Figma for reading designs and modifying them programmatically.", "domain": ["web-design", "developer-tools", "large-language-models"], "enriched": true, "function": ["mcp", "agent-framework", "workflow-automation", "websocket", "developer-tools"], "health_score": 77, "homepage": "https://www.figma.com/community/plugin/1485687494525374295/cursor-talk-to-figma-mcp-plugin", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["grab/cursor-talk-to-figma-mcp"], "name": "grab/cursor-talk-to-figma-mcp", "platform": ["bun", "browser", "cross-platform"], "pushed_at": "2026-07-26T07:14:26+00:00", "repo": "grab/cursor-talk-to-figma-mcp", "stars": 6987, "tags": ["figma", "cursor", "claude-code", "design-automation", "model-context-protocol", "ai-design-tools", "ai-agents", "automation", "nodejs", "desktop"], "topics": ["agent", "agentic", "agentic-ai", "ai", "cursor", "design", "figma", "mcp", "ai-agents", "llm", "llms", "automation", "generative-ai", "model-context-protocol", "claude-code", "codex"], "urls": [], "use_cases": ["let an AI agent edit Figma designs programmatically", "bulk replace text content across Figma files", "propagate component instance overrides in Figma", "read design specs from Figma into an AI coding assistant", "automate repetitive design tasks with an LLM agent"], "what_it_is": "An MCP server plus Figma plugin that lets AI agents like Cursor, Claude Code, and Codex read and programmatically modify Figma designs. A WebSocket server bridges the MCP server and the Figma plugin over a shared channel.", "when_to_avoid": ["you only need to export Figma designs to code without editing", "you don't use an MCP-compatible AI agent", "you need a fully hosted solution without running a local WebSocket server"], "when_to_choose": ["you use Cursor, Claude Code, or Codex and want AI-driven Figma manipulation", "you need bulk design edits like text replacement or instance overrides", "you want an open-source MCP bridge between AI agents and Figma"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/cursor-talk-to-figma-mcp", "repo": "grab/cursor-talk-to-figma-mcp", "role": "main", "score": 62}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:51.914474+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:41:07.830250+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "297d2f190b6effe48e8c83b93d31a920af63b388d0f69b03008037008bcd23de", "fetched_at": "2026-08-28T04:09:51.914474+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grab/cursor-talk-to-figma-mcp"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:51.914474+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:41:07.830250+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "297d2f190b6effe48e8c83b93d31a920af63b388d0f69b03008037008bcd23de", "fetched_at": "2026-08-28T04:09:51.914474+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grab/cursor-talk-to-figma-mcp"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:41:07.830250+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "297d2f190b6effe48e8c83b93d31a920af63b388d0f69b03008037008bcd23de", "fetched_at": "2026-08-28T04:09:51.914474+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grab/cursor-talk-to-figma-mcp"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:51.914474+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:51.914474+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:51.914474+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:41:07.830250+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "297d2f190b6effe48e8c83b93d31a920af63b388d0f69b03008037008bcd23de", "fetched_at": "2026-08-28T04:09:51.914474+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grab/cursor-talk-to-figma-mcp"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:51.914474+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:51.914474+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:41:07.830250+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "297d2f190b6effe48e8c83b93d31a920af63b388d0f69b03008037008bcd23de", "fetched_at": "2026-08-28T04:09:51.914474+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grab/cursor-talk-to-figma-mcp"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:51.914474+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:51.914474+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:51.914474+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:41:07.830250+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "297d2f190b6effe48e8c83b93d31a920af63b388d0f69b03008037008bcd23de", "fetched_at": "2026-08-28T04:09:51.914474+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grab/cursor-talk-to-figma-mcp"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:51.914474+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:51.914474+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:41:07.830250+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "297d2f190b6effe48e8c83b93d31a920af63b388d0f69b03008037008bcd23de", "fetched_at": "2026-08-28T04:09:51.914474+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grab/cursor-talk-to-figma-mcp"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:41:07.830250+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "297d2f190b6effe48e8c83b93d31a920af63b388d0f69b03008037008bcd23de", "fetched_at": "2026-08-28T04:09:51.914474+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grab/cursor-talk-to-figma-mcp"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:41:07.830250+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "297d2f190b6effe48e8c83b93d31a920af63b388d0f69b03008037008bcd23de", "fetched_at": "2026-08-28T04:09:51.914474+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grab/cursor-talk-to-figma-mcp"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:41:07.830250+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "297d2f190b6effe48e8c83b93d31a920af63b388d0f69b03008037008bcd23de", "fetched_at": "2026-08-28T04:09:51.914474+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grab/cursor-talk-to-figma-mcp"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 94, "longevity": 38, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 535, "days_push": 38, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 62, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}