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
728x90

MCP란 무엇인가? LLM Agent 동작 흐름으로 이해하는 Model Context Protocol

최근 AI 개발 분야에서 가장 많이 회자되는 키워드 중 하나가 LLM Agent입니다.
ChatGPT, Claude 같은 LLM(Large Language Model)이 단발성 질의응답에 주로 쓰였다면, 이제는 도구를 스스로 호출하고 복잡한 작업을 계획-실행-관찰 루프(Plan-Execute-Observe Loop)로 수행하는 LLM Agent가 새로운 트렌드로 떠오르고 있죠.

그런데 이렇게 복잡해진 에이전트 개발 생태계에 새로운 표준을 제안한 것이 바로 **MCP (Model Context Protocol)**입니다.

오늘은 LLM과 LLM Agent의 차이를 간단히 비교하고, MCP가 어떤 구조와 동작 원리로 작동하는지 살펴보겠습니다.


✅ LLM vs LLM Agent — 무엇이 다를까?

먼저 아래 표를 보면서 간단히 정리해 볼게요.

항목LLMLLM Agent
주요 역할 단발성 언어 작업 (요약, 번역) 계획-실행-관찰 루프로 복잡한 태스크 수행
Memory 없음 있음 (대화 기록, 작업 히스토리 기억)
Tool 사용 불가능 가능 (API, 계산, DB, 웹검색 등)
Planner 없음 있음 (도구를 언제, 어떻게 쓸지 판단)
실행 방식 정적 응답 (입력 → 출력) 동적 행동 (입력 → 툴 호출 → 결과 해석 → 반복)
유연성 낮음 높음 (실시간 검색, 계산, API 활용)
지속적 작업 어려움 가능 (장기 과제, 다단계 플로우)
 

예를 들어 사용자가 “오늘 서울 날씨 알려줘”라고 물었을 때,

  • LLM은 기존에 학습한 지식으로 “오늘 서울은 맑고 기온은 26도”라고 대답하지만,
  • LLM Agent는 실제 날씨 API를 호출해 최신 데이터를 가져와서 답변합니다.

✅ MCP란 무엇인가?

**MCP (Model Context Protocol)**는 LLM Agent 개발을 위한 표준 프로토콜입니다.

  • Claude LLM을 제공하는 Anthropic이 주도적으로 제안
  • AI 앱 개발 생태계의 USB-C 포트 역할
    • USB-C가 여러 장치를 표준 방식으로 연결하듯,
    • MCP는 다양한 데이터 소스, 도구, 외부 리소스를 LLM과 연결하는 표준화된 방법을 제공

기존 Agent 프레임워크들이 제각각이던 방식을 통합하고자 등장한 것이 바로 MCP예요.


✅ MCP의 기본 구조

MCP는 크게 Host, Client, Server 세 가지로 이루어져 있습니다.

  • Host
    • 전체 Agent를 실행하고 관리
    • 여러 Client와 연결되어, 작업을 분배하거나 통제
  • Client
    • 실제 LLM 모델 또는 특정 기능(API 호출, DB 쿼리 등)을 실행
    • Host의 요청을 받아 실행 후 결과 반환
  • Server
    • MCP 메시지를 송수신하는 실제 서버
    • JSON-RPC 기반으로 통신

이렇게 역할을 나누어 MCP는 다음과 같은 흐름으로 작동합니다:

  1. 사용자가 “서울 날씨 알려줘”라고 Host에 요청
  2. Host는 해당 요청을 “WeatherAPI Client”에 전달
  3. Client가 실제 API 호출 → 결과를 JSON 형태로 응답
  4. Host가 응답을 정리해 사용자에게 전달

✅ MCP의 장점과 한계

장점

  • 여러 Agent 프레임워크를 하나의 표준으로 통합 가능
  • 개발자들이 공통 규격으로 플러그인 개발 가능
  • Tool 호출, Context 관리 등을 효율적으로 처리

한계

  • 아직 초기 표준 → 생태계가 완전히 자리잡지 않음
  • 벤더별 커스텀 규격이 여전히 존재
  • 속도 및 비용 이슈 (API 호출 많아질수록 비용 증가)

하지만 LLM Agent 시대가 본격화되면서, MCP가 “AI의 USB-C”로 자리 잡을 가능성은 충분히 큽니다.


✅ MCP SDK

MCP를 직접 다뤄보려면 Anthropic이나 오픈소스 커뮤니티에서 제공하는 MCP SDK를 활용할 수 있습니다.

  • JSON-RPC 기반으로 MCP 메시지를 주고받음
  • Node.js, Python 등 여러 언어 SDK가 준비 중
  • 커스텀 Client 개발 가능 (예: 크롤러, DB 쿼리, 특정 API 호출 등)

추후 더 많은 예제 코드와 함께 MCP SDK 활용법도 다뤄보겠습니다!


LLM Agent 시대에는 단순히 대답만 하는 모델로는 부족합니다.
여러 도구를 호출하고, 데이터를 가공하며, 더 유연하게 동작할 수 있어야 하죠.

MCP는 이 흐름을 뒷받침할 중요한 표준 프로토콜입니다.
AI와 개발이 더욱 긴밀하게 연결될 미래를 기대해 봅니다. 🚀

혹시 MCP나 LLM Agent 관련해 더 다뤄보고 싶은 주제가 있다면 댓글로 알려 주세요!

728x90
728x90

AI 증강 개발(AI-Augmented Development)이란 무엇인가요?

최근 개발 트렌드에서 빼놓을 수 없는 키워드가 바로 AI 증강 개발입니다.
이는 개발자와 AI가 협업하여 생산성과 코드 품질을 높이는 방식을 의미합니다.
즉, AI가 개발자를 대체하는 것이 아니라, 개발자가 더 창의적이고 고차원적인 문제 해결에 집중할 수 있도록 개발 과정을 보조해 주는 것이 핵심이에요.


AI 증강 개발의 주요 기능

1. 코드 생성 및 완성

  • AI가 문맥을 이해해 적절한 코드를 제안
  • 보일러플레이트 코드 자동 생성

2. 코드 리뷰 및 품질 향상

  • 버그, 보안 취약점, 코드 스타일 검사
  • 성능 개선 포인트 제안

3. 문서화 지원

  • 주석 생성, API 문서 작성, 기술 문서 초안 작성

4. 디버깅 지원

  • 에러 원인 분석, 해결책 제시, 로그 분석

5. 지식 관리

  • 코드베이스 이해 돕기
  • 관련 문서 및 자료 추천
  • 팀 내 지식 공유 촉진

Cursor AI Notepad로 AI 증강 개발 가속화하기

Cursor AI가 제공하는 Notepad는 AI 증강 개발을 한층 효율적으로 만드는 도구예요.
Notepad는 Composer와 채팅 사이에서 컨텍스트를 공유하는 메모장 같은 존재입니다.

특히 개발자들이 자주 참조하는 규칙, 코드 템플릿, 문서 등을 한 곳에 정리해 두고 @ 멘션으로 불러올 수 있는 점이 매우 강력합니다.


Notepad의 활용 사례

동적 보일러플레이트 생성
→ API 핸들러, 컴포넌트 템플릿, 서비스 생성 규칙 등을 저장

아키텍처 문서화
→ 프론트/백엔드 구조, 데이터 모델 설계, 시스템 아키텍처 가이드라인 정리

코딩 가이드라인
→ 코딩 컨벤션, 네이밍 규칙, 커밋 메시지 규칙 등 공유

팀 규칙 관리
→ 코드 리뷰 절차, 배포 프로세스, 릴리즈 노트 규칙 정리


역할 기반 개발 프로세스

AI 증강 개발의 효과를 극대화하려면 역할 정의가 중요합니다.
아래는 Cursor AI Notepad의 문서 구조와 함께 정리된 대표 역할들입니다.

📝 기획자 (planner.md)

  • 사용자 중심 기획
  • 정보 구조, 기능 명세, 사용자 시나리오 설계
  • PRD(제품 요구사항 정의서), 사용자 여정도, MVP Scope 작성

🖥️ 프론트엔드 개발자 (frontend-ui.md)

  • UX/UI 중심 개발
  • 반응형, 애니메이션, 디자인 시스템 구현
  • 성능 최적화, 컴포넌트 재사용성 극대화

🛠️ 풀스택 개발자 (fullstack.md)

  • Next.js, TypeScript, Notion API 기반 개발
  • AI 도구를 활용한 개발 최적화
  • 코드 품질 관리, 생산성 향상

🌐 번역가

  • 공식 문서 번역
  • 신속한 지식 습득 지원

각 역할별로 마크다운 문서로 정리해두면, 팀 내 지식 공유와 커뮤니케이션이 훨씬 원활해집니다.


PRD와 SRS, 그리고 MVP

AI 증강 개발은 문서화도 매우 중요합니다.

  • PRD (Product Requirements Document)
    → 제품이 무엇인지, 누구를 위한 것인지, 왜 필요한지를 비즈니스 관점에서 설명
  • SRS (Software Requirements Specification)
    → 제품을 어떻게 만들 것인지, 아키텍처와 기술 명세를 기술 관점에서 설명
  • MVP (Minimum Viable Product)
    → 최소한의 기능만 담은 초기 제품으로, 핵심 가치를 검증하는 것이 목표

이러한 문서들이 Cursor AI Notepad에 정리되어 있으면 팀 전체의 이해도와 속도가 크게 높아집니다.


AI가 개발을 대체하는 시대는 아닙니다.
다만, AI는 개발자의 가장 든든한 비서이자 동료가 될 수 있습니다.

앞으로 AI와 함께 더 똑똑하고 빠르게 개발해보세요! 🚀

혹시 이 내용 중 더 자세히 알고 싶은 주제 있으신가요? 댓글로 알려주세요!

728x90

+ Recent posts