사용 설명

프로젝트 소개

나비 MCP 서버는 Model Context Protocol (MCP)를 기반으로 구축된 서버로, LLM 클라이언트에게 Gmail, 캘린더, Perplexity 검색 기능을 제공합니다. 이 서버를 통해 LLM은 이메일 관리, 일정 관리, 웹 검색 기능을 안전하고 효율적으로 활용할 수 있습니다.

주요 기능

  • Gmail 연동: 이메일 목록 조회, 검색, 전송, 라벨 수정 등 Gmail 계정 관리 기능 제공
  • Google 캘린더 연동: 일정 목록 조회, 일정 생성 등 캘린더 관리 기능 제공
  • Perplexity 검색: Perplexity AI를 활용한 웹 검색 기능 제공
  • 표준 MCP 인터페이스: JSON-RPC over Stdio를 통해 LLM 클라이언트와 통신
  • 확장 가능한 도구: 필요에 따라 새로운 도구를 쉽게 추가 가능

설치 방법

  1. GitHub 리포지토리 복제:

    git clone https://github.com/dominhok/mini-aiffelthon.git
    cd mini-aiffelthon
  2. 필요한 Python 패키지 설치:

    pip install -r requirements.txt

    requirements.txt 파일이 리포지토리에 없으므로, 필요한 패키지를 직접 설치해야 합니다. 주요 패키지는 다음과 같습니다:

    • 'mcp-server'
    • 'requests'
    • 'google-api-python-client'
    • 'google-auth-oauthlib'
    • 'python-dotenv'
    • 'httpx'
    • 'langchain-upstage'

    명령 예시:

    pip install mcp-server requests google-api-python-client google-auth-oauthlib python-dotenv httpx langchain-upstage
  3. 환경 변수 설정:

    • '.env' 파일을 생성하고 다음 환경 변수를 설정합니다.
      • 'WEATHERMAP_API_KEY': OpenWeatherMap API 키 (날씨 기능 사용 시 필요)
      • 'GOOGLE_CLIENT_ID': Google Cloud Console에서 생성한 OAuth 2.0 클라이언트 ID (Gmail, 캘린더 기능 사용 시 필요)
      • 'GOOGLE_CLIENT_SECRET': Google Cloud Console에서 생성한 OAuth 2.0 클라이언트 비밀번호 (Gmail, 캘린더 기능 사용 시 필요)
      • 'PERPLEXITY_API_KEY': Perplexity API 키 (Perplexity 검색 기능 사용 시 필요)

서버 설정 (MCP 클라이언트 설정 JSON)

MCP 클라이언트는 JSON 형식으로 서버 설정을 정의해야 합니다. 'mini-aiffelthon' 리포지토리의 MCP 서버들을 사용하기 위한 설정 예시는 다음과 같습니다.

{
  "servers": {
    "weather": {
      "name": "Weather",
      "command": "python",
      "args": ["mcp_server_local.py"]
    },
    "gsuite": {
      "name": "GSuite",
      "command": "python",
      "args": ["gsuite_mcp_server.py"]
    },
    "pplx_search": {
      "name": "PerplexitySearch",
      "command": "python",
      "args": ["pplx_search_mcp_server.py"]
    }
  }
}

설정 항목 설명:

  • '"servers"': MCP 서버들을 정의하는 JSON 객체
  • '"weather"', '"gsuite"', '"pplx_search"': 각 서버의 이름 (사용자 정의 가능)
  • '"name"': MCP 서버의 이름 (코드에서 정의된 이름과 일치해야 함, 예: 'FastMCP("Weather", ...)' )
  • '"command"': 서버 실행 명령어 (Python 스크립트 실행 시 '"python"')
  • '"args"': 서버 실행 명령어의 인자 (각각의 Python 스크립트 파일명)

MCP 클라이언트는 위 JSON 설정을 바탕으로 각 서버와 연결하고 도구를 사용할 수 있습니다.

기본 사용 방법

  1. 각 MCP 서버를 실행합니다. 예를 들어, 'weather' 서버를 실행하려면 터미널에서 다음 명령어를 실행합니다.

    python mcp_server_local.py

    마찬가지로 'gsuite_mcp_server.py' 와 'pplx_search_mcp_server.py' 도 각각 실행합니다.

  2. MCP 클라이언트에서 위에서 생성한 서버 설정 JSON 파일을 로드합니다.

  3. MCP 클라이언트를 통해 각 서버에 등록된 도구를 호출하여 기능을 활용합니다.

자세한 사용 방법은 각 MCP 클라이언트의 사용 설명서를 참고하십시오.

信息

分类

生产力应用