최근 AI 에이전트의 활용이 급격히 늘어나면서, 많은 개발자들이 OpenAI의 ChatGPT나 Anthropic의 Claude와 같은 모델을 활용하여 자동화된 시스템을 구축하고 있습니다. Claude 는 최근 MCP(Multi-Channel Protocol) 를 기반으로 한 아키텍처를 도입하면서 AI 에이전트 분야에서 빠르게 성장하고 있습니다. 다양한 입력을 처리하고, 보다 유연한 멀티모달 인터페이스를 제공한다는 점에서 주목받고 있죠. 하지만 실제로 Claude를 시스템에 통합해 활용하다 보면, 생각보다 많은 제약이 존재합니다. API 호출 비용이 상당히 높거나, 완전한 커스터마이징이 어렵고, 사내 시스템과의 유연한 연결이 제한적이기도 합니다.
이 글에서는 MCPO(MCP to OpenAPI Proxy) 를 활용하여 Claude 를 사용하지 않고 Open-WebUI 로 MCP Server 를 활용하는 방법에 대해 설명하고자 합니다.
MCPO(MCP to OpenAPI Proxy) 란?
MCPO 는 MCP 서버를 OpenAPI 인터페이스로 노출시키는 프록시 서버입니다. 간단히 말해, MCPO를 사용하면 기존의 Claude 가 MCP 프로토콜로 서버에게 요청하는 것과 달리 RESTful OpenAPI를 통해 MCP 서버를 활용할 수 있습니다.
MCPO는 다음과 같은 장점을 제공합니다:
- 간단한 설정 및 사용
- REST API를 통한 유연한 접근
- 기존 클라이언트 시스템과 손쉬운 통합
사용 방법
OpenAI 에서 발급받은 API KEY 를 사용하여 gpt-4.1 LLM 으로 제어하는 설정을 진행해보겠습니다.
Docker 가 설치되어 있다는 전제 하에 설명합니다.
Open-WebUI 설치
먼저 PC 에 Open-WebUI 를 docker container 로 구축합니다.
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
restart: unless-stopped
container_name: open-webui
pull_policy: always
ports:
- "3000:8080"
environment:
- ENABLE_OPENAI_API=true
- OPENAI_API_KEY=[OPENAI 에서 발급받은 API 키 입력]
volumes:
- ./frontend-data:/app/backend/data
$ docker compose up -d
uv, uvx 설치
Node.js 생태계에서는 npx 라는 명령어가 자주 사용됩니다. 이는 npm 패키지를 전역 설치하지 않고도, 한 번만 실행해보고 싶을 때 유용한 도구입니다. 예를 들어 npx create-react-app my-app처럼 입력하면 create-react-app 패키지를 로컬에 설치하지 않아도 즉시 실행할 수 있습니다. npx는 내부적으로 npm 레지스트리에서 해당 패키지를 내려받아 임시로 저장한 뒤 실행하고, 작업이 끝나면 캐시만 남깁니다. npm, npx 는 설치되어 있다는 전제하에 설명하겠습니다.
uv 는 libuv 기반으로 만들어진 초고속 실행 환경입니다. 이름에서 알 수 있듯이 Node.js에서 사용되는 libuv 이벤트 루프 모델을 차용하면서도, Node.js보다 훨씬 가볍고 빠른 실행 속도를 자랑합니다. 일반적으로 MCP 도구를 직접 실행할 때 uv mcp-server-memory처럼 사용하며, 이미 설치된 바이너리를 실행하는 역할을 합니다.
uvx 는 uv의 확장 실행기라고 이해하면 됩니다. npm의 npx처럼 동작하여, MCP 관련 패키지를 실행할 때 필요한 모듈을 자동으로 내려받고 실행할 수 있습니다. 예를 들어 uvx mcp-server-time --local-timezone=Asia/Seoul처럼 입력하면 해당 MCP 서버를 자동 설치하고 실행하게 됩니다. 덕분에 별도의 설치 과정 없이도 빠르게 서버를 띄울 수 있어 매우 편리합니다.
정리하자면 uv는 고성능 런타임 자체이고, uvx는 이를 활용한 실행기입니다. MCP나 MCPO 기반의 도구들을 다루는 과정에서 이 둘은 꼭 알아두면 좋은 필수 도구입니다.
맥OS, 리눅스, WSL 환경의 경우 다음 명령으로 설치합니다.
curl -LsSf https://astral.sh/uv/install.sh | sh
윈도우 OS 의 경우 다음 명령으로 설치합니다.
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
MCPO 와 MCP Server 설치 및 구축
저는 Figma MCP Server 를 설치하는 것으로 예시를 들겠습니다.
먼저 특정 디렉토리에 config.json 을 생성하고 다음과 같이 작성합니다.
{
"mcpServers": {
"ClaudeTalkToFigma": {
"command": "npx",
"args": ["claude-talk-to-figma-mcp@latest"]
}
}
}
해당 config.json 의 mcpServers 하위에 다양한 MCP 서버들을 삽입하고 MCPO 구축이 가능합니다.
이제 다음 명령을 통해 Proxy 와 MCP 서버를 구축합니다.
$ uvx mcpo --port 9000 --config [config.json 이 위치한 디렉토리 경로]/config.json
Open-WebUI 에 MCPO 주소 등록
먼저 브라우저를 통해 http://localhost:3000 으로 접속합니다. 설정 -> 관리자 패널로 접근합니다.
이후 설정 -> 도구 로 이동합니다. 도구 서버 관리 오른쪽 끝 '+' 를 클릭하여 MCPO 주소를 등록합니다.
주소 추가 후 오른쪽 새로고침 버튼을 클릭한 후 공개 범위를 설정한 다음 저장을 클릭합니다.
주소 형태는 다음과 같습니다.
http://localhost:9000/\[config.json 의 mcpServers 에서 추가한 이름]
이후 새 채팅으로 돌아와서 채팅 설정 -> 고급 매개변수 -> 함수 호출 을 '네이티브' 로 설정합니다.
이렇게 설정하고 프롬프트 작성 창에 도구 모양이 생겼고 1 이라고 설정되어 있는 모습을 확인할 수 있습니다. 해당 공간을 클릭하게 되면 MCP 서버가 연결된 모습을 확인하실 수 있습니다!
이후 채팅으로 figma 조작이 가능합니다!
Reference
https://github.com/open-webui/mcpo
https://velog.io/@martin-han/OpenWebUI-MCPO
https://docs.openwebui.com/
https://github.com/arinspunk/claude-talk-to-figma-mcp
'개발' 카테고리의 다른 글
Mermaid Live Editor vs draw.io 비교: 최고의 다이어그램 도구는? (1) | 2025.05.31 |
---|---|
파이썬 GIL 극복하기 3가지 방법: 멀티프로세싱 asyncio 라이브러리 활용법 (0) | 2025.05.18 |
VM vs Container: 고성능 앱 배포를 위한 최적 선택은? (VM 격리 vs 컨테이너 효율성) (1) | 2025.03.07 |
생각하는 LLM 모델: DeepSeek-R1 및 QLASS가 AI의 논리적 사고를 혁신하는 방법 (1) | 2025.03.03 |
MLOps 마스터하기: 자동화된 머신러닝 모델 개발부터 배포까지 5단계 가이드 (3) | 2025.02.05 |