google-chat-mcp-server
by chy168
What is google-chat-mcp-server
Introduction
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:
-
MCP Server with Google Chat Tools: Provides tools for interacting with Google Chat through the Model Control Protocol.
- Written by FastMCP
server.py
: Main MCP server implementation with Google Chat toolsgoogle_chat.py
: Google Chat API integration and authentication handling
-
Authentication Server: Standalone component for Google account authentication
- Written by FastAPI
- Handles OAuth2 flow with Google
- Stores and manages access tokens
- Can be run independently or as part of the MCP server
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.8+
- Google Cloud project with Chat API enabled
- OAuth2 credentials from Google Cloud Console
How to use?
Prepare Google Oauth Login
- Clone this project
git clone https://github.com/chy168/google-chat-mcp-server.git cd google-chat-mcp-server
- Prepare a Google Cloud Project (GCP)
- Google Cloud Conolse (https://console.cloud.google.com/auth/overview?project=<YOUR_PROJECT_NAME>)
- 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 redirect URIs:http://localhost:8000/auth/callback
- After you create a OAuth 2.0 Client, download the client secrets as
.json
file. Save ascredentials.json
at top level of project.
Run Auth server and get your Google access token (login google only, not MCP server yet)
python server.py -local-auth --port 8000
- Open browser at http://localhost:8000/auth
- login it!
- after loggined, you access token will be saved as
token.json
MCP Configuration (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"
]
}
}
Tools
The MCP server provides the following tools:
Google Chat Tools
get_chat_spaces()
- List all Google Chat spaces the bot has access toget_space_messages(space_name: str, start_date: str, end_date: str = None)
- List messages from a specific Google Chat space with optional time filtering
Development and Debug
fastmcp dev server.py --with-editable .
Leave a Comment
Comments section will be available soon. Stay tuned!
Frequently Asked Questions
What is MCP?
MCP (Model Context Protocol) is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications, providing a standardized way to connect AI models to different data sources and tools.
What are MCP Servers?
MCP Servers are lightweight programs that expose specific capabilities through the standardized Model Context Protocol. They act as bridges between LLMs like Claude and various data sources or services, allowing secure access to files, databases, APIs, and other resources.
How do MCP Servers work?
MCP Servers follow a client-server architecture where a host application (like Claude Desktop) connects to multiple servers. Each server provides specific functionality through standardized endpoints and protocols, enabling Claude to access data and perform actions through the standardized protocol.
Are MCP Servers secure?
Yes, MCP Servers are designed with security in mind. They run locally with explicit configuration and permissions, require user approval for actions, and include built-in security features to prevent unauthorized access and ensure data privacy.
Related MCP Servers
Fetch
Web content fetching and conversion for efficient LLM usage
Playwright
A Model Context Protocol (MCP) server that provides browser automation capabilities using Playwright. This server enables LLMs to interact with web pages through structured accessibility snapshots, bypassing the need for screenshots or visually-tuned models.
puppeteer-mcp-server
Puppeteer
Browser automation and web scraping
Playwright Universal MCP
A universal Playwright MCP server for browser automation in containerized environments
MCP Server Playwright
MCP Server Playwright - A browser automation service for Claude Desktop
OneNote MCP Server
MCP server for browsing and interacting with OneNote web app using browser-use automation
Playwright
๐ Fetcher MCP - Playwright Headless Browser Server
MCP server for fetch web page content using Playwright headless browser.
MCP Browser
NeoForge Browser MCP server - used to test the frontend
Submit Your MCP Server
Share your MCP server with the community
Submit Now