GPT와 MCP 연동 Notion을 분석하는 AI 도구 만들기 “GPT가 직접 Notion 데이터를 읽고 분석한다면?” 이제 그게 가능합니다. 실제 MCP 연동 예제로 확인해보세요!
안녕하세요! 요즘 AI와 외부 시스템의 연결이 점점 쉬워지고 있다는 거, 체감하고 계신가요? 저는 최근에 OpenAI의 GPT 모델과 MCP 서버를 연동해서 Notion 프로젝트 데이터를 실시간으로 조회하고 분석하는 기능을 직접 구현해봤어요. 처음엔 “이게 진짜 가능할까?” 싶었는데, 막상 해보니 생각보다 훨씬 자연스럽고 파워풀했습니다. 오늘은 그 구현 과정을 단계별로 소개해보려고 해요. 저처럼 혼자서 AI 실험하는 분들이라면, 분명 흥미롭게 보실 수 있을 거예요!
GPT가 단순히 질문에 답하는 걸 넘어서 실제 시스템과 상호작용하게 된다면 어떨까요? 바로 그걸 가능하게 해주는 게 MCP(Model Context Protocol)입니다. 이 MCP 서버는 GPT로부터 도구 호출 요청을 받고, 외부 시스템(Notion 등)과 연결해주는 중간 브릿지 역할을 해요. 이 글에서는 MCP 서버를 Python 기반 FastAPI로 구성하고, Gradio 인터페이스를 통해 GPT와 사용자 간 실시간 대화를 구현하는 구조를 소개합니다.
Tool Call과 Streaming API 작동 방식
기능명
제공 주체
설명
Tool Call
OpenAI
GPT가 외부 function을 자동 호출하는 기능. JSON 기반 인자 생성
Streaming 응답 (GPT)
OpenAI
GPT 응답을 실시간 스트리밍으로 받기 위한 옵션 (stream=True)
Streaming 응답 (MCP)
FastMCP
MCP 실행 결과를 text/event-stream 형식으로 실시간 전달
OpenAI API 키와 Notion 토큰 준비
이 시스템을 구현하기 위해선 기본적으로 두 가지 인증 키가 필요합니다. 하나는 GPT API를 호출하기 위한 OpenAI API Key, 다른 하나는 Notion 프로젝트 데이터에 접근하기 위한 Integration Token입니다. 이 키들은 .env 파일에 저장해서 외부 노출 없이 안전하게 사용합니다.
uv 설치가 완료되면, 프로젝트 디렉토리를 초기화하고 가상환경을 생성한 뒤 필요한 패키지를 설치합니다. 가상환경을 사용하는 것을 권장하며, 아래 명령어를 순서대로 실행해 주세요.
# Windows PowerShellcd \path\to\mcp # 1. 원하는 작업 디렉토리로 이동 (예: D:\mcp)
uv init notion_mcp # 2. 'notion_mcp' uv 프로젝트 폴더 생성cd gpt_mcp_toolcaller_gradio # 3. 생성된 프로젝트 폴더로 이동
uv venv --python=python3.10 # 4. Python 3.10 기반 가상환경 생성 (.venv 디렉토리 생성).venv\Scripts\activate # 5. 가상환경 활성화 (Windows 기준)
코드 및 필요 패키지 다운로드
OpenAI API와 MCP 서버가 연동된 예제 코드를 아래 깃허브에서 제공하고 있습니다. 해당 코드를 다운로드하고 압축을 푼 후, 위에서 생성한 gpt_mcp_toolcaller_gradio 폴더 내로 파일을 이동해 줍니다.
이제 가상환경을 활성화한 상태에서, 아래 명령어를 실행해 프로젝트에 필요한 패키지를 설치합니다.
※ 가상환경을 사용하지 않는 경우에도, 동일한 명령어로 시스템 환경에 설치할 수 있습니다.
# Windows PowerShell
cd \path\to\notion_mcp\gpt_mcp_toolcaller_gradio # 깃허브에서 다운로드한 폴더
uv pip install . # 필요한 패키지 설치
📌 주의: 프로젝트 폴더(gpt_mcp_toolcaller_gradio)는 반드시 notion_mcp 폴더 내부에 위치해야 합니다. uv는 루트 기준으로 .venv를 자동 인식하기 때문에 디렉토리 구조를 유지하는 것이 중요합니다.
환경 설정
gpt_mcp_toolcaller_gradio 폴더(깃허브에서 받은 코드) 안에는 환경 변수를 관리하기 위한 .env 파일이 포함되어 있습니다. 이 파일을 메모장 등 텍스트 편집기로 열어, 내부에 있는 OpenAI API 키와 Notion 토큰 값을 본인의 것으로 수정합니다.
# .env 파일OPENAI_API_KEY=your_openai_api_key # 이 부분은 실제 api key로 변경해야합니다.NOTION_TOKEN=your_notion_token # 이 부분은 실제 notion_token으로 변경해야합니다.
※ 이 API 키와 토큰은 개인 인증 정보이므로 절대 외부에 노출되면 안 됩니다.
Notion 프로젝트 분석 요청
이제 모든 준비가 완료되었습니다. 아래 명령어를 실행하여 MCP 서버를 먼저 구동하고, 이후 Gradio 인터페이스를 통해 GPT에게 Notion 프로젝트 분석을 요청할 수 있습니다.
[MCP 서버 실행]
# Windows PowerShell (1)
cd \path\to\notion_mcp\gpt_mcp_toolcaller_gradio # 깃허브에서 다운로드한 폴더
python notion_mcp_server.py # MCP 서버 실행
MCP 서버가 정상적으로 실행되면, 아래와 같이 “Uvicorn running on http://0.0.0.0:8000” 문구가 출력됩니다. 이는 서버가 성공적으로 구동되어 요청을 받을 준비가 되었다는 의미입니다.
GPT와 MCP 연동 Notion을 분석하는 AI 도구 만들기
[Gradio 인터페이스 실행 (GPT모델)]
이제 MCP 서버가 실행된 상태에서, GPT와 연동되는 Gradio 인터페이스를 실행해보겠습니다. 아래 명령어를 입력하여 Gradio 앱을 실행합니다.
# Windows PowerShell (2)
cd \path\to\notion_mcp\gpt_mcp_toolcaller_gradio # 깃허브에서 다운로드한 폴더
python gpt_mcp_toolcaller_gradio.py # GPT Gradio 실행
Gradio가 정상적으로 실행되면, 아래와 같이 “Running on local URL: http://127.0.0.1:7860” 문구가 출력됩니다. 이 주소를 통해 Gradio 웹을 실행할 수 있습니다.
Gradio 웹 페이지가 정상적으로 실행되었다면, 이제 GPT에게 Notion 프로젝트와 관련된 질문을 직접 해볼 수 있습니다. 아래와 같이 예시 프롬프트를 입력했습니다.
GPT로 Notion 프로젝트 분석하기
이제 진짜 마법이 시작됩니다. Gradio 인터페이스를 통해 GPT에게 다음과 같은 프롬프트를 던졌어요:
“내 노션 프로젝트 목록 확인해줘.”
그러자 GPT는 즉시 Tool Call을 통해 MCP 서버를 호출했고, Notion 데이터가 실시간으로 반환됐죠. 이때 주요 기능은 다음과 같아요.
프로젝트 목록 실시간 조회
진행률, 우선순위, 마감일 통계 분석
분석 결과 요약 및 추천
확장 가능성과 향후 활용 아이디어
이번 구현 경험을 통해 GPT는 단순한 대화형 모델을 넘어서 외부 시스템과 상호작용하는 AI 에이전트로 완전히 진화할 수 있다는 걸 느꼈어요. 다음은 제가 실제로 시도해보고 싶은 확장 아이디어들이에요:
캘린더, 메일, 드라이브 등 타 시스템 연동
리스크 예측, 일정 지연 자동 감지 등 고급 분석 도구 추가
멀티턴 대화 흐름 최적화 및 프롬프트 파이프라인 설계
Q GPT와 MCP는 꼭 함께 사용해야 하나요?
아니요, GPT는 단독으로도 훌륭하지만, MCP를 활용하면 외부 시스템 연동이 가능해져 확장성이 훨씬 높아집니다.
Q Tool Call은 어떤 방식으로 작동하나요?
GPT가 질문을 해석해 적절한 도구를 선택하고 JSON 인자를 자동 생성하여 호출합니다. 사용자는 따로 호출 코드를 작성하지 않아도 됩니다.
Q Streaming API를 꼭 사용해야 하나요?
필수는 아니지만, 사용하면 응답을 실시간으로 받을 수 있어 Tool Call 발생 시점을 감지하거나 반응속도를 높이기에 유리합니다.
Q Notion 외에도 연동 가능한 시스템이 있을까요?
물론입니다. Google 캘린더, Gmail, Slack, 파일 시스템 등 다양한 REST API 기반 외부 시스템과 연동이 가능합니다.
Q Gradio 없이도 구현할 수 있나요?
네, Gradio는 인터페이스 구현 도구일 뿐이며, FastAPI나 Flask 기반의 웹 앱, 또는 데스크탑 UI로도 충분히 구현 가능합니다.
Q MCP 서버 운영 시 보안 문제는 없나요?
서버는 API 키 및 토큰을 환경 변수로 관리하므로 노출 위험이 줄어들지만, HTTPS 적용, 접근 제한, 토큰 주기적 갱신 등 추가 보안 조치가 필수입니다.
여기까지 따라오신 여러분, 정말 대단하세요! 😊 GPT와 MCP를 연동해서 Notion 데이터를 분석하는 여정이 쉽지는 않았을 거예요. 하지만 한번 구조를 만들어놓으면 생각보다 많은 일이 자동화되고, 확장 가능성도 무궁무진해집니다. 저도 처음엔 반신반의했지만, 직접 연결해보고 나니 정말 게임 체인저라는 느낌이 들었어요. 앞으로는 더 다양한 시스템과 연결해서 GPT를 진짜 ‘도구를 쓰는 AI’로 진화시켜볼 예정이에요. 여러분도 도전해보세요! 혹시 막히는 부분이 있거나 더 해보고 싶은 게 있다면 댓글로 꼭 남겨주세요.