728x90
LLM 서비스가 나오면서 MCP가 중요하다는 이야기가 많다. Kakao는 PlayMCP라는 MCP 서버 market을 운영하기도 한다. 이 MCP 어디에 쓰이며 왜 중요한 것인가?
LLM Service가 실시간 정보를 얻어오는 방법은?
사용자가 GPT에게 오늘 실시간 서울의 날씨를 물어본다면 GPT는 어떤 과정을 거쳐 답변할까?
단순하게 생각해보면 날씨 정보를 제공하는 서비스의 Rest API를 통해 날씨 정보를 얻어 답변을 할 것이다.
여기서 문제는 이런식으로 정보를 얻을 때
서비스 별 Rest API 형태가 제각각이라 커넥터 코드를 개별적으로 구현해야 하며 코드 관리가 복잡하고 번거롭다는거에요.

그래서 MCP (Model Context Protocol) 프로토콜로 통일했다
anthropic에서 이러한 복잡함을 해결하기 위해 표준화된 프로토콜을 제시했어요.
규격이 제각각인 Rest API 서버에서 정보를 얻지 않고 규격화 된 MCP Server를 통해 LLM이 데이터를 얻어오게 한다는 것이죠.

즉, MCP Server는 기 구축 된 Rest API 서버로 부터 데이터를 받아 MCP 규격으로 Wrapping 해 LLM Service에 전달하는 것이죠. 이제 Rest API 커넥터 코드 개발은 LLM Service 개발자가 아닌 MCP 개발자가 하면 되니 LLM Service는 그저 입맛에 맞는 MCP Server만 잘 선택해서 정보를 얻으면 되죠.
MCP Server 예시 코드는 아래와 같아요.
RestAPI 요청을 MCP protocol로 감싼 구조죠.
// 1. AI에게 보여줄 메뉴판(도구) 정의
server.tool(
"get_weather", // 도구 이름
"특정 도시의 현재 날씨와 온도를 가져옵니다.", // AI가 읽을 설명 (매우 중요!)
{
city: z.string().describe("날씨를 조회할 도시 이름 (예: Seoul, Tokyo)"),
},
// 2. AI가 호출했을 때 실행될 실제 로직 (웹 개발과 똑같음!)
async ({ city }) => {
// 우리가 평소에 하던 fetch나 axios 요청을 여기서 합니다.
const response = await fetch(`https://api.weather.com/${city}`);
const data = await response.json();
return {
content: [{ type: "text", text: `${city}의 온도는 ${data.temp}도입니다.` }],
};
}
);
LLM Service가 MCP 서버 사용하는 과정은?
- 사용자가 LLM Service의 Prompt 입력
- LLM Service가 MCP Server에 API List 요청
- LLM Service가 MCP API 별 Description을 읽어보며 답변에 필요한 API 판단
- MCP Server로 부터 규격화 된 Data 받음
- LLM Servie가 답변에 Data 반영하여 사용자에게 답변
NOTE
Q. LLM Serviec가 답변에 필요한 API를 잘못 판단한다면 잘못된 정보를 줄텐데?
이를 할루시네이션이라고 하며 이를 방지 하기 위해 크게 2가지 안전장치를 준비해요
1. LLM Service가 잘 판단하도록 MCP API Description을 작성하기
2. API 사용 전 LLM 사용자의 승인 과정을 거치기
728x90
'TIL > 2025' 카테고리의 다른 글
| printf("%c", 2)가 '2'가 아닌 이유 (0) | 2025.12.26 |
|---|---|
| [Error] Your branch and 'origin/feature-1' have diverged (0) | 2025.12.10 |
| Requirement yogi의 traceability (0) | 2025.12.10 |
| Hash와 Digital Signature (0) | 2025.12.09 |
| Confluence 문서 상태 관리 feat. Comala (0) | 2025.11.07 |