소개
이 프로젝트는 FastMCP를 사용하여 Python으로 작성된 MCP(모델 제어 프로토콜) 서버용 Google Chat 통합 기능을 제공합니다. MCP 도구를 통해 Google Chat 공간 및 메시지에 접근하고 상호작용할 수 있습니다.
구조
이 프로젝트는 두 가지 주요 구성 요소로 구성됩니다.
- Google Chat 도구가 포함된 MCP 서버 : 모델 제어 프로토콜을 통해 Google Chat과 상호 작용하기 위한 도구를 제공합니다.
- FastMCP가 작성함
server.py
: Google Chat 도구를 사용한 주요 MCP 서버 구현google_chat.py
: Google Chat API 통합 및 인증 처리
- 인증 서버 : Google 계정 인증을 위한 독립 실행형 구성 요소
- FastAPI에서 작성됨
- Google과 함께 OAuth2 흐름을 처리합니다.
- 액세스 토큰을 저장하고 관리합니다.
- 독립적으로 또는 MCP 서버의 일부로 실행 가능
server_auth.py
: 인증 서버 구현
인증 흐름을 통해 Google API 토큰을 획득하고 갱신할 수 있으며, 이 토큰은 MCP 도구에서 Google Chat 데이터(스페이스 및 메시지)에 액세스하는 데 사용됩니다.
특징
- Google Chat API를 사용한 OAuth2 인증
- 사용 가능한 Google Chat 공간 나열
- 날짜 필터링을 사용하여 특정 공간에서 메시지 검색
- 간편한 설정을 위한 로컬 인증 서버
요구 사항
- 파이썬 3.8 이상
- Chat API가 활성화된 Google Cloud 프로젝트
- Google Cloud Console의 OAuth2 자격 증명
어떻게 사용하나요?
Google Oauth 로그인 준비
- 이 프로젝트를 복제하세요지엑스피1
- Google Cloud 프로젝트(GCP) 준비
- Google Cloud 콘솔( https://console.cloud.google.com/auth/overview?project=\ <YOUR_PROJECT_NAME>)
- Google Auth Platform > 클라이언트 > (+) 클라이언트 생성 > 웹 애플리케이션 참조: https://developers.google.com/identity/protocols/oauth2/?hl=en 승인된 JavaScript 원본 추가:
http://localhost:8000
승인된 리디렉션 URI: http://localhost:8000/auth/callback
- OAuth 2.0 클라이언트를 생성한 후 클라이언트 시크릿을
.json
파일로 다운로드하세요. 프로젝트 최상위에 credentials.json
파일로 저장하세요.
인증 서버를 실행하고 Google 액세스 토큰을 받으세요(Google에만 로그인하고 MCP 서버에는 아직 로그인하지 마세요)
python server.py -local-auth --port 8000
MCP 구성(mcp.json)
{
"mcpServers": {
"google_chat": {
"command": "uv",
"args": [
"--directory",
"<YOUR_REPO_PATH>/google-chat-mcp-server",
"run",
"server.py",
"--token-path",
"<YOUR_REPO_PATH>/google-chat-mcp-server/token.json"
]
}
}
도구
MCP 서버는 다음과 같은 도구를 제공합니다.
Google 채팅 도구
get_chat_spaces()
- 봇이 액세스할 수 있는 모든 Google Chat 공간을 나열합니다.get_space_messages(space_name: str, start_date: str, end_date: str = None)
- 시간 필터링을 선택적으로 적용하여 특정 Google Chat 공간의 메시지를 나열합니다.
개발 및 디버그
fastmcp dev server.py --with-editable .