Atlas / MCP servers / chy168 / Google Chat Integration

Google Chat IntegrationCAUTION

mcp/chy168/google-chat-integration
Verdict
CAUTION
Grade
B
Trust score
83 /100
Exposed tools
15 9r · 5w · 1d
Transport
—
License
MIT
Stars
24
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

This project provides a Google Chat integration for MCP (Model Control Protocol) servers written by Python with FastMCP. It allows you to access and interact with Google Chat spaces and messages through MCP tools.

Structure

The project consists of two main components:

  1. MCP Server with Google Chat Tools: Provides tools for interacting with Google Chat through the Model Control Protocol.
  2. Written by FastMCP
  3. server.py: Main MCP server implementation with Google Chat tools
  4. google_chat.py: Google Chat API integration and authentication handling
  1. Authentication Server: Standalone component for Google account authentication
  2. Written by FastAPI
  3. Handles OAuth2 flow with Google
  4. Stores and manages access tokens
  5. Can be run independently or as part of the MCP server
  6. server_auth.py: Authentication server implementation

The authentication flow allows you to obtain and refresh Google API tokens, which are then used by the MCP tools to access Google Chat data. (Your spaces and messages)

Features

  • OAuth2 authentication with Google Chat API
  • List available Google Chat spaces
  • Retrieve messages from specific spaces with date filtering
  • Local authentication server for easy setup

Requirements

  • Python 3.13+
  • Google Cloud project with the following APIs enabled:
  • Google Chat API
  • People API (for user display names)
  • OAuth2 credentials from Google Cloud Console

How to use?

Prepare Google Oauth Login

  1. Clone this project
git clone https://github.com/chy168/google-chat-mcp-server.git
cd google-chat-mcp-server
  1. Prepare a Google Cloud Project (GCP)
  2. Google Cloud Conolse (https://console.cloud.google.com/auth/overview?project=)
  3. Google Auth Platform > Clients > (+) Create client > Web application

reference: https://developers.google.com/identity/protocols/oauth2/?hl=en Authorized JavaScript origins add: http://localhost:8000 Authorized redi

Read from source at commit b238692bb64aOBSERVED · 2026-10-09
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add mcp-gcp-chat-py --env OAUTHLIB_RELAX_TOKEN_SCOPE=${OAUTHLIB_RELAX_TOKEN_SCOPE} -- uvx mcp-gcp-chat-py
claude-desktop
{
  "mcpServers": {
    "mcp-gcp-chat-py": {
      "command": "uvx",
      "args": [
        "mcp-gcp-chat-py"
      ],
      "env": {
        "OAUTHLIB_RELAX_TOKEN_SCOPE": "${OAUTHLIB_RELAX_TOKEN_SCOPE}"
      }
    }
  }
}
03

Exposed tools (15)

9 read · 5 write · 1 destructive. Blast radius: 1 tool can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
addwriteAdd two numbers
authenticatewriteStart (or restart) Google Chat OAuth authentication.
complete_authenticationreadComplete an in-progress OAuth flow for Google Chat.
create_reactionwriteAdd an emoji reaction to a message in a Google Chat space.
delete_messagedestructiveDelete a message that this app sent.
fetch_weatherreadFetch current weather for a city
get_chat_spacesreadList all Google Chat spaces the bot has access to.
get_ip_my_addressreadGet IP address from outian.net
get_messagereadGet a single message
get_space_membersreadList the members of a specific Google Chat space.
get_space_messagesreadList messages from a specific Google Chat space with optional time filtering.
list_reactionsreadList the emoji reactions on a message in a Google Chat space.
search_messagesreadSearch messages in a Google Chat space for a keyword/substring match.
send_messagewriteSend a text message to a specific Google Chat space, optionally as a reply in a thread.
update_messagewriteUpdate the text of an existing message that this app sent.
04

Trust audit

CAUTIONgrade B · trust 83/100 Install with care. The audit found things worth knowing before you trust its output.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)WARN
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (2 observation(s))
Network
declared (7 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (11)

MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
google_chat.py:649
def complete_authentication(callback_url: str, token_path: Optional[str] = None) -> Dict:
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
google_chat.py:674
if callback_url.startswith('http'):
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
google_chat.py:675
parsed = urlparse(callback_url)
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
google_chat.py:686
code = callback_url
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
server.py:278
def complete_authentication(callback_url: str) -> Dict:
MEDIUMPrompt injection · review.misleading_scope · CWE-94, CWE-1427
<tool:get_ip_my_address>
Get IP address from outian.net
Why it matters. An IP lookup tool calling a third-party service has no relation to the package's stated purpose of Google Chat integration.
Fix. rewrite it so the instruction says plainly what it does, and asks the user before it acts
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
delete_message
Why it matters. 1 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
requirements.txt
fastmcp, httpx, google-api-core, google-api-python-client, google-auth, google-auth-httplib2, google-auth-oauthlib, fastapi
Why it matters. 9 requirement(s) not pinned with ==
Fix. pin exact versions
LOWPrompt injection · review.data_transfer · CWE-94, CWE-1427
<tool:get_ip_my_address>
Get IP address from outian.net
Why it matters. This tool sends the user's IP address to an external third-party service (outian.net) outside the Google Chat ecosystem.
Fix. rewrite it so the instruction says plainly what it does, and asks the user before it acts
LOWPrompt injection · review.misleading_scope · CWE-94, CWE-1427
<tool:fetch_weather>
Fetch current weather for a city
Why it matters. A weather fetching tool is unrelated to the package's stated purpose of Google Chat integration.
Fix. rewrite it so the instruction says plainly what it does, and asks the user before it acts
LOWPrompt injection · review.misleading_scope · CWE-94, CWE-1427
<tool:add>
Add two numbers
Why it matters. A basic arithmetic tool is unrelated to the package's stated purpose of Google Chat integration.
Fix. rewrite it so the instruction says plainly what it does, and asks the user before it acts

Gates applied: no_behavioural_pass.

Audited 2026-10-09 · audit v0.4.1 · source sha b238692bb64afull audit observations/trust-audit/mcp-server/chy168__google-chat-integration.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-09b238692bb64aCAUTIONB83first audit
06

Questions

What tools does Google Chat Integration expose?

15 in total: 9 read-only, 5 that write, and 1 that can delete or overwrite (delete_message). Every one is listed on this page with its risk.

Is Google Chat Integration safe to connect to an agent?

With care. The audit graded it B (83/100) and found 11 things worth knowing before you trust this server, listed below with the exact line each was found on. Separately from the audit: 1 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does Google Chat Integration need?

It reads OAUTHLIB_RELAX_TOKEN_SCOPE from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How current is this page?

The grade is for one exact copy of the source (b238692bb64a), read on 2026-10-09. The repository is watched and re-audited when it changes.

Advertisement