본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 05. 14. 22:18

arjunprabhulal/mcp-gemini-search

요약

이 프로젝트는 Model Context Protocol (MCP)을 활용하여 Google의 Gemini 2.5 Pro 모델이 자연어 사용자 쿼리로부터 항공편 검색에 필요한 매개변수를 자동으로 추출하고, 이를 로컬 MCP 서버 도구(`mcp-flight-search`)를 통해 실행하는 방법을 보여줍니다. 클라이언트는 stdio 통신 채널을 구축하여 사용자의 요청을 Gemini에게 전달하고, Gemini가 반환한 구조화된 함수 호출 결과를 받아 실제 검색 도구를 구동합니다. 이 과정을 통해 자연어 입력이 복잡한 외부 API 호출(SerpAPI를 통한 항공편 검색)로 매끄럽게 연결됩니다.

핵심 포인트

  • Gemini 2.5 Pro의 함수 호출 기능을 활용하여 자연어 쿼리에서 구조화된 매개변수를 추출합니다.
  • Model Context Protocol (MCP)을 사용하여 로컬 서버 프로세스(`mcp-flight-search`)와 통신하는 방법을 구현했습니다.
  • stdio 통신 채널을 통해 클라이언트가 MCP 도구 서버에 연결하고 상호작용합니다.
  • 전체 워크플로우는 사용자 쿼리 → Gemini 파라미터 추출 → MCP 도구 호출 → 외부 API(SerpAPI) 검색 결과 포맷팅 순서로 진행됩니다.

이 프로젝트는 Model Context Protocol (MCP)을 통해 mcp-flight-search 도구와 상호작용하기 위해 함수 호출 (function calling) 기능이 있는 Google의 Gemini 2.5 Pro를 사용하는 방법을 보여줍니다. 이 클라이언트 구현은 다음과 같은 방법을 보여줍니다:

  • stdio 통신을 사용하여 로컬 MCP 서버 프로세스 (mcp-flight-search)에 연결

  • Gemini 2.5 Pro와 함께 자연어 프롬프트를 사용하여 항공편 검색 (예: "2025-05-05에 애틀랜타에서 라스베이거스로 가는 항공편을 찾아줘")

  • Gemini가 자연어 입력으로부터 올바른 함수 매개변수 (function parameters)를 자동으로 결정하도록 허용

  • MCP 도구를 사용하여 항공편 검색 실행

  • 검색된 결과를 포맷팅된 형태로 표시

  • Gemini 2.5 Pro를 사용한 자연어 항공편 검색

  • 함수 호출 (function calling)을 통한 자동 매개변수 추출

  • stdio를 통한 mcp-flight-search 도구와의 통합

  • 항공편 결과의 포맷팅된 JSON 출력

  • API 키를 위한 환경 기반 설정

이 클라이언트를 실행하기 전에 다음이 필요합니다:

  • Python 3.7 이상
  • Gemini를 위한 Google AI Studio API 키
  • SerpAPI 키 (항공편 검색 도구에서 사용됨)
  • 설치된 mcp-flight-search 패키지

이 프로젝트는 여러 Python 패키지에 의존합니다:

  • google-generativeai: Gemini 2.5 Pro 및 기타 Google AI 모델에 액세스하기 위한 Google의 공식 Python 라이브러리.

    • Gemini 2.5 Pro를 위한 클라이언트 인터페이스 제공
    • 함수 호출 (function calling) 기능 처리
    • API 인증 및 요청 관리
  • mcp-sdk-python: Python용 Model Context Protocol (MCP) SDK.

    • MCP 통신 관리를 위한 ClientSession 제공
    • 서버 프로세스 구성을 위한 StdioServerParameters 포함
    • 도구 등록 및 호출 처리
  • mcp-flight-search: MCP로 구축된 항공편 검색 서비스.

    • SerpAPI를 사용하여 항공편 검색 기능 구현
    • 항공편 검색을 위한 MCP 준수 도구 제공
    • stdio 및 HTTP 통신 모드 모두 처리

asyncio: 비동기 코드를 작성하기 위한 Python 내장 라이브러리
- 비동기 작업 및 코루틴 (coroutines) 관리
- 동시 I/O 작업 처리
- MCP 클라이언트-서버 통신을 위해 필요

json: Python 내장 JSON 인코더 및 디코더
- 항공편 검색 결과 파싱 (parsing)
- 출력을 위한 포맷팅
- 데이터 직렬화/역직렬화 (serialization/deserialization) 처리

저장소 복제 (Clone the Repository):
git clone https://github.com/arjunprabhulal/mcp-gemini-search.git cd mcp-gemini-search

의존성 설치 (Install Dependencies):

필요한 Python 라이브러리 설치

pip install -r requirements.txt

MCP 항공편 검색 도구 설치

pip install mcp-flight-search

환경 변수 설정 (Set Environment Variables):
export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
export SERP_API_KEY="YOUR_SERPAPI_API_KEY"

플레이스홀더 값을 실제 API 키로 교체하세요:

  • Google AI Studio에서 Gemini API 키를 받으세요
  • SerpApi에서 SerpAPI 키를 받으세요

이 프로젝트는 자연어 항공편 검색을 가능하게 하기 위해 여러 구성 요소를 통합합니다. 시스템 작동 방식은 다음과 같습니다:

사용자에서 클라이언트로 (User to Client)

  • 사용자가 자연어 쿼리 제공 (예: "내일 애틀랜타에서 라스베이거스로 가는 항공편 찾아줘")

  • 클라이언트 스크립트 (client.py)가 입력을 처리

클라이언트에서 MCP 서버로 (Client to MCP Server)

  • 클라이언트가 MCP 서버 프로세스 (mcp-flight-search)를 시작

  • stdio 통신 채널 구축

  • 사용 가능한 도구 및 해당 설명(description)을 가져옴

클라이언트에서 Gemini 2.5 Pro로 (Client to Gemini 2.5 Pro)

  • 사용자의 쿼리를 전송

  • 함수 호출 (function calling)을 위한 도구 설명 제공

  • 추출된 파라미터가 포함된 구조화된 함수 호출을 수신

클라이언트에서 MCP 도구로 (Client to MCP Tool)

  • Gemini로부터 함수 호출 파라미터를 가져옴

  • 파라미터와 함께 적절한 MCP 도구를 호출

  • 응답 처리 수행

MCP 서버에서 SerpAPI로 (MCP Server to SerpAPI)

  • MCP 서버가 SerpAPI에 요청을 보냄

  • Google Flights 데이터 쿼리

  • 항공편 정보 처리 및 포맷팅

입력 처리 (Input Processing)
사용자 쿼리 → 자연어 텍스트 → Gemini 2.5 Pro → 구조화된 파라미터

항공권 검색 (Flight Search)
Parameters → MCP Tool → SerpAPI → Flight Data → JSON Response

결과 처리 (Result Handling)
JSON Response → Parse → Format → Display to User

Client ↔ MCP Server

  • stdio 통신을 사용함

  • 도구 등록 및 호출을 위해 MCP 프로토콜을 따름

  • 비동기 작업 (Asynchronous operations)을 처리함

MCP Server ↔ SerpAPI

  • HTTPS 요청

  • JSON 데이터 교환

  • API 키 인증

Client ↔ Gemini 2.5 Pro

  • HTTPS 요청
  • 함수 호출 (Function calling) 프로토콜
  • API 키 인증

이 통합 과정에는 여러 단계의 에러 처리 (Error handling)가 포함됩니다:

  • 입력 유효성 검사 (Input validation)
  • API 통신 오류
  • 도구 실행 실패
  • 응답 파싱 (Response parsing) 문제
  • 데이터 포맷팅 문제

클라이언트 실행:

python client.py

스크립트는 다음을 수행합니다:

  • MCP 항공권 검색 서버 프로세스를 시작함
  • 항공권 검색 쿼리를 2.5 Pro로 전송함
  • Gemini의 함수 호출 (Function calling)을 사용하여 검색 파라미터를 추출함
  • MCP 도구를 통해 검색을 실행함
  • 포맷팅된 결과를 표시함

이 클라이언트는 다음에서 사용할 수 있는 mcp-flight-search 도구를 사용합니다:

  • GitHub: arjunprabhulal/mcp-flight-search
  • PyPI: mcp-flight-search

AI/ML 및 생성형 AI (Generative AI)에 관한 더 많은 글을 보시려면 Medium에서 저를 팔로우하세요: @arjun-prabhulal

이 프로젝트는 MIT 라이선스 (MIT License) 하에 라이선스가 부여됩니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub Claude Ecosystem의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0