인공지능 & 데이터 사이언스/데이터분석 및 스터디
AI 개발자를 위한 MCP 실전 튜토리얼 — JSON-RPC 예제로 배우는 Agent 연결 방식
프로잉2
2025. 7. 15. 19:57
728x90
**MCP(Model Context Protocol)**는 AI Agent가 외부 도구나 리소스(API, 데이터베이스, 크롤러 등)와 표준화된 방식으로 연결되도록 돕는 프로토콜이에요.
쉽게 말해, USB-C 포트처럼 LLM을 다양한 시스템과 연결하는 통로라고 볼 수 있죠.
이번에는 MCP 스타일로 JSON-RPC 통신을 흉내 내는 간단한 Node.js 예시 코드를 작성해봤습니다.
MCP가 어떻게 Host ↔ Client 간에 메시지를 주고받는지 이해하는 데 도움이 될 거예요.
✅ MCP 스타일 JSON-RPC 예제
예제 시나리오
- 사용자가 “2 + 3 계산해줘” 요청
- Host가 MathClient에게 계산 요청
- MathClient가 계산 후 결과 반환
- Host가 사용자에게 결과 전달
1. Math Client(Server 역할)
실제로는 MCP Client이지만, 네트워크 상에서 JSON-RPC Server로 동작하는 구조
// mathClient.js
import express from "express";
import bodyParser from "body-parser";
const app = express();
app.use(bodyParser.json());
app.post("/rpc", (req, res) => {
const { method, params, id } = req.body;
console.log("요청 받음:", method, params);
if (method === "add") {
const result = params.a + params.b;
res.json({
jsonrpc: "2.0",
result,
id,
});
} else {
res.json({
jsonrpc: "2.0",
error: {
code: -32601,
message: "Method not found",
},
id,
});
}
});
app.listen(4000, () => {
console.log("Math Client (Server) running on http://localhost:4000/rpc");
});
2. Host 역할
실제 MCP Host처럼 Client에게 JSON-RPC 메시지를 보내는 코드
// host.js
import axios from "axios";
async function callMathClient() {
const payload = {
jsonrpc: "2.0",
method: "add",
params: {
a: 2,
b: 3,
},
id: 1,
};
const response = await axios.post(
"http://localhost:4000/rpc",
payload,
{ headers: { "Content-Type": "application/json" } }
);
console.log("Math Client 응답:", response.data);
}
callMathClient();
실행 순서
1. Math Client 실행
node mathClient.js
2. Host 실행
node host.js
3. 출력 결과
Math Client 응답: { jsonrpc: '2.0', result: 5, id: 1 }
✅ MCP 스타일로 이해하기
이 예제는 MCP의 작동 방식을 아주 단순화한 것이지만, 개념적으로는 똑같아요:
- 사용자 → “2+3 계산해줘”
- Host → 어떤 Client가 처리할지 판단 (Planner 역할)
- Math Client → 계산 수행
- Host → 사용자에게 결과 반환
MCP의 실제 동작
실제 MCP 환경에서는:
✅ JSON-RPC 규격 메시지 사용
✅ Tool마다 Client로 분리 → 재사용 가능
✅ Host가 Plan → Execute → Observe 루프 제어
✅ 멀티 Agent, 멀티 Tool 관리 가능
예)
- Weather API Client
- DB Query Client
- Web Browser Client
- Code Executor Client
이처럼 MCP는 LLM Agent 개발의 USB-C 포트 같은 표준 역할을 하며, AI가 더 넓은 세상과 연결될 수 있도록 돕고 있습니다. 🚀
728x90