🔹 MCP란 무엇인가?
AI가 더 똑똑해지려면 단순한 훈련 데이터에 의존하지 않고, 외부 데이터를 안전하게 가져와야 합니다. 여기서 등장하는 것이 **MCP(Model Context Protocol)**입니다.
MCP는 대형 언어 모델(LLM)이 외부 데이터 및 기능과 상호작용할 수 있도록 도와주는 표준화된 프로토콜입니다. 쉽게 말해, AI를 위한 USB 포트와 같습니다.
✔️ MCP의 주요 역할
✅ LLM이 파일, 데이터베이스, API, 시스템 정보 등에 접근 가능
✅ 사용자 허가를 통해 안전한 데이터 연동
✅ 다양한 LLM에서 공통적으로 사용할 수 있는 표준 인터페이스 제공
기존에는 AI가 사전에 학습된 정보에만 의존해야 했지만, MCP를 사용하면 실시간으로 최신 데이터를 가져와 활용할 수 있습니다.
🔹 MCP 리소스(Resources)란?
MCP에서 **리소스(Resource)**는 AI가 읽을 수 있도록 제공하는 외부 데이터를 의미합니다.
✔️ MCP 리소스의 예시
📂 파일 리소스 → file://example.txt (텍스트 파일 내용 읽기)
📊 데이터베이스 리소스 → database://users/123 (사용자 정보 가져오기)
🌐 API 응답 리소스 → api://weather/today (날씨 정보 불러오기)
🔧 시스템 정보 리소스 → system://cpu/usage (CPU 사용량 조회)
각 리소스는 고유한 URI, 이름, 설명, MIME 타입, 데이터 내용을 포함합니다.
✔️ 왜 MCP 리소스를 사용해야 할까?
✅ AI가 최신 데이터를 확인하고 응답 가능
✅ 정해진 형식으로 표준화된 데이터 제공
✅ 데이터 접근을 제한하여 보안 강화
예를 들어, 고객 피드백 데이터를 AI가 분석하려면 customers://feedback/recent와 같은 MCP 리소스를 설정하면 AI가 실시간으로 데이터를 읽을 수 있습니다.
🔹 MCP 서버 구축하기
이제 직접 MCP 서버를 만들어보겠습니다.
1️⃣ 개발 환경 설정
먼저 프로젝트 폴더를 생성하고 MCP SDK를 설치합니다.
mkdir hello-mcp
cd hello-mcp
npm init -y
npm install @modelcontextprotocol/sdk
npm install -D typescript @types/node
이제 **TypeScript 설정 파일(tsconfig.json)**을 생성합니다.
{
"compilerOptions": {
"target": "ES2022",
"module": "Node16",
"moduleResolution": "Node16",
"outDir": "./build",
"rootDir": "./src",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
},
"include": ["src/**/*"]
}
2️⃣ MCP 서버 코드 작성
이제 MCP 서버를 구현하는 코드를 작성하겠습니다.
📌 📂 src/index.ts 파일 생성 후 아래 코드 추가
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import {
ListResourcesRequestSchema,
ReadResourceRequestSchema,
} from "@modelcontextprotocol/sdk/types.js";
// MCP 서버 생성
const server = new Server(
{
name: "hello-mcp",
version: "1.0.0",
},
{
capabilities: {
resources: {}, // 리소스 기능 활성화
},
}
);
// MCP 리소스 목록 설정
server.setRequestHandler(ListResourcesRequestSchema, async () => {
return {
resources: [
{
uri: "hello://world",
name: "Hello World Message",
description: "간단한 인사 메시지",
mimeType: "text/plain",
},
],
};
});
// 리소스 내용 제공
server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
if (request.params.uri === "hello://world") {
return {
contents: [
{
uri: "hello://world",
text: "Hello, World! This is my first MCP resource.",
},
],
};
}
throw new Error("Resource not found");
});
// 서버 시작
const transport = new StdioServerTransport();
await server.connect(transport);
console.info('{"jsonrpc": "2.0", "method": "log", "params": { "message": "Server running..." }}');
이제 이 서버를 실행하면 hello://world URI를 가진 리소스를 제공하는 MCP 서버가 동작하게 됩니다.
🔹 MCP 서버 실행 및 테스트
1️⃣ MCP 서버 실행
아래 명령어를 실행하면 MCP 서버가 시작됩니다.
npx tsc
node build/index.js
2️⃣ Claude Desktop에서 테스트하기
MCP 서버가 제대로 동작하는지 확인하려면 Claude Desktop을 활용할 수 있습니다.
✅ 1. Claude Desktop 설정 파일(claude_desktop_config.json) 수정
{
"mcpServers": {
"hello-mcp": {
"command": "node",
"args": ["/절대경로/hello-mcp/build/index.js"]
}
}
}
✅ 2. Claude를 재시작한 후 MCP 리소스를 선택
✅ 3. "Hello World Message" 리소스가 정상적으로 표시되는지 확인
3️⃣ MCP Inspector로 테스트하기
MCP Inspector를 사용하면 MCP 서버의 모든 기능을 테스트할 수 있습니다.
아래 명령어로 실행합니다.
npx @modelcontextprotocol/inspector node build/index.js
✅ "List Resources" 버튼 클릭 → "Hello World Message" 리소스 확인
✅ 리소스를 클릭하면 "Hello, World!" 메시지 출력 확인
이제 MCP 서버가 정상적으로 동작하는 것을 확인할 수 있습니다! 🚀
이번 글에서는 MCP(Model Context Protocol) 개념부터 직접 MCP 서버를 구축하는 방법까지 배웠습니다.
✔️ 정리하면?
✅ MCP는 LLM이 외부 데이터와 상호작용할 수 있도록 도와주는 표준 프로토콜
✅ MCP 리소스를 활용하면 파일, API, 데이터베이스 등의 데이터를 AI가 안전하게 접근 가능
✅ 직접 MCP 서버를 만들고, Claude Desktop과 MCP Inspector를 활용해 테스트하는 방법까지 익힘
🚀 MCP의 미래는?
앞으로 MCP를 활용하면 AI가 실시간 데이터를 활용하는 더욱 강력한 애플리케이션을 개발할 수 있습니다.
기업 내부 데이터, 실시간 로그 분석, 고객 피드백 수집 등 AI 기반 자동화의 핵심 기술로 자리 잡을 것입니다.
MCP를 활용하여 여러분의 AI 시스템을 한 단계 업그레이드해 보세요! 😊✨

'인공지능' 카테고리의 다른 글
MCP 서버 구축: 프롬프트 추가하기 (0) | 2025.04.02 |
---|---|
MCP 서버 확장하기: 리소스 템플릿(Resource Templates) 활용법 (0) | 2025.04.02 |
Gemini 2.5 Pro vs Claude 3.7 Sonnet: AI 코딩 모델 최강자는? (0) | 2025.04.01 |
최고의 AI 에이전트 프레임워크는? LangGraph, OpenAI Agents SDK, CrewAI 등 7가지 비교 분석 (0) | 2025.04.01 |
바이브 코딩(Vibe Coding): AI와 함께하는 새로운 개발 패러다임 (0) | 2025.04.01 |