使用说明
项目简介
本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,它使用 Python 和 FastMCP 框架构建,旨在为 LLM 应用提供访问 Google Chat 信息的上下文服务。通过集成 Google Chat API,该服务器提供了一系列工具,允许 LLM 客户端检索 Google Chat 空间和消息,从而实现更智能的聊天应用集成。
主要功能点
- OAuth2 认证: 通过 Google OAuth2 认证流程,安全访问 Google Chat API。
- Google Chat 空间列表: 获取用户可访问的所有 Google Chat 空间列表。
- Google Chat 消息检索: 从指定 Google Chat 空间检索消息,支持按日期范围过滤。
- 本地认证服务器: 提供独立的本地认证服务器,简化 OAuth2 认证流程的配置和使用。
- MCP 协议支持: 基于 FastMCP 框架,实现了标准的 MCP 服务器功能,可以与任何 MCP 客户端进行交互。
安装步骤
-
克隆仓库
git clone https://github.com/chy168/google-chat-mcp-server.git cd google-chat-mcp-server -
准备 Google Cloud 项目和 OAuth 2.0 凭据
- 前往 Google Cloud Console 创建或选择一个项目。
- 确保在该项目中启用了 Chat API。
- 在 Google Cloud Console 中,进入 API 和服务 -> 凭据。
- 点击 创建凭据 -> OAuth 客户端 ID。
- 选择 Web 应用 作为应用类型。
- 在 已授权的 JavaScript 来源 中添加 'http://localhost:8000'。
- 在 已授权的回调 URI 中添加 'http://localhost:8000/auth/callback'。
- 创建完成后,下载客户端密钥 JSON 文件,并将其重命名为 'credentials.json',放置在项目根目录下。
-
运行认证服务器获取 Access Token 打开终端,进入项目根目录,运行以下命令启动本地认证服务器:
python server.py -local-auth --port 8000然后,在浏览器中打开 http://localhost:8000/auth ,按照页面提示完成 Google 账号登录和授权。登录成功后,Access Token 将会被保存为项目根目录下的 'token.json' 文件。
服务器配置
为了让 MCP 客户端能够连接到 Google Chat MCP 服务器,需要配置客户端的 'mcp.json' 文件。以下是一个示例配置,请根据实际情况修改 '<YOUR_REPO_PATH>' 为你的仓库路径:
{ "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" ] } } }
配置参数说明:
- server name: 'google_chat' - 服务器名称,可以自定义。
- command: 'uv' - 建议使用 'uv' 运行 Python 代码,也可以是 'python' 或 'python3',取决于你的环境配置。
- args: 启动服务器的参数列表。
- '--directory <YOUR_REPO_PATH>/google-chat-mcp-server': 指定工作目录为仓库根目录。
- 'run server.py': 运行 'server.py' 文件启动 MCP 服务器。
- '--token-path <YOUR_REPO_PATH>/google-chat-mcp-server/token.json': 指定 'token.json' 文件的路径,用于服务器加载和保存 Google API 的 Access Token。
基本使用方法
-
启动 MCP 服务器 确保已完成安装步骤和服务器配置。在终端中,进入项目根目录,运行以下命令启动 MCP 服务器(注意:不要使用 '-local-auth' 参数,此参数仅用于运行本地认证服务器):
python server.py --token-path token.json或者,如果你使用 'uv':
uv run server.py --token-path token.json服务器成功启动后,会监听 MCP 客户端的请求。
-
使用 MCP 客户端调用工具 配置好 MCP 客户端并连接到 'google_chat' 服务器后,你可以调用以下工具来访问 Google Chat 信息:
- 'get_chat_spaces()': 获取 Google Chat 空间列表。客户端发送请求后,服务器会返回一个包含空间信息的 JSON 响应。
- 'get_space_messages(space_name: str, start_date: str, end_date: str = None)': 获取指定 Google Chat 空间的消息。
- 'space_name': 要查询的空间名称 (例如: 'spaces/xxxxx')。
- 'start_date': 起始日期,格式为 'YYYY-MM-DD' (例如: '2024-01-01')。
- 'end_date': 结束日期,格式为 'YYYY-MM-DD' (可选)。 客户端需要提供正确的参数,服务器会返回指定空间和日期范围内的消息列表。
示例 (MCP 客户端请求 - JSON-RPC 格式):
-
获取空间列表:
{ "jsonrpc": "2.0", "method": "call_tool", "params": { "tool_name": "google_chat/get_chat_spaces", "tool_args": {} }, "id": "1" } -
获取指定空间的消息:
{ "jsonrpc": "2.0", "method": "call_tool", "params": { "tool_name": "google_chat/get_space_messages", "tool_args": { "space_name": "spaces/xxxxx", "start_date": "2024-07-01", "end_date": "2024-07-07" } }, "id": "2" }
请参考 FastMCP 和 MCP 协议文档,了解更多关于如何构建和发送 MCP 客户端请求的信息。
信息
分类
通信与社交