Google Chat MCP Server
소개
이 프로젝트는 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 데이터(스페이스 및 메시지)에 액세스하는 데 사용됩니다.
Related MCP server: google-chat-mcp
특징
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/callbackOAuth 2.0 클라이언트를 생성한 후 클라이언트 시크릿을
.json파일로 다운로드하세요. 프로젝트 최상위에credentials.json파일로 저장하세요.
인증 서버를 실행하고 Google 액세스 토큰을 받으세요(Google에만 로그인하고 MCP 서버에는 아직 로그인하지 마세요)
python server.py -local-auth --port 8000http://localhost:8000/auth 에서 브라우저를 엽니다.
로그인하세요!
로그인 후 액세스 토큰은
token.json으로 저장됩니다.
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 .Available Tools
5 toolsaddC
Add two numbers
Inputs: a (required), b (required).
fetch_weatherB
Fetch current weather for a city
Inputs: city (required).
get_chat_spacesA
List all Google Chat spaces the bot has access to.
This tool requires OAuth authentication. On first run, it will open a browser window for you to log in with your Google account. Make sure you have credentials.json downloaded from Google Cloud Console in the current directory.
Inputs: no named parameters.
get_ip_my_addressC
Get IP address from outian.net
Inputs: city (required).
get_space_messagesA
List messages from a specific Google Chat space with optional time filtering.
This tool requires OAuth authentication. The space_name should be in the format 'spaces/your_space_id'. Dates should be in YYYY-MM-DD format (e.g., '2024-03-22').
When only start_date is provided, it will query messages for that entire day. When both dates are provided, it will query messages from start_date 00:00:00Z to end_date 23:59:59Z.
Args: space_name: The name/identifier of the space to fetch messages from start_date: Required start date in YYYY-MM-DD format end_date: Optional end date in YYYY-MM-DD format
Returns: List of message objects from the space matching the time criteria
Raises: ValueError: If the date format is invalid or dates are in wrong order
Inputs: space_name (required), start_date (required), end_date.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
The tool set has significant ambiguity issues. 'add' (math operation) and 'fetch_weather' (weather API) are completely unrelated to the Google Chat domain suggested by the server name and other tools. 'get_ip_my_address' is another unrelated utility. Only 'get_chat_spaces' and 'get_space_messages' clearly belong to the Google Chat domain, creating confusion about the server's actual purpose.
Naming conventions are inconsistent across the tool set. 'add' uses a simple verb, 'fetch_weather' uses verb_noun, 'get_chat_spaces' and 'get_space_messages' use get_noun_noun pattern, and 'get_ip_my_address' mixes get_noun_adjective_noun. There's no coherent naming strategy, with tools using different verb styles and structural patterns.
With only 5 tools, the count seems reasonable at first, but the content mismatch makes it inappropriate. For a 'Google Chat MCP Server', having only 2 actual Google Chat tools alongside 3 unrelated utilities creates a poorly scoped tool set. The server name suggests a focused domain, but the tools deliver a scattered collection.
For a Google Chat server, the coverage is severely incomplete. While 'get_chat_spaces' and 'get_space_messages' provide read access, there are no tools for creating messages, updating content, managing memberships, or other essential chat operations. The inclusion of unrelated tools (add, fetch_weather, get_ip) further dilutes the domain coverage, creating significant gaps in the expected functionality.
Maintenance
Related MCP Connectors
One OAuth connector for your team's remote MCP servers, with Tool Packs, guardrails and logs.
Appreciate teammates, celebrate milestones, and run workspace ops from MCP clients via OAuth.
Discover MCP servers and A2A agents; verify, message, post, follow, react, and receive webhooks.
Confluence MCP — wraps the Confluence Cloud REST API v2 (OAuth)
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables interaction with Google Chat via MCP using the internal Dynamite API, allowing listing spaces, reading and sending messages, and managing DMs. No Google Cloud Console setup required.13MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Google Chat that enables managing spaces, messages, members, reactions, attachments, and GIFs through the Model Context Protocol.110 npm1MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Google Chat through MCP, allowing listing spaces and messages, searching messages, and sending messages. Supports local and remote transports.34 npmApache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables interaction with Google Workspace (Drive, Docs, Sheets, Gmail) via MCP tools, using OAuth credentials stored locally or inline.-