안녕하세요,
요즘 AI 기술이 눈부시게 발전하면서 이제는 누구나 손쉽게 AI를 접할 수 있는 시대가 되었습니다. 그런데 만약, 직접 나만의 AI를 만들 수 있다면 어떨까요? 예전에는 상상 속에만 존재하던 ‘나만의 AI 에이전트’가 이제는 현실로 다가오고 있습니다. 특히 최근 주목받고 있는 MCP(Model Context Protocol)는 이러한 가능성을 한층 더 확장시켜 주는 강력한 도구로, 개인화된 AI 에이전트를 구현할 수 있는 기반을 제공합니다.
이번 포스팅에서는 MCP를 활용해 나만의 AI 에이전트를 만드는 방법에 대해 간단히 소개해 드리겠습니다.
MCP (Model Context Protocol) 서버란
MCP 서버는 Claude 같은 AI가 인터넷이나 다양한 프로그램과 연결되어 실제 작업을 수행할 수 있도록 도와주는 중간 연결자 역할의 서버입니다. 여기서 말하는 서버란, 쉽게 말해 AI가 어떤 요청을 보냈을 때 그 요청을 받아서 처리해주는 컴퓨터라고 생각하면 됩니다. 우리가 웹사이트에 접속하면 화면이 뜨는 것도, 사실은 서버가 그 요청을 처리해 보여주는 방식과 동일한 개념입니다.
MCP 서버는 이러한 통신 과정을 일정한 규칙(Protocol)에 따라 처리하며, 개발자는 자신의 목적에 맞게 이 서버를 자유롭게 수정하거나 확장할 수 있습니다. 즉, MCP 서버는 AI가 실제 세계와 연결되어 외부 도구를 활용하고 작업을 자동으로 수행하는 실행형 AI 에이전트로 발전하도록 돕는 핵심 기술입니다.
- MCP 기본 내용 정리 : [Marcus' Story] - 클로드에서 공개한 MCP(Model Context Protocol), 그 개념과 특징
- Athropic MCP 소개 : https://modelcontextprotocol.io/introduction
Introduction - Model Context Protocol
Understand how MCP connects clients, servers, and LLMs
modelcontextprotocol.io
주요 특징
MCP 서버는 Claude와 같은 AI 모델이 외부 도구(웹, API, DB 등)와 연결되어 실제 작업을 수행할 수 있게 도와주는 핵심 구성 요소입니다. 주요 특징은 다음과 같습니다.
- 외부 도구와의 연동 용이: 다양한 API, 데이터베이스, 사용자 정의 도구 등과 쉽게 연결 가능하며, 표준화된 통신 방식과 유연한 확장성을 제공합니다.
- 실시간 상호작용: Claude가 사용자 요청을 받으면, MCP 서버를 통해 외부 정보를 실시간으로 검색하고 즉시 반응할 수 있습니다.
- 자연어 기반 인터페이스: 사용자는 복잡한 명령어 없이 자연어로 요청하고, Claude는 이를 실행 가능한 형태로 MCP 서버에 전달합니다.
- 보안과 권한 관리: 민감한 데이터나 기능에 대한 접근을 안전하게 제어할 수 있도록 인증과 권한 설정이 가능합니다.
- 확장성과 안정성: 여러 요청을 안정적으로 처리할 수 있는 구조이며, 장애나 오류 발생 시 복구 및 유지 관리를 고려한 설계가 가능합니다.
- 로깅 및 모니터링 기능: 요청 기록, 실행 결과, 시스템 상태 등을 추적하고 분석할 수 있어 안정적인 운영과 감사가 가능합니다.
작동 흐름
사용자가 Claude에게 “오늘 날씨 알려줘”라고 요청하면, Claude는 그 정보를 직접 알 수 없기 때문에 MCP 서버에 요청을 전달합니다. MCP 서버는 실제로 인터넷에서 날씨 정보를 검색하거나 외부 API를 호출해 결과를 받아오고, 이 데이터를 다시 Claude에게 전달합니다. Claude는 전달받은 데이터를 바탕으로 자연어 형태의 응답을 생성해 사용자에게 보여줍니다. 이 과정을 통해 Claude는 단순히 글을 생성하는 AI를 넘어서, 웹 검색, API 호출, 파일 열기, 데이터베이스 접근 등 실제 작업을 처리하는 도구로 활용될 수 있게 됩니다.

MCP 서버 구성
MCP 기능을 활용하려면 먼저 MCP 서버를 직접 구성하는 과정이 필요합니다. 이는 Claude와 외부 도구를 연결해주는 중요한 기반이 되며, 한 번만 잘 설정해두면 이후 다양한 기능을 쉽게 확장할 수 있습니다. 아래에는 MCP 서버를 구성하기 위한 기본적인 절차를 간단히 정리해보았으며, 각 단계에 대한 자세한 설치 방법과 실습 내용은 아래에서 자세히 알아보겠습니다.
기본적인 구성
- uv 설치 및 가상 환경 생성 (Python 환경으로 MCP 서버 구성, Python 패키지 및 가상환경 관리를 위한 도구)
- MCP 서버 코드 작성
- Claude 환경 설정
- MCP 서버 실행
사전 준비 사항
이번 포스팅에서는 데스크톱용 Claude를 활용하여 MCP 서버를 구성하는 방법을 소개할 예정입니다. 따라서 먼저 데스크톱 Claude 프로그램을 설치해야 합니다. 아래에 안내된 Anthropic 공식 페이지에서 사용 중인 운영체제에 맞는 버전을 다운로드하여 설치해 주세요.
- Anthropic MCP 소개 : https://claude.ai/download

1. 실행 환경
- 운영체제 : Windows 11
- uv : 0.6.14
- python : 3.12.4
2. MCP 서버 구성
MCP 서버를 통해 구현할 기능은 간단한 예시로, Claude AI가 네이버를 통해 특정 지역의 날씨 정보를 확인하는 기능을 만들어 보겠습니다. 이 기능은 비교적 단순한 코드로 구현되며, 네이버 검색 결과 페이지를 크롤링하여 필요한 정보를 가져오는 방식으로 동작합니다. 단, 이는 공식 API가 아닌 HTML 구조를 기반으로 한 비공식 크롤링 방식이기 때문에, 네이버 웹 페이지의 구조가 변경될 경우 코드 수정이 필요할 수 있습니다.
1) uv 설치
MCP 서버를 Python 환경에서 구성하려면, 패키지 및 가상환경 관리를 위한 도구인 "uv"를 먼저 설치해야 합니다. uv는 pip과 venv를 대체하는 빠르고 효율적인 Python 패키지 관리 도구입니다. 아래 명령어를 사용해 uv를 설치해줍니다.
- uv 깃허브 : https://github.com/astral-sh/uv
# Windows PowerShell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
2) 프로젝트 생성
MCP 서버를 개발하기 위해 먼저 코드와 설정 파일을 체계적으로 관리할 수 있는 프로젝트 구조를 만들어야 합니다. 이 단계에서는 MCP 서버 코드를 저장할 폴더를 생성하고, uv를 이용해 Python 프로젝트로 초기화한 뒤, 필요한 패키지를 설치하고 서버 코드를 작성하는 흐름을 차례대로 진행하게 됩니다. 다음 단계부터 폴더 생성, 환경 설정, 코드 작성 순서로 자세히 살펴보겠습니다.
① 폴더 생성 및 위치 이동
먼저 MCP 서버를 위한 새 폴더를 원하는 위치에 만들고, 이를 uv로 초기화하여 프로젝트 환경을 구성해보겠습니다. 이렇게 하면 패키지 관리와 설정이 한결 수월해집니다. 그리고 아래 명령어를 사용하여 생성한 폴더 위치로 이동해줍니다.
# Windows PowerShell
cd /path/to/MCP # 1. 생성한 폴더 위치로 이동 (예: D:\MCP-server)
② uv 프로젝트 초기화 및 패키지 설치
아래 명령어를 실행하면 uv 프로젝트 초기화, 가상환경 생성 및 필요한 패키지가 설치되며, 필요한 설정 파일과 디렉토리 구조를 자동으로 만들어줍니다. 이를 통해 이후의 패키지 설치와 코드 관리가 훨씬 수월해집니다.
# Windows PowerShell
uv init weather # 2. uv 프로젝트 초기화 → 'weather' 폴더 생성됨
cd weather # 3. 해당 폴더로 이동
uv venv # 4. .venv 디렉토리에 가상환경 생성됨
.venv\Scripts\activate # 5. 가상환경 활성화
uv add mcp[cli] httpx beautifulsoup4 requests # 6. 필요한 패키지 설치
new-item weather.py # 7. PowerShell에서 Python 코드 작성용 빈 파일 생성
③ MCP 서버 코드 작성
이제 Claude AI가 네이버 검색 결과를 바탕으로 날씨 정보를 수집할 수 있도록 MCP 서버 코드를 작성해보겠습니다. 아래 코드를 "weather.py" 파일에 작성한 뒤 저장하면 됩니다.
# Python
from typing import Any
import requests
from bs4 import BeautifulSoup
from mcp.server.fastmcp import FastMCP
import sys
mcp = FastMCP("weather")
# 네이버 날씨 정보 가져오기 도구
@mcp.tool()
def get_naver_weather(region: str) -> str:
"""
네이버 날씨에서 특정 지역의 날씨 정보를 가져옵니다.
Args:
region: 조회할 지역명 (예: 서울, 부산)
"""
try:
search_url = f"https://search.naver.com/search.naver?query={region}+날씨"
headers = {
"User-Agent": "Mozilla/5.0"
}
response = requests.get(search_url, headers=headers)
soup = BeautifulSoup(response.text, "html.parser")
temperature = soup.select_one(".temperature_text > strong")
status = soup.select_one(".weather_main")
if not temperature or not status:
return f"[{region}]의 날씨 정보를 불러올 수 없습니다. 지역명을 확인해 주세요."
temp_text = temperature.get_text(strip=True)
status_text = status.get_text(strip=True)
return f"{region}의 현재 날씨는 '{status_text}'이며, 기온은 {temp_text}입니다."
except Exception as e:
return f"[오류] 날씨 정보를 가져오는 중 문제가 발생했습니다: {str(e)}"
if __name__ == "__main__":
print("🔧 MCP 서버 실행 시작됨", file=sys.stderr)
mcp.run(transport="stdio")
④ Claude 환경 설정
이제 MCP 서버 코드를 작성했으면, 데스크톱 Claude에서 해당 코드의 위치를 알려줘야합니다. 아래의 절차에 따라 진행해줍니다.
- 데스크톱 Claude 실행 (사전 준비 사항)
- 왼쪽 상단의 ≡ (메뉴) 버튼 클릭 → 파일 → 설정 메뉴로 이동 (아래 왼쪽 이미지 참고)
- 개발자 모드 버튼 클릭 → 설정 편집 버튼 클릭 (아래 가운데 이미지 참고)
- 열리는 폴더에서 "claude_desktop_config.json" 파일을 찾아 수정 (아래 오른쪽 이미지 참고)
[claude_desktop_config.json 코드]
{
"mcpServers": {
"weather": {
"command": "uv",
"args": [
"--directory",
"D:\\Programs\\MCP\\mcp-test-uv\\weather", <- 위에서 생성한 weather 폴더 경로 지정
"run",
"weather.py"
]
}
}
}



3. MCP 서버 실행
이제 앞의 과정을 모두 완료했다면, 데스크톱 Claude를 한 번 종료한 뒤 다시 실행해 주세요. 정상적으로 설정이 적용되었다면, 아래 이미지처럼 화면에 "MCP Tools" 버튼이 표시됩니다. 이 버튼을 클릭하면, 현재 등록된 MCP 서버의 도구 목록과 각 도구의 기능 설명을 확인할 수 있습니다. 만약 버튼이 보이지 않는다면, 설정 파일 내 MCP 서버의 경로 또는 위치 정보가 잘못 입력된 경우일 수 있습니다. 이 경우, 설정을 다시 확인하고 정확한 경로로 수정해야 합니다.


이제 Claude에게 간단히 “서울의 날씨”를 물어보며 MCP 도구를 테스트해보겠습니다. 도구를 처음 사용할 때 Claude는 사용자에게 해당 MCP 도구를 사용할지 여부를 먼저 확인합니다. 사용자가 허용하지 않으면 도구는 실행되지 않으며, 허용할 경우 Claude가 MCP 도구를 활용해 날씨 정보를 가져와 답변을 제공합니다.



Claude는 사용자의 질문을 분석한 뒤, 상황에 맞는 MCP 도구를 자동으로 선택해 실행하고, 그 결과를 바탕으로 자연스러운 답변을 생성합니다. 즉, 단순히 “날씨가 궁금해요”처럼 직접적인 요청이 아니더라도, 질문 속에 간접적인 관련성이 있다면 해당 MCP 도구를 활용해 보다 풍부하고 정확한 응답을 제공합니다.
예를 들어 오른쪽 이미지에서처럼, 사용자가 “오늘 부산에서 외출 옷차림 추천해줘.”라고 질문하면, Claude는 자동으로 부산의 날씨 정보를 확인한 뒤, 그에 맞는 옷차림을 제안해줍니다. 이처럼 MCP 도구를 다양하게 확장하면, Claude는 단순한 텍스트 생성에 그치지 않고, 실제 데이터를 기반으로 한 정밀하고 실용적인 답변을 제공할 수 있습니다.
이번 포스팅에서는 간단한 예시로, 네이버 날씨 정보를 크롤링하여 가져오는 MCP 서버를 직접 구현해보았습니다. 비록 단순한 기능부터 시작했지만, Claude AI와 외부 도구를 연결할 수 있는 MCP 구조는 무한한 확장 가능성을 지니고 있습니다.
예를 들어, 개인 이메일 정보를 MCP 서버와 연동하면 Claude가 메일을 자동으로 요약하거나, 상황에 맞는 답변을 생성해주는 기능도 구현할 수 있습니다. 또한 특정 발신자와의 메일 내역을 선별해 정리하거나, 업무용 메일을 자동 분류하는 등의 지능형 비서 역할도 충분히 가능합니다. 결국 MCP 서버는 단순한 기능 실행을 넘어, Claude가 실시간으로 외부 세계와 연결되고 다양한 작업을 수행할 수 있는 실행형 AI 에이전트로 진화하는 핵심 기술이라고 할 수 있습니다.
최근에는 MCP 서버를 활용한 다양한 기능들이 계속해서 개발되고 있으며, 이제 개인 맞춤형 AI 비서를 직접 사용하는 시대도 머지않았다고 생각됩니다. AI가 외부 도구와 자연스럽게 연동되는 환경이 갖춰진다면, 누구나 자신만의 똑똑한 AI 에이전트를 쉽게 만들어 활용할 수 있는 시대가 열릴 것입니다.
감사합니다. 😊
'MCP' 카테고리의 다른 글
[MCP 서버] PDF 문서에서 답을 찾는 Claude AI 만들기 (0) | 2025.04.23 |
---|---|
클로드에서 공개한 MCP(Model Context Protocol), 그 개념과 특징 (1) | 2025.03.29 |