프로그래밍공부(Programming Study)/AI&ML-Agent AI

MCP 서버 개발에서 헷갈리기 쉬운 uv, uvx, npm, npx 완전 정리

Chann._.y 2025. 9. 18.
728x90

최근 MCP 서버 개발을 하다 보면 uv, uvx, npm, npx 같은 명령어를 자주 쓰게 됩니다.

문제는 네 가지가 서로 비슷한 역할을 하다 보니 직관적으로 잘 안 와닿는다는 점이죠.

저도 DevOps 엔지니어로 프로젝트를 하다 보니,

“이건 pip이랑 뭐가 다르지?”, “uvx랑 npx은 같은 거 맞지?” 같은 고민을 많이 했습니다.

이번 글에서는 DevOps 관점에서 uv/uvx와 npm/npx을 어떻게 이해하면 되는지 정리해보겠습니다.

1. 한눈에 보는 큰 그림

  • npm ↔ uv
  • → 프로젝트 단위 패키지/환경 관리자
  • npx ↔ uvx
  • → 전역 설치 없이 패키지를 바로 실행하는 실행기

즉, 두 쌍이 서로 대응합니다.


2. npm / uv (프로젝트 패키지 관리자)

npm

  • Node.js의 표준 패키지 매니저
  • node_modules/에 의존성 설치
  • package.json으로 관리
npm install express
npm run dev

uv

  • Python 진영의 차세대 패키지 매니저
  • pip + venv + poetry 역할 통합
  • .venv/에 의존성 설치
  • pyproject.toml로 관리
uv pip install mcp[cli]
uv sync
uv run hello-mcp-server

3. npx / uvx (전역 실행기)

npx

  • npm 패키지를 전역 설치하지 않고 실행
  • CLI 도구 실행에 적합
npx create-react-app myapp
npx eslint .

uvx

  • PyPI 패키지를 전역 설치하지 않고 실행
  • 임시 venv를 만들어 실행 후 캐시 활용
uvx black --version
uvx hello-mcp-server

4. 비교 정리표

구분**Python 진영 (uv/uvx)**Node.js 진영 (npm/npx)

패키지 설치 uv pip install npm install
환경 관리 .venv, pyproject.toml node_modules, package.json
프로젝트 실행 uv run npm run
전역 실행 uvx npx

5. MCP 서버 개발에서 어떻게 쓸까?

  • Python MCP 서버
    • uv run → 로컬 개발용 실행
    • uvx → 배포 후 손쉽게 실행
  • Node.js MCP 서버
    • npm install → 의존성 설치
    • npx → 단발성 툴 실행

6. 직관적인 비유

  • npm: Node 프로젝트의 pip install + venv
  • uv: Python 프로젝트의 modern pip/venv
  • npx: 전역 설치 없는 npm 패키지 실행기
  • uvx: 전역 설치 없는 PyPI 패키지 실행기

7. 최종 정리

  • npm ↔ uv : 프로젝트 단위 환경 관리
  • npx ↔ uvx : 전역 설치 없는 단발성 실행기
  • MCP 서버 개발할 때는 “내가 지금 Python 쪽인지, Node.js 쪽인지, 프로젝트 실행인지 단발 실행인지”만 구분하면 혼동이 사라집니다.

📌 결론:

MCP 서버 개발에서는 Python 개발 → uv/uvx, Node.js 개발 → npm/npx 로 기억하세요.

그리고 실행 목적(프로젝트 단위 vs 단발 실행)만 구분하면 됩니다.

📌 다음 글 예고
Amazon Q Developer MCP 서버 설정 – command와 args 완전 이해에서는 Amazon Q Developer MCP 서버 설정에서 command와 args를 어떻게 정의하고 사용하는지를 집중적으로 다룹니다. DevOps 엔지니어가 로컬/배포 환경에서 Python과 Node.js MCP 서버를 실행할 때 어떤 차이가 있는지 정리해드리겠습니다.

728x90

댓글