
MCP 서버로 무엇을 할 수 있을까? 【초보자용】
요약
Model Context Protocol(MCP)의 개념과 구조, 그리고 AI 모델과 외부 도구 간의 상호작용 방식을 초보자 관점에서 설명합니다. MCP를 통해 사용자는 세부적인 실행 단계 대신 목적 중심의 명령만으로 AI가 외부 API나 데이터를 활용하게 할 수 있습니다.
핵심 포인트
- MCP는 AI가 외부 도구와 데이터를 이해하고 사용할 수 있게 하는 공통 규격입니다.
- MCP 서버에는 AI 모델이 내장된 것이 아니라 도구 정의와 실행 로직이 포함됩니다.
- 사용자는 세부적인 수단 대신 목적 중심의 고수준 명령으로 업무를 지시할 수 있습니다.
- AI 앱, AI 모델, MCP 서버 간의 역할 분담을 통해 효율적인 도구 활용이 가능합니다.
최근 자주 눈에 띄는 「MCP 서버」라는 말.
간단히 조사해 본 결과, 감상은 다음과 같다.
궁금해져서, AI 초보자로서 ChatGPT와 대화하며 이해를 넓혀 보았다.
이하 조사한 내용의 요약이다.
MCP는 「Model Context Protocol」의 약자.
"외부의 API, 데이터베이스, 파일, 로컬 기능 등을 AI가 이해하고 이용할 수 있는 '도구'로서 제공하기 위한 공통 규격"이며,
전체 구조는 예를 들면 이런 느낌.
사용자
↓ 목적을 의뢰
AI 모델
...
다시 한번 확인, MCP 서버 자체에 AI 모델이 탑재되어 있는 것은 아니다.
MCP 서버가 가지고 있는 것은 주로 다음과 같은 것들.
- 도구의 이름
- 도구의 설명
- 입력 형식
- 실제 처리
- 인증 정보
- 입력 검증 및 권한 제어
예를 들어, 게임 플레이어 랭킹을 취득하는 도구라면, 개념적으로는 다음과 같이 정의한다고 한다 (by ChatGPT).
server.registerTool(
"get_player_ranking",
{
...
이 설명문은 MCP 서버 내의 AI가 생각하는 것이 아니라, 개발자가 구현한 고정된 도구 정의이다.
물론, Codex 등에 MCP 서버를 만들어 달라고 할 수는 있지만, 완성된 MCP 서버에 AI가 내장되어 있다는 의미는 아니다.
AI 모델과 MCP 서버 사이에는 AI 앱이 존재한다고 한다.
AI 모델
↕ 판단・도구 실행 요구
Codex 등의 AI 앱
...
각각의 역할을 정리한다.
-
달성하고 싶은 목적을 전달한다.
-
AI에게 허가할 조작을 결정한다.
-
중요한 조작을 승인한다.
-
최종 결과를 평가한다.
-
의뢰의 목적을 이해한다.
-
필요한 정보를 생각한다.
-
사용할 도구를 선택한다.
-
도구를 사용하는 순서를 구성한다.
-
취득 결과를 분석하여 설명한다.
-
MCP 서버에 접속한다.
-
이용 가능한 도구를 취득한다.
-
도구의 설명을 AI 모델에 전달한다.
-
AI 모델로부터의 실행 요구를 MCP 서버로 전달한다.
-
실행 결과를 AI 모델로 반환한다.
-
AI가 이용할 수 있는 도구를 공개한다.
-
입력을 검증한다.
-
외부 API나 DB에 액세스한다.
-
인증 정보를 관리한다.
-
허가된 처리만 실행한다.
-
결과를 공통 형식으로 반환한다.
예를 들어, 게임 매출이 떨어진 원인을 조사하고 싶을 때, 수단 레벨까지 의뢰를 브레이크다운(Breakdown)할 수 있다면 직접 API를 호출하러 갈 수 있다.
일별 매출 API를 호출해 주세요.
다음으로 플레이어 수를 취득해 주세요.
지속률과 스테이지별 이탈률도 취득하여, 전월과 비교해 주세요.
다만, MCP로 필요한 도구를 AI에게 제공하고 있다면, 다음과 같은 목적 레벨에서의 의뢰로 충분하다. 수단 등은 AI가 생각해 준다.
최근 게임 매출이 떨어진 원인을 조사해 주세요.
그다음은 AI가 생각해 준다 (예를 들면 이런 식).
- 일별 매출을 취득한다
- 플레이어 수를 취득한다
- 지속률을 취득한다
- 스테이지별 이탈률을 취득한다
- 앱의 에러 발생률을 취득한다
- 변화가 일어난 시기를 비교한다
- 원인 가설을 보고한다
즉, 인간이 수단 레벨의 지시를 조합하지 않아도, 목적 레벨로 일을 의뢰하기 쉬워진다.
외부용 API가 있다면,
AI에게 직접 그 API를 사용하게 하면 되지 않을까?
결론부터 말하자면, 직접 사용하게 해도 문제는 없으며 MCP가 필수적인 것은 아니다.
구현 방법은 크게 두 가지.
AI 모델
↓
AI 앱 내의 독자적 연계
...
AI 모델
↓
AI 앱의 MCP 클라이언트
...
어느 쪽이든 같은 결과를 실현할 수 있지만, **「AI에게 직접 API를 사용하게 하는 것」**에는 실제로는 고려해야 할 사항이 매우 많다.
- API 사양을 AI에게 전달한다
- AI의 출력에서 인자(Argument)를 추출한다
- HTTP 요청을 실행한다
- 인증 정보를 부가한다
- 입력을 검증한다
- 에러를 처리한다
- 위험한 조작을 거부한다
- 응답(Response)을 AI에게 반환한다
게다가 AI 모델은 API 호출 방법을 생각할 수는 있지만, 통상적으로 모델 스스로가 자유롭게 HTTP 통신을 실행하는 것은 아니다.
→ 결국, AI와 API를 중개하는 층(Layer)이 필요하게 된다.
그 중개층을 독자 사양으로 만들어도 되고, MCP라는 공통 사양으로 만들어도 된다는 이해.
(공통 사양으로 만듦으로써 얻는 재사용성의 이점 등도 궁금하다.
AI에게 다음과 같은 만능 도구를 전달하는 방법도 생각할 수 있습니다.
http_request(
method,
url,
...
하지만, 물론 위험하다는 것은 알고 있다.
- 의도하지 않은 URL에 접속할 수 있음
- 인증 정보(Authentication Information)가 AI에게 노출될 가능성이 있음
- 삭제나 업데이트 API를 실수로 호출할 가능성이 있음
- API 사양 전체를 AI에게 전달해야 함
- 입력을 안전하게 제한하기 어려움
그래서 AI에게는 용도를 한정한 도구(Tool)를 전달하기로 한다. 이것이 MCP 서버 내에서 구현되어 있는 것이다.
get_player_ranking(period, limit)
get_daily_sales(date)
get_stage_dropoff(stageId)
이런 형태라면 AI가 실제 URL이나 API 토큰을 알 필요가 없는 등의 장점이 있다.
MCP 서버 측에서 접속 대상이나 인증 처리를 숨긴다↓
async ({ period, limit }) => {
return fetch(`${API_URL}/ranking`, {
headers: {
...
AI에게 필요한 능력만을 이해하기 쉽고 안전한 형태로 제공할 수 있다.
MCP가 적합한 상황
- AI에게 목적(Goal) 수준으로 업무를 의뢰하고 싶을 때
- 그 업무에 외부 데이터나 조작이 필요할 때
- AI가 여러 도구 중에서 수단을 선택해야 할 때
- 동일한 기능을 AI로부터 반복적으로 이용하고 싶을 때
- 여러 AI 애플리케이션에서 재사용하고 싶을 때
예를 들어, 다음과 같은 유스케이스(Use Case)
- 매출 저하 원인을 여러 데이터로부터 조사한다
- 장애 원인을 로그나 모니터링 데이터로부터 특정한다
- 고객 정보와 주문 이력을 조사하여 문의에 답변한다
- 상위 사용자(Top User)와 이탈 사용자의 행동을 비교한다
- 사내의 여러 시스템으로부터 정보를 모아 리포트를 작성한다
- 상황을 판단하여 운영 업무를 실행한다
반면, 다음과 같은 처리에는 일반적인 API 구현으로 충분하다
- 게임 내에서 자신의 랭킹을 표시한다
- 버튼을 눌러 정해진 API를 호출한다
- AI에 의한 판단이 필요 없다
- 해당 애플리케이션에서만 이용한다
- 한 번만 사용하는 단순한 처리
예를 들어,
게임 내의 랭킹 버튼을 누르면 자신의 순위가 표시된다
라는 기능은 평범하게 게임 애플리케이션에서 랭킹 API를 호출하면 된다.
반면,
상위 플레이어와 초보자의 행동 데이터를 비교하여 초보자가 이탈하는 원인을 설명해줘
라는 의뢰에서는 AI가 여러 데이터 취득 수단을 생각하고 선택해주기 때문에 MCP가 도움이 된다.
MCP가 공통 접속 규격이 되어 있기 때문이다.
MCP 대응 AI 애플리케이션은 접속한 MCP 서버에 이용 가능한 도구를 질의할 수 있도록 되어 있는 듯하다. (JSON 같은 방식?)
{
"name": "get_player_ranking",
"description": "지정 기간의 플레이어 랭킹을 가져옵니다",
...
다양한 AI 애플리케이션이 접속 가능
Codex ─────────┐
사내 AI ────────┼─ MCP ─→ 자작 MCP 서버 ─→ 외부 API
다른 AI 앱 ──┘
특정 AI 애플리케이션 전용으로 API 연동을 매번 구현할 필요가 없어진다.
예를 들어, AI가 다음 작업을 자동화할 수 있게 되었다고 가정하면
- OpenAPI 사양 읽기
- 도구 이름 및 설명문 생성
- 입력 스키마(Schema) 생성
- MCP 서버 코드 생성
- API 에러 대응
다음과 같은 문제는 남는다.
- 어떤 시스템에 대한 접속을 허용할 것인가
- 인증 정보를 어디서 관리할 것인가
- 읽기와 업데이트 중 어느 쪽을 허용할 것인가
- 삭제나 송금 전에 승인을 요청할 것인가
- 누가 언제 무엇을 실행했는지 기록할 것인가
- 실제 통신을 어떤 프로세스가 실행할 것인가
다만, AI에 의해 MCP 서버가 자동 생성되어 사용자가 존재를 의식하지 않게 될 가능성은 있다...고 생각한다.
MCP의 본질적인 가치는,
AI와 외부 시스템 사이에 필요한 설명·실행·인증·권한 제어를 공통화하는 것
그리고 MCP를 통해 인간의 의뢰가 수단(Means) 수준에서 목적(Goal) 수준으로 변한다.
수단 수준:
"매출 API와 유지율 API를 호출하여 전월과 비교해줘"
목적 수준:
...
다음 회차에는 MCP 구현 사례에 대해 알아보고자 합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기