cursor-talk-to-figma-mcp는 cursor에서 MCP를 통해 figma와 연동하여 디자인을 손쉽게 해줄 수 있는 도구이다.
우선 MCP가 무엇인지에 대해서 먼저 알아보자.
MCP란 Model Context Protocol의 약자로서, LLM이 외부 데이터와 시스템을 더 효과적으로 활용할 수 있도록 설계된 일종의 연결 프로토콜이다.
- Model: 일반적으로 AI 모델(특히 LLM)을 지칭합니다.
- Context: 해당 모델이 이해하고 반응할 수 있도록 주어진 배경 정보, 명령, 문맥입니다.
- Protocol: 모델과 사용자 또는 다른 시스템 간 정보 교환의 형식이나 규칙을 의미합니다.

MCP는 위 그림과 같이 Host, Client, Server로 구성된다.
각각의 구성요소에 대해 알아보자.
각 구성요소 내부에는 더 세부적인 하위 요소들이 있지만, 사용하는 입장에서는 이 정도만 이해해도 무리 없이 활용할 수 있다.
이제 해당 툴을 사용하는 방법에 대해 알아보자.
우선 cursor AI에서 해야 할 것들이다.
Download ZIP을 해도 좋고, git clone을 해도 좋다.

1) Bun 설치
curl -fsSL https://bun.sh/install | bash
2) 셋업을 실행한다. MCP도 현재 Cursor에서 활성화된 프로젝트에 설치된다.
bun setup
3) Websocket 서버를 실행한다.
bun socket
4) 새 터미널을 열고 MCP 서버를 실행한다.
bunx cursor-talk-to-figma-mcp

위와 같이 설정 > Tools & Integrations로 들어갔을 때 Mcp Tools의 TalkToFigma가 on 이 되어 있고, 초록불로 활성화되어 있어야 한다.


Connected to server on port 3055 in channel: (채널명)

채널명은 1hdk10xj이고, 포트번호가 3055인 MCP 서버에 연결되었다는 뜻이다.
이제 채널에 연결할 차례이다.
여러 블로그에서 프롬프트에 cursor talk to figma plugin channel: (채널명)을 하면 연결이 완료된다고 했는데,
나의 경우에는 인식하지 못하고 자꾸 다른 얘기를 하는 경우가 많았고, 커서가 채널 연결에 적절한 메서드를 사용하지 않았다.
따라서 나는 다음과 같이 프롬프트를 작성했다.

채널명은 이전에 언급하였으므로, 적절한 메서드인 join_channel을 사용해달라고 하니 정상적으로 연결이 완료되었다.
이제 피그마에서 선택한 특정 요소를 코드로 구현해달라고 요청할 차례이다.

요소를 선택한 뒤, 오른쪽 마우스 버튼 클릭 > 복사/붙여넣기 옵션 > 선택 항목 링크 복사 를 하면 해당 요소의 노드 번호가 포함된 URL을 복사할 수 있다.
이를 커서에 붙여넣기하여 다음과 같이 프롬프트를 작성했다.

하지만 나오는 답변이 이상했다. 이 때는 다음과 같이 해결하면 된다.
선택된 노드의 정보 읽기 명령을 실행해줘 라고 입력하거나 노드 번호만 추출해서 구현해줘 라고 입력한다.
그래도 안되면 get_document_info 메서드를 사용해서 노드의 정보를 가져와줘 라고 입력한 후, get_node_info 메서드를 사용해서 해당 frame을 분석해줘라고 입력한다.
완전하진 않지만, 원하는 디자인에 근접하게 코드로 구현할 수 있다.
잘 활용하면 퍼블리싱에 걸리는 시간을 많이 줄일 수 있을 것 같다.
http://velog.io/@byu0hyun/whatismcp
https://www.youtube.com/watch?v=RD_-4atY1Ac&t=495s