Python을 배워보자
MCP 구축과 활용: 커서와 파이썬을 활용한 상세 가이드
_Blue_Sky_
2025. 4. 20. 16:15
728x90
MCP란 무엇인가?
**모델 컨텍스트 프로토콜(Model Context Protocol, MCP)**는 AI 모델이 외부 데이터 소스나 도구와 표준화된 방식으로 상호작용할 수 있도록 설계된 오픈 소스 프로토콜입니다. Anthropic이 2024년 11월에 공개한 MCP는 AI가 실시간 데이터, 웹 API, 데이터베이스, 파일 시스템 등 다양한 리소스에 접근하도록 도와줍니다. 이를 통해 AI의 한계를 극복하고 더 강력하고 유연한 애플리케이션 구축이 가능해졌습니다. MCP는 마치 "AI의 USB-C 포트"처럼, 다양한 시스템과 AI를 연결하는 표준화된 통로 역할을 합니다.
이 블로그에서는 MCP를 **커서(Cursor)**와 파이썬을 활용해 구축하고 사용하는 방법을 상세히 다루며, 다양한 활용 사례를 소개합니다.
MCP 구축: 기본 개념과 준비
728x90
MCP를 구축하려면 먼저 그 구조를 이해해야 합니다. MCP는 **클라이언트(AI 모델)**와 서버(외부 데이터 소스) 간의 양방향 연결을 지원하며, HTTP 기반의 간단한 프로토콜로 동작합니다. 이를 통해 AI가 외부 리소스에 접근하거나 작업을 자동화할 수 있습니다.
1. 개발 환경 설정
MCP 서버를 구축하려면 다음 준비물이 필요합니다:
-
파이썬 3.8+: MCP 서버 구현을 위한 기본 언어
-
Node.js/TypeScript (선택): 일부 MCP 프레임워크에서 사용
-
GitHub 계정: MCP 공식 저장소 클론 및 테스트용
-
Cursor: MCP를 활용한 AI 코딩 환경
-
패키지: requests, flask (파이썬용 HTTP 서버 구축)
pip install requests flask
2. MCP 서버 구축: 파이썬 예제
간단한 MCP 서버를 파이썬으로 구축해보겠습니다. 이 서버는 AI가 네이버 검색 API를 호출해 결과를 반환하도록 설정합니다.
from flask import Flask, request, jsonify
import requests
app = Flask(__name__)
# 네이버 검색 API 설정
NAVER_CLIENT_ID = "YOUR_CLIENT_ID"
NAVER_CLIENT_SECRET = "YOUR_CLIENT_SECRET"
@app.route("/mcp/search", methods=["POST"])
def search():
data = request.json
query = data.get("query")
headers = {
"X-Naver-Client-Id": NAVER_CLIENT_ID,
"X-Naver-Client-Secret": NAVER_CLIENT_SECRET
}
response = requests.get(
f"https://openapi.naver.com/v1/search/webkr.json?query={query}",
headers=headers
)
return jsonify(response.json())
if __name__ == "__main__":
app.run(port=5000)
이 코드는 Flask를 사용해 MCP 서버를 만들고, 네이버 검색 API를 호출하는 엔드포인트를 제공합니다. AI 모델(예: Claude 또는 Cursor 에이전트)은 이 서버에 요청을 보내 검색 결과를 받을 수 있습니다.
3. 커서에서 MCP 연동
커서는 MCP를 기본적으로 지원하는 AI 코딩 편집기입니다. MCP 서버를 커서와 연동하려면 다음 단계를 따릅니다:
-
커서에서 MCP 설정 메뉴로 이동
-
위에서 만든 서버의 URL(http://localhost:5000/mcp/search) 입력
-
커서 에이전트에 검색 명령을 테스트: 예: "네이버에서 '파이썬' 검색"
커서는 이 요청을 MCP 서버로 보내고, 서버는 네이버 API를 호출해 결과를 반환합니다.
MCP 활용 사례: 커서와 파이썬 중심
MCP의 강점은 다양한 도구와의 통합에 있습니다. 아래는 커서와 파이썬을 활용한 실질적인 사례들입니다.
1. GitHub 자동화
커서와 MCP를 연동해 GitHub 작업을 자동화할 수 있습니다. 예를 들어, 커서 에이전트가 PR(Pull Request)을 생성하거나 이슈를 등록하도록 설정할 수 있습니다.
구현 코드:
@app.route("/mcp/github/pr", methods=["POST"])
def create_pr():
data = request.json
repo = data.get("repo")
title = data.get("title")
body = data.get("body")
headers = {"Authorization": f"Bearer {GITHUB_TOKEN}"}
pr_data = {"title": title, "body": body, "head": "feature-branch", "base": "main"}
response = requests.post(
f"https://api.github.com/repos/{repo}/pulls",
headers=headers,
json=pr_data
)
return jsonify(response.json())
커서에서 "내 레포지토리에 PR 생성해"라고 요청하면, MCP 서버가 GitHub API를 호출해 PR을 생성합니다.
2. Supabase 데이터베이스 연동
Supabase는 오픈 소스 데이터베이스 플랫폼으로, MCP를 통해 AI와 연동 가능합니다. 예를 들어, 커서 에이전트가 Supabase에서 데이터를 조회하거나 삽입하도록 설정할 수 있습니다.
구현 코드:
python
from supabase import create_client
supabase = create_client("YOUR_SUPABASE_URL", "YOUR_SUPABASE_KEY")
@app.route("/mcp/supabase/insert", methods=["POST"])
def insert_data():
data = request.json
table = data.get("table")
record = data.get("record")
response = supabase.table(table).insert(record).execute()
return jsonify(response.data)
커서에서 "Supabase에 사용자 데이터 추가해"라고 요청하면, MCP 서버가 데이터를 삽입합니다.
3. Vercel 배포 자동화
MCP를 사용하면 커서 에이전트가 Vercel에 프로젝트를 배포하도록 설정할 수 있습니다. 이는 CI/CD 워크플로우를 간소화합니다.
구현 코드:
@app.route("/mcp/vercel/deploy", methods=["POST"])
def deploy():
data = request.json
project_id = data.get("project_id")
headers = {"Authorization": f"Bearer {VERCEL_TOKEN}"}
response = requests.post(
f"https://api.vercel.com/v13/deployments",
headers=headers,
json={"projectId": project_id}
)
return jsonify(response.json())
커서에서 "Vercel에 프로젝트 배포해"라고 요청하면, MCP 서버가 배포를 실행합니다.
4. Dolphin MCP와 Ollama 통합
Dolphin MCP는 파이썬 기반의 오픈 소스 라이브러리로, 여러 MCP 서버를 동시에 관리할 수 있습니다. 이를 Ollama(로컬 언어 모델)와 통합해 로컬에서 MCP 워크플로우를 실행할 수 있습니다.
설치 및 실행
pip install dolphin-mcp
dolphin-mcp --server http://localhost:5000 --model ollama
Dolphin MCP를 사용하면 커서에서 로컬 Ollama 모델을 호출해 외부 데이터 소스와 상호작용할 수 있습니다. 예: "Ollama로 네이버 검색 결과 분석해".
5. IntelliJ와 MCP 연동
IntelliJ 사용자라면 MCP를 통해 코딩 작업을 자동화할 수 있습니다. 예를 들어, MCP 서버가 IntelliJ의 코드 리팩토링 요청을 처리하도록 설정할 수 있습니다.
구현 코드:
@app.route("/mcp/intellij/refactor", methods=["POST"])
def refactor_code():
data = request.json
code = data.get("code")
# 간단한 리팩토링 로직 (예: 코드 포맷팅)
formatted_code = code.replace(";", ";\n")
return jsonify({"refactored": formatted_code})
IntelliJ에서 커서 플러그인을 통해 MCP 서버에 요청을 보내 코드를 리팩토링합니다.
728x90
MCP의 장점과 한계
장점
-
표준화: 다양한 AI 모델과 데이터 소스를 단일 프로토콜로 연결
-
확장성: GitHub, Supabase, Vercel 등 무수한 도구와 통합 가능
-
오픈 소스: 누구나 MCP 서버를 구축하고 커스터마이징 가능
-
커서와의 높은 호환성: 커서의 MCP 지원으로 빠른 워크플로우 구축 가능
한계
-
초기 설정 복잡성: API 키 관리와 서버 설정이 초보자에게 어려울 수 있음
-
보안 문제: 외부 API 호출 시 데이터 유출 위험이 있으므로 HTTPS와 인증 강화 필요
-
커뮤니티 성숙도: 2025년 기준 MCP는 아직 초기 단계로, 문서화와 지원이 부족할 수 있음
실제 사례: 팀 워크플로우에 MCP 적용
한 개발 팀이 MCP를 도입해 업무를 자동화한 사례를 살펴보겠습니다.
-
Google Calendar + Google Meet: MCP 서버가 회의 일정과 참석자 가용성을 확인해 자동으로 Google Meet 링크 생성
-
Slack 통합: MCP를 통해 Slack 채널의 메시지를 분석하고, 팀 미팅 요약을 자동 생성
-
데이터 조회: Supabase 데이터베이스에서 최신 프로젝트 데이터를 조회해 보고서 작성
이 팀은 커서와 파이썬으로 MCP 서버를 구축해 위 작업을 단일 워크플로우로 통합했습니다.
MCP 시작을 위한 팁
-
공식 문서 참고: Anthropic의 MCP GitHub 저장소에서 최신 스펙 확인
-
커서 활용: 커서의 MCP 설정 UI를 사용해 빠르게 테스트
-
작은 프로젝트부터: 간단한 API 호출(예: 날씨 데이터 조회)부터 시작
-
커뮤니티 참여: MCP 관련 유튜브 튜토리얼(예:)과 블로그(예:) 적극 활용
결론
MCP는 AI와 외부 시스템을 연결하는 강력한 도구로, 커서와 파이썬을 활용하면 누구나 쉽게 시작할 수 있습니다. GitHub 자동화, Supabase 데이터 관리, Vercel 배포, IntelliJ 리팩토링 등 다양한 사례를 통해 MCP의 잠재력을 확인할 수 있었습니다. 2025년, MCP는 AI 생태계의 표준으로 자리 잡을 가능성이 높으며, 지금 시작한다면 여러분의 워크플로우를 한 단계 업그레이드할 수 있을 것입니다.
궁금한 점이 있다면 댓글로 남겨주세요! MCP 서버 구축에 도전해보고 싶다면, 위 코드를 복사해 바로 테스트해보세요.
참고 자료:
-
Anthropic MCP 공식 GitHub
-
Cursor 공식 문서
-
Dolphin MCP 문서
-
DEV.DY 블로그
728x90