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
'프로그래밍공부(Programming Study) > AI&ML-Agent AI' 카테고리의 다른 글
| Hello World MCP 서버 – Python & Node.js 구현과 Amazon Q Developer 연결 (0) | 2025.09.19 |
|---|---|
| Amazon Q Developer MCP 서버 설정 – command와 args 완전 이해 (0) | 2025.09.18 |
댓글