Skip to main content
Glama
Google Chat MCP Server

Google Chat MCP Server

by chy168

소개

이 프로젝트는 FastMCP를 사용하여 Python으로 작성된 MCP(모델 제어 프로토콜) 서버용 Google Chat 통합 기능을 제공합니다. MCP 도구를 통해 Google Chat 공간 및 메시지에 접근하고 상호작용할 수 있습니다.

구조

이 프로젝트는 두 가지 주요 구성 요소로 구성됩니다.

  1. Google Chat 도구가 포함된 MCP 서버 : 모델 제어 프로토콜을 통해 Google Chat과 상호 작용하기 위한 도구를 제공합니다.

    • FastMCP가 작성함

    • server.py : Google Chat 도구를 사용한 주요 MCP 서버 구현

    • google_chat.py : Google Chat API 통합 및 인증 처리

  2. 인증 서버 : 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. 이 프로젝트를 복제하세요

    지엑스피1

  2. Google Cloud 프로젝트(GCP) 준비

  3. Google Cloud 콘솔( https://console.cloud.google.com/auth/overview?project=\ <YOUR_PROJECT_NAME>)

  4. Google Auth Platform > 클라이언트 > (+) 클라이언트 생성 > 웹 애플리케이션 참조: https://developers.google.com/identity/protocols/oauth2/?hl=en 승인된 JavaScript 원본 추가: http://localhost:8000 승인된 리디렉션 URI: http://localhost:8000/auth/callback

  5. OAuth 2.0 클라이언트를 생성한 후 클라이언트 시크릿을 .json 파일로 다운로드하세요. 프로젝트 최상위에 credentials.json 파일로 저장하세요.

인증 서버를 실행하고 Google 액세스 토큰을 받으세요(Google에만 로그인하고 MCP 서버에는 아직 로그인하지 마세요)

python server.py -local-auth --port 8000
  • http://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 tools
addC

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

    C2.7/5.0

    Scored across 5 tools

    Disambiguation2/5

    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 Consistency2/5

    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.

    Tool Count2/5

    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.

    Completeness2/5

    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

    ActivityMaintained
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      A
      maintenance
      Enables 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.
      13
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server for Google Chat that enables managing spaces, messages, members, reactions, attachments, and GIFs through the Model Context Protocol.
      110 npm
      1
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables interaction with Google Chat through MCP, allowing listing spaces and messages, searching messages, and sending messages. Supports local and remote transports.
      34 npm
      Apache 2.0