포스트

python uv로 커스텀 mcp서버 만들고 claude-desktop, cursor에서 사용하기

  • uv 설치
  • uv 프로젝트 생성 및 python 커스텀 mcp 서버 만들기
  • claude-desktop에서 사용
  • cursor에서 사용

  • uv 설치

  • uv란 무엇인가?

uv는 Astral에서 개발한 Rust 기반의 Python 환경 관리 도구로, Python 생태계에서 사용되는 다양한 도구들을 하나의 통합된 CLI로 제공합니다. 기존에 사용하던 pip, virtualenv 등을 대체할 수 있습니다.

https://docs.astral.sh/uv/

uv uv An extremely fast Python package and project manager, written in Rust. Installing Trio 's dependencies with a warm cache. Highlights 🚀 A single tool to replace pip , pip-tools , pipx , poetry , pyenv , twine , virtualenv , and more. ⚡️ 10-100x faster than pip . 🗂️ Provides comprehensive proje… uv An extremely fast Python package and project manager, written in Rust. Installing Trio 's dependencies with a warm cache. Highlights 🚀 A single tool to replace pip , pip-tools , pipx , poetry , pyenv , twine , virtualenv , and more. ⚡️ 10-100x faster than pip . 🗂️ Provides comprehensive proje…


  • 운영체제별 설치

Windows

1
2
# On Windows.
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

macOS/Linux

1
2
# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh

  • 설치 확인
1
uv --version

  • uv가 어디 설치되었는지 확인

Windows(powershell)

1
get-Command uv

macOS/Linux

1
which uv

  1. uv 프로젝트 생성 및 python 커스텀 mcp 서버 만들기

  • uv mcp용 프로젝트 생성
1
2
3
4
5
# 프로젝트를 패키지로 생성
uv python install 3.13
uv init mcp-test --python 3.13 --package
cd mcp-test
uv add "mcp[cli]"

=> “pyproject.toml”, “uv.lock”, “.venv”, “main.py 또는 패키지일 경우 init.py 내 import main”


  • mcp-test/src/mcp_test/init.py
1
from .server import main

  • mcp-test/src/mcp_test/server.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import random
from mcp.server.fastmcp import FastMCP

# Create an MCP server instance
mcp = FastMCP("Random Greeting Server")

@mcp.tool()
async def random_greeting() -> str:
    """Returns a random Korean greeting."""
    greetings = [
        "안녕하세요",
        "안녕하세요~",
        "안녕하세요!",
        "반갑습니다",
        "환영합니다"
    ]
    return random.choice(greetings)

def main():
    mcp.run()

if __name__ == "__main__":
    main() 

  1. claude-desktop에서 사용

Windows(powershell)

1
2
3
4
5
# mcp-test에서 가상환경 활성화(mcp 명령어를 쓰기 위해)
.venv/scripts/activate
# claude에 서버 설치
mcp install src/mcp_test/server.py

macOS/Linux

1
2
3
4
# mcp-test에서 가상환경 활성화(mcp 명령어를 쓰기 위해)
source .venv/scripts/activate
# claude에 서버 설치
mcp install src/mcp_test/server.py

작업관리자 가서 실행중인 claude가 있다면 종료하고, 재시작하면 사용할 수 있습니다.


  1. cursor에서 사용

  • uv.exe가 설치된 경로 확인

(경로 확인 명령어는 uv가 어디 설치되었는지 확인> 파트를 확인해주세요!)

Windows 일 경우 다음 과 같은 경로에 설치되어 있습니다.

1
C:/Users/유저이름/.local/bin/uv.exe

  • 프로젝트 루트에 .cursor/mcp.json 생성

.cursor/mcp.json

1
2
3
4
5
6
7
8
9
10
11
12
13
{
    "mcpServers": {
        "random-greeting-server": {
            "command": "C:/Users/유저이름/.local/bin/uv.exe",
            "args": [
                "--directory",
                "C:/프로젝트루트/패키지폴더이름",
                "run",
                "패키지이름"
            ]
        }
    }
}


이번 포스팅에서는 python mcp 서버를 만들어보았습니다. 그리고 환경 관리 도구로 pip가 아닌 uv를 사용하였습니다.

uv를 사용하면 mcp 서버를 간편하고 빠르게 구축하고 cursor IDE에 통합할 수 있습니다.

앞으로도 mcp를 활용한 서버 구축 포스팅을 종종 올릴 예정입니다.

감사합니다.

sticker

참고(https://velog.io/@looa0807/MCP-서버-구축-해보기-Cursor-환경설정)

MCP 서버 구축 해보기 - Cursor 환경설정 (with UV) MCP 서버를 구축하는데 많은 시간을 들이지 않고, 커서와 함께 vibe coding을 할것이다.MCP 서버의 컨테이너화는 환경을 격리하고 보안을 강화하는데 도움이 된다.또한, 의존성에 관한 이식성과 일관성을 도우므로, MCP 서버가 원하는 곳은 어디서나 클라우드에 배 MCP 서버를 구축하는데 많은 시간을 들이지 않고, 커서와 함께 vibe coding을 할것이다.MCP 서버의 컨테이너화는 환경을 격리하고 보안을 강화하는데 도움이 된다.또한, 의존성에 관한 이식성과 일관성을 도우므로, MCP 서버가 원하는 곳은 어디서나 클라우드에 배

참고(https://velog.io/@euisuk-chung/UV-내가-참고하려고-작성한-UV-가이드)

💻 내가 보려고 작성한 UV 완벽 가이드 이 가이드에서는 UV의 핵심 기능과 실무 적용 방법을 상세히 알아보겠습니다. 이 가이드에서는 UV의 핵심 기능과 실무 적용 방법을 상세히 알아보겠습니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.