이 글에는 제휴 링크가 없습니다. 삽화는 GPT 이미지 생성, 도식은 직접 제작했습니다.
MCP vs API vs CLI 차이 — 도구함, 리모컨 다발, 통합 리모컨
거실에 기계가 여럿 있다고 해 보세요. 다루는 방법은 셋입니다. 기계 몸체에 달린 버튼을 직접 누르거나, 기기마다 딸려 온 리모컨을 쓰거나, 모든 기기의 기능 목록이 한 화면에 뜨는 통합 리모컨을 쓰거나. 셋 중 뭐가 제일 좋으냐는 질문은 이상하죠. 누가, 얼마나 자주, 뭘 하려는지에 따라 다르니까요.
AI 글을 읽다 보면 CLI, API, MCP 세 단어가 늘 같이 나옵니다. 이 셋의 관계가 정확히 위 세 방법이에요. CLI는 몸체의 버튼, API는 기기별 리모컨, MCP는 통합 리모컨 규격. 이 글은 셋을 한 줄씩 가르고, 같은 일 하나를 세 방식으로 해 보고, 제 블로그 공장이 실제로 셋을 어디에 쓰는지 보여드립니다.

결론 요약
- CLI = 사람이(또는 터미널을 쥔 AI가) 명령어를 쳐서 프로그램을 부르는 방식. 몸체의 버튼
- API = 프로그램이 프로그램을 부르는 약속. 서비스마다 주소·항목·인증 양식이 다르다. 기기별 리모컨
- MCP = AI 앱이 도구와 자료를 발견하고 부르는 공용 규격. AI가 목록을 보고 스스로 고른다. 통합 리모컨 규격
- 셋은 경쟁이 아니라 층입니다. MCP 서버의 속은 대개 API나 CLI이고, 제 블로그 공장은 셋을 다 씁니다
🔘 1. CLI — 기계에 달린 버튼
CLI(Command Line Interface)는 검은 창(터미널)에 글자로 명령을 치는 방식입니다. git commit, ffmpeg -i 영상.mp4 … 같은 것들이죠. 마우스 대신 글자로 누르는 버튼이라고 보면 됩니다.
두 가지를 짚어 둘게요. 첫째, CLI는 사람만 쓰는 게 아닙니다. Claude Code는 그 자체가 CLI이면서, 작업 중에 다른 CLI를 부릅니다. 제 저장소의 자동화 코드 여섯 파일이 git·Edge·npm 같은 프로그램을 명령어로 부르고, 릴스는 ffmpeg 명령 한 줄로 만듭니다. AI가 터미널을 쥐면 그 순간부터 CLI는 AI의 손이에요.
둘째, 명령어를 알고 있어야 합니다. 버튼이 어디 있는지 모르면 못 누르죠. 그래서 AI가 CLI를 쓸 때는 그 도구의 사용법을 이미 알고 있거나, 문서를 먼저 읽습니다.

📡 2. API — 기기별 리모컨
API(Application Programming Interface)는 프로그램이 다른 프로그램(대개 인터넷 너머의 서비스)에게 일을 시키는 약속입니다. “이 주소로, 이 항목을 채워서, 이 열쇠(키)를 붙여 보내면, 이런 답을 준다”가 정해져 있어요.
제 공장의 예를 들면 이렇습니다. 이 글의 삽화는 파이썬 스크립트가 OpenAI 이미지 API에 “이런 장면을 그려줘”를 정해진 양식으로 보내서 받아 온 것이고, 여행 글의 재료는 GitHub API로 이슈를 읽어 옵니다. 두 API의 주소도, 항목 이름도, 인증 방식도 서로 달라요. 리모컨이 기기마다 다른 것과 같습니다. 그래서 API는 사람이 직접 누르는 게 아니라 개발자가 코드에 미리 적어 두고, 프로그램이 정해진 순서로 누릅니다.
🎛️ 3. MCP — 통합 리모컨 규격
MCP(Model Context Protocol)는 공식 문서의 정의로 “AI 애플리케이션을 외부 시스템에 연결하는 오픈소스 표준”입니다. 문서 자체가 “AI 앱을 위한 USB-C 포트”라고 비유하고, MCP 뜻 글에서 그 비유를 그대로 썼어요. 이 글에선 리모컨 비유로 한 겹 더 들어갑니다.
API와 뭐가 다르냐면, AI가 목록을 받아 스스로 고른다는 점입니다. 구조는 이렇습니다.
- 호스트(Claude Code 같은 AI 앱)가 서버(도구를 내놓는 프로그램)마다 클라이언트 하나를 만들어 연결합니다
- 서버가 내놓는 것은 셋 — 도구(실행할 수 있는 함수: 파일 작업, API 호출, DB 조회), 자료(파일 내용, DB 기록 같은 맥락), 프롬프트(재사용 지시 틀)
- AI 앱은 먼저
tools/list로 어떤 도구가 있는지 묻고, 그중 하나를tools/call로 부릅니다. 메시지 형식은 JSON-RPC 2.0 하나로 통일돼 있고, 같은 컴퓨터 안(stdio)이든 인터넷 너머(streamable HTTP)든 형식이 같습니다
이 글을 쓰는 제 Claude Code 세션에는 MCP 서버가 아홉 개 붙어 있습니다. Figma·Gmail·구글 캘린더·구글 드라이브·Notion·Slack 여섯 개는 인증이 돼 있고, 셋은 인증 대기예요. 제가 “이 파일 드라이브에 올려줘”라고만 하면, AI가 여섯 서버의 도구 목록에서 드라이브 서버의 파일 만들기 도구를 골라 부릅니다. 어느 도구를 쓸지 사람이 코드에 적어 두지 않았다는 게 API와의 결정적 차이입니다.

🔁 4. 같은 일을 세 방식으로 — 구글 드라이브에 파일 올리기
말로만 가르면 헷갈리니, 같은 일 하나를 셋으로 해 봅니다. “보고서.pdf를 구글 드라이브에 올린다.”
- CLI — rclone이라는 프로그램(공식 문서의 소개는 “클라우드 저장소용 rsync”)을 설치하고 터미널에
rclone copy ./보고서.pdf gdrive:backup. 사람이 치거나, 터미널을 쥔 AI가 칩니다 - API — 내 프로그램이 구글 드라이브 API 공식 문서대로
POST https://www.googleapis.com/upload/drive/v3/files?uploadType=media에 파일을 실어 보냅니다.Authorization: Bearer 토큰과Content-Type헤더가 필요하고, 이 단순 업로드 방식은 5MB 이하 파일용이에요. 사람은 직접 안 누릅니다 - MCP — AI에게 “이 파일 드라이브에 올려줘”. AI 앱이 드라이브 MCP 서버의 도구 목록에서 파일 만들기 도구를 발견하고, 이름과 내용을 채워 부릅니다. 그 서버는 안에서 결국 드라이브 API를 부릅니다

🧱 5. 층 관계 — MCP 서버의 속은 API나 CLI다
셋을 나란히 두면 경쟁 관계처럼 보이지만, 실제로는 위아래로 쌓여 있습니다. MCP 공식 문서가 도구를 “파일 작업, API 호출, 데이터베이스 조회 같은 동작을 수행하는 실행 가능한 함수”라고 정의하듯, MCP 서버는 그 동작을 안에서 API나 CLI로 수행합니다. 드라이브 MCP 서버의 속은 드라이브 API이고, 파일시스템 MCP 서버의 속은 로컬 파일 명령이에요.
그러니 “MCP가 API를 대체한다”는 말은 틀립니다. MCP는 API·CLI를 AI가 쓰기 좋게 포장하는 규격이에요. 리모컨을 없애는 게 아니라, 리모컨 다발을 통합 리모컨 한 화면에 올리는 겁니다.
🎯 6. 언제 뭘 쓰나
| 상황 | 고르는 것 | 이유 |
|---|---|---|
| 한 번 하는 일, 스크립트 한 줄, 내 컴퓨터의 파일·빌드·배포 | CLI | 설치하면 바로 되고, 사람도 AI도 같은 명령을 쓴다 |
| 매일 정해진 순서로 도는 자동화, 서비스 간 연결 | API (코드로) | 판단이 필요 없는 일에 AI를 끼우면 느리고 비싸다 |
| 상황을 봐가며 도구를 골라야 하는 일, “이거 해줘” 한마디로 끝내고 싶은 일 | MCP | AI가 목록에서 고르니 사람이 순서를 적어 둘 필요가 없다 |
| 팀이 쓰는 AI 앱에 회사 도구를 붙이기 | MCP 서버 하나 | 한 번 만들면 MCP를 지원하는 AI 앱 어디서든 같은 서버를 쓴다 |
제 공장이 정확히 이 표대로 나뉘어 있습니다. 매일 아침 6시 릴리스는 CLI와 API만 씁니다 — 사이트 빌드·배포(CLI), 이슈 수집(API), 정해진 순서니까 AI의 판단이 필요 없어요. 반면 글을 쓰는 세션은 MCP를 씁니다 — Claude Code가 필요할 때 드라이브·메일·Notion 도구를 스스로 고르죠. 에이전트 글의 “지시서·도구·규칙” 중 도구 칸이 바로 이 세 층입니다.
⚠️ 7. 주의 — 통합 리모컨은 권한도 통합한다
- MCP 서버는 AI에게 준 권한입니다. 목록에 있는 도구는 AI가 고를 수 있어요. 메일 보내기·파일 삭제 같은 도구가 있으면, 그걸 언제 써도 되는지 규칙이 필요합니다. 서버 추천 글의 “연결 전 확인할 것”이 그 이야기예요
- API 키는 리모컨의 배터리가 아니라 집 열쇠입니다. 코드나 대화에 붙여 넣지 말고 설정 파일(.env)에만 두세요. 제 공장도 키는 .env 한 곳에서만 읽고 어디에도 출력하지 않습니다
- CLI를 쥔 AI는 뭐든 할 수 있습니다. 그래서 훅으로 실행 전 검사를 두는 거예요
🎯 시작 코스 — 셋을 한 번씩 만져 보기
- CLI: 터미널을 열고
git --version한 줄. 검은 창이 답하면 CLI를 쓴 겁니다 - API: AI에게 “무료 공개 API 하나로 데이터를 가져오는 파이썬 10줄을 써줘”라고 시켜 돌려 봅니다. 주소·항목·키가 눈에 들어옵니다
- MCP: Claude Code에 MCP 서버 하나 연결하고 “지금 쓸 수 있는 도구 목록 보여줘”라고 물어봅니다.
tools/list의 결과를 사람 말로 보는 겁니다 - 같은 일(파일 하나 올리기)을 셋으로 해 봅니다. 어느 쪽이 편했는지가 곧 여러분의 답입니다
버튼, 리모컨, 통합 리모컨. 어느 하나가 이기는 게 아니라 누가 누르느냐가 다를 뿐입니다. 사람이면 버튼, 프로그램이면 리모컨, AI면 통합 리모컨이에요.
기준: 2026-09-22. MCP의 정의·구조(호스트·클라이언트·서버)·서버 원시 요소(도구·자료·프롬프트)·메시지 형식(JSON-RPC 2.0)·전송 방식(stdio·streamable HTTP)·도구 발견과 호출(tools/list·tools/call)은 MCP 공식 문서(modelcontextprotocol.io 소개·아키텍처 페이지, 2026-07-28 판)를 이날 직접 확인했습니다. rclone 명령 형태는 rclone 공식 문서의 Drive 페이지, 드라이브 API 주소·헤더·5MB 제한은 Google Drive API 공식 문서 “업로드 관리” 페이지 기준입니다. 이 세션에 붙은 MCP 서버 수(9, 인증 6)와 제 자동화 코드의 CLI·API 사용처는 직접 집계했습니다. 삽화는 GPT 이미지 생성, 도식은 직접 제작했습니다.