디자인을 못하는 사람도 뭔가를 해야 됐다.
때는 바야흐로 2학년 2학기를 맞이하였고, 이번 과목에는 UI 디자인과 3D 그래픽스 과목이 예정되어 있었다. 두 과목에선 각각 Figma와 Blender를 다루어야 했고, 기초란 게 없었던 나는 맨땅에 헤딩하는 식으로 툴을 익혀야 했다. 하지만 이런 식으로 하기엔 프로젝트는 고사하고 수업 과제도 못 낼 지경이었다. 다행히도 교수님들께서 요즘 시대에 알맞게 AI를 활용해도 된다고 하여, 단순 질의응답이 아닌 프롬프트를 바탕으로 결과물을 만들어내는 MCP를 활용하기로 하였다.
1. 무작정 물어보기
처음 던진 질문은 단순했다.
레퍼런스 이미지를 주면 Claude Code나 Codex가 블렌더로 3D 모델링을 해주는 프로젝트를 만들 수 있을까?
돌아온 답은 “가능하다”였다. 방법은 크게 두 가지였다.
- Claude가 Blender의 Python API(
bpy)로 모델링 스크립트를 짜고, 백그라운드 렌더링 결과를 레퍼런스 이미지와 비교하면서 수정을 반복하는 방식 blender-mcp같은 MCP 서버를 붙여서 Claude가 Blender를 직접 조작하고, 뷰포트 스크린샷으로 결과를 확인하면서 작업하는 방식
기계 부품처럼 각진 형태는 잘 만들지만 유기적인 곡면은 정확도가 떨어진다는 한계도 같이 들었다. 그래도 매번 스크립트를 돌리고 렌더링하는 것보단, Claude가 직접 Blender를 만지는 MCP 쪽이 훨씬 편해 보였다.
2. MCP는 어떻게 Blender를 조작하는가
다음으로 궁금했던 건 “MCP 서버를 따로 띄워서 연결하면 되는 건가?”였다. 구조를 물어보니 blender-mcp는 3단으로 구성되어 있었다.
Claude Code / Codex (MCP 클라이언트)
│ stdio
▼
blender-mcp 서버 (uvx로 실행되는 Python 프로세스)
│ TCP (localhost:9876)
▼
Blender 애드온 (Blender 내부에서 bpy로 씬 조작)
- Blender 애드온: Blender 안에서 도는 Python 스크립트다. 로컬 소켓으로 명령을 받아
bpy로 씬을 조작한다. Blender를 켜고 애드온을 활성화한 다음 서버를 시작해야 살아난다. - MCP 서버: 별도 프로세스다. Claude Code와는 MCP 프로토콜(stdio)로 통신하고, 반대쪽으로는 애드온 소켓에 TCP로 붙어서 명령을 전달한다. 중간 다리 역할이다.
- 클라이언트 등록: Claude Code나 Codex에 MCP 서버 실행 명령만 등록하면, 오브젝트 생성·머티리얼 적용·스크린샷 캡처 같은 도구를 Claude가 직접 호출할 수 있다.
가장 널리 쓰이는 건 ahujasid/blender-mcp 오픈소스 프로젝트로, 애드온과 MCP 서버가 한 세트로 들어 있다.
3. 문제는 “어디서” 돌리느냐였다
여기서 중요한 사실을 하나 알게 됐다.
Claude Code(또는 Codex), blender-mcp 서버, Blender는 같은 머신에 있어야 한다.
Claude Code는 MCP 서버를 로컬 하위 프로세스로 띄워서 stdio로 붙는다. 그리고 MCP 서버는 localhost:9876에 있는 애드온 소켓에 접속한다. 전부 로컬을 전제로 한 구조라서, 셋 중 하나라도 다른 곳에 있으면 SSH 터널 같은 우회 없이는 연결이 안 된다.
“MCP 서버를 쓰려면 Claude Code가 설치되어 있어야 하나?”라는 질문에 대한 답도 여기서 나왔다. MCP 서버 자체는 그냥 Python 패키지라 Claude Code와 무관하다. 하지만 서버를 실행하고 연결하는 게 클라이언트(Claude Code/Codex)이니, 결국 같은 머신에 CLI가 있어야 한다.
내 환경은 이랬다.
- 평소 Claude Code를 쓰는 곳: GUI가 없는 Linux 개발 서버
- 실제로 Blender를 돌리는 곳: macOS 노트북, Windows 11 데스크톱
개발 서버에서 Claude Code를 돌리면서 노트북이나 데스크톱의 Blender를 조작하려면 방법이 두 가지 있었다.
| 방법 | 내용 | 단점 |
|---|---|---|
| 로컬 실행 (추천) | Mac/Windows에 Claude Code·Codex를 직접 설치하고 Blender와 로컬로 연결 | 각 PC마다 설치가 필요 |
| 원격 연결 | 애드온 포트(9876)를 SSH 리버스 터널이나 0.0.0.0 바인딩으로 열고 개발 서버의 MCP 서버가 접속 | 포트 노출 등 보안 문제, 터널 유지, 방화벽 관리 |
아무 인증 없이 Blender에 임의의 Python 코드를 실행시킬 수 있는 포트를 네트워크에 여는 건 아무리 봐도 좋은 생각이 아니었다. 그래서 Blender를 쓰는 PC에서 Claude Code를 직접 구동하는 방향으로 타협했다.
4. Blender MCP 연결하기
Mac과 Windows 모두 과정은 같다.
4-1. uv 설치
blender-mcp 서버는 uvx로 실행하므로 먼저 uv를 설치한다.
# macOS
brew install uv
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
4-2. Blender 애드온 설치
- blender-mcp 저장소에서
addon.py를 내려받는다. - Blender에서
Edit > Preferences > Add-ons > Install로addon.py를 선택한다. Interface: Blender MCP항목을 체크해서 활성화한다.- 3D 뷰포트에서
N키로 사이드바를 열고,BlenderMCP탭에서 서버를 시작한다.
4-3. MCP 클라이언트에 등록
Claude Code에서는 한 줄이면 된다.
claude mcp add blender -- uvx blender-mcp
Codex는 ~/.codex/config.toml에 등록한다.
[mcp_servers.blender]
command = "uvx"
args = ["blender-mcp"]
등록한 뒤 Claude Code에서 /mcp로 blender 서버가 연결됐는지 확인하면 된다.
MCP 서버는 한 번에 하나만 띄워야 한다. Claude Code와 Codex를 동시에 blender-mcp에 붙이면 같은 소켓을 두고 충돌할 수 있다.
5. Figma MCP 연결하기
Figma는 Blender보다 훨씬 간단했다. Figma가 공식 MCP 서버를 원격(HTTP)으로 제공하기 때문에, 로컬에 서버나 플러그인을 따로 설치할 필요가 없다.
claude mcp add --transport http figma https://mcp.figma.com/mcp
등록한 뒤 Claude Code에서 /mcp를 열어 figma 서버를 선택하면 브라우저로 Figma OAuth 인증 창이 뜬다. 로그인하고 권한을 허용하면 연결이 끝난다.
Blender처럼 “같은 머신에 있어야 한다”는 제약이 없어서, GUI가 없는 개발 서버의 Claude Code에서도 그대로 쓸 수 있다는 점이 가장 컸다. 연결하고 나면 다음과 같은 작업을 할 수 있다.
- Figma 링크를 주고 디자인을 코드로 옮기기 (디자인 컨텍스트, 스크린샷 조회)
- 프롬프트나 기존 코드를 바탕으로 Figma에 화면·컴포넌트 만들기
- FigJam에 다이어그램 그리기
정리하며
| 구분 | Blender MCP | Figma MCP |
|---|---|---|
| 제공 | 오픈소스 (ahujasid/blender-mcp) | Figma 공식 |
| 연결 방식 | 로컬 stdio + TCP 소켓(9876) | 원격 HTTP + OAuth |
| 실행 위치 | Blender가 있는 PC에서 클라이언트 실행 필수 | 어디서든 가능 |
| 사전 준비 | uv 설치, Blender 애드온 설치·서버 시작 | 명령 한 줄 + 로그인 |
두 MCP를 붙이면서 가장 크게 배운 건 MCP 서버가 어디서 돌고, 무엇과 어떻게 통신하는지부터 확인해야 한다는 점이었다. 같은 MCP라도 blender-mcp는 로컬 프로그램을 조작하는 구조라 실행 위치가 중요했고, Figma는 클라우드 서비스라 인증만 신경 쓰면 됐다.
디자인도 3D도 잘 모르는 상태에서 시작했지만, 적어도 “도구를 어떻게 연결하느냐”만큼은 이제 헤매지 않을 것 같다.