MCP로 시작하는 AI 자동화: 초보자를 위한 기본 가이드
AI 자동화는 반복적인 작업을 줄이고 생산성을 높이는 데 큰 도움이 됩니다. 하지만 AI가 외부 도구(예: 데이터베이스, 파일 시스템, GitHub)와 상호작용하려면 복잡한 설정이 필요할 때가 많죠. 여기서 **MCP(Model Context Protocol)**가 등장합니다. MCP는 AI와 도구를 연결하는 "USB-C 포트" 같은 표준화된 프로토콜로, 복잡한 통합 과정을 간소화해줍니다.
MCP란 무엇인가요?
MCP는 Anthropic에서 개발한 오픈소스 프로토콜로, AI 에이전트가 외부 도구나 데이터 소스와 실시간으로 상호작용할 수 있게 해줍니다. 예를 들어, AI가 로컬 파일을 읽거나 GitHub에 PR을 생성하거나 데이터베이스를 쿼리하는 작업을 MCP를 통해 쉽게 처리할 수 있습니다. MCP의 핵심 구성 요소는 다음과 같습니다:
- MCP 클라이언트/호스트: AI가 실행되는 환경(예: IDE, Claude Desktop).
- MCP 서버: 외부 도구나 데이터 소스에 접근하는 경량 서버.
- 프로토콜: 클라이언트와 서버 간의 표준화된 통신 방식.
MCP의 장점은 표준화와 확장성입니다. 한 번 MCP 서버를 설정하면 다양한 AI 모델에서 재사용할 수 있어 개발 시간이 크게 줄어듭니다.
초간단 MCP 자동화 예제: 파일 읽기
이제 실제로 MCP를 사용해 AI가 로컬 파일을 읽는 자동화를 구현해보겠습니다. 이 예제는 Python을 사용하며, MCP 서버를 통해 파일 시스템에 접근합니다. 이 코드는 간단하지만 MCP의 기본 작동 방식을 이해하는 데 딱 좋습니다.
준비물
- Python 3.10+: Python이 설치되어 있어야 합니다.
- MCP 서버: 파일 시스템에 접근하는 MCP 서버를 사용합니다.
- AI 클라이언트: 예제에서는 간단한 Python 스크립트를 사용하지만, Cursor나 Claude Desktop 같은 도구에서도 동작합니다.
단계별 설명
환경 설정
먼저 Python 가상 환경을 설정하고 필요한 패키지를 설치합니다. 터미널에서 다음 명령어를 실행하세요:
python -m venv venv
source venv/bin/activate # Windows의 경우: venv\Scripts\activate
pip install modelcontextprotocol
modelcontextprotocol은 MCP 서버와 통신하기 위한 기본 패키지입니다.
MCP 서버 실행
파일 시스템에 접근하는 MCP 서버를 실행합니다. 아래 명령어는 로컬 디렉토리(~/Documents)에 접근 가능한 MCP 서버를 시작합니다:
npx @modelcontextprotocol/server-filesystem ~/Documents
이 명령어를 실행하면 MCP 서버가 시작되고, AI가 지정된 디렉토리의 파일을 읽거나 쓸 수 있게 됩니다.
AI 자동화 코드 작성
이제 AI가 파일을 읽도록 요청하는 간단한 Python 스크립트를 작성합니다. 이 스크립트는 MCP 서버와 통신해 특정 파일의 내용을 가져옵니다.
import asyncio
from mcp import MCPClient, MCPTool
async def main():
# MCP 클라이언트 초기화
client = MCPClient()
# 파일 시스템 MCP 서버에 연결
server = await client.connect("filesystem", command=["npx", "@modelcontextprotocol/server-filesystem", "~/Documents"])
# 파일 읽기 도구 호출
tool = MCPTool(
name="read_file",
description="Reads the content of a specified file",
parameters={"path": {"type": "string", "description": "Path to the file"}}
)
# 특정 파일 읽기 요청
result = await server.execute_tool(tool, {"path": "~/Documents/sample.txt"})
print("파일 내용:", result)
if __name__ == "__main__":
asyncio.run(main())
코드 설명:
- MCPClient: MCP 서버와 통신하는 클라이언트를 초기화합니다.
- connect: 파일 시스템 MCP 서버에 연결합니다.
- MCPTool: AI가 사용할 도구(여기서는 파일 읽기)를 정의합니다.
- execute_tool: 지정된 파일(sample.txt)의 내용을 읽도록 요청합니다.
실행 및 테스트
~/Documents 폴더에 sample.txt 파일을 만들고, 간단한 텍스트(예: "Hello, MCP!")를 입력합니다. 그런 다음 위 Python 스크립트를 실행하세요:
python mcp_file_reader.py
실행하면 AI가 sample.txt 파일의 내용을 읽어 출력합니다. 예를 들어:
파일 내용: Hello, MCP!
코드 동작 원리
이 예제에서 MCP는 다음과 같은 흐름으로 작동합니다:
- 클라이언트 요청: Python 스크립트(MCP 클라이언트)가 파일 읽기 요청을 보냅니다.
- 서버 처리: MCP 파일 시스템 서버가 요청을 받아 로컬 파일을 읽습니다.
- 결과 반환: 읽은 파일 내용이 클라이언트로 돌아와 출력됩니다.
이 과정은 MCP의 표준화된 통신 덕분에 간단하고 확장 가능합니다. 같은 방식으로 데이터베이스 쿼리, GitHub API 호출 등 더 복잡한 작업도 처리할 수 있습니다.
실행 방법 요약:
- Python과 modelcontextprotocol 패키지를 설치하세요.
- MCP 파일 시스템 서버를 실행하세요: npx @modelcontextprotocol/server-filesystem ~/Documents
- 제공된 mcp_file_reader.py 코드를 실행해 파일 내용을 읽어보세요.