使用说明

项目简介

本项目是一个基于 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 客户端进行交互。

安装步骤

  1. 克隆仓库

    git clone https://github.com/chy168/google-chat-mcp-server.git
    cd google-chat-mcp-server
  2. 准备 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',放置在项目根目录下。
  3. 运行认证服务器获取 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。

基本使用方法

  1. 启动 MCP 服务器 确保已完成安装步骤和服务器配置。在终端中,进入项目根目录,运行以下命令启动 MCP 服务器(注意:不要使用 '-local-auth' 参数,此参数仅用于运行本地认证服务器):

    python server.py --token-path token.json

    或者,如果你使用 'uv':

    uv run server.py --token-path token.json

    服务器成功启动后,会监听 MCP 客户端的请求。

  2. 使用 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 客户端请求的信息。

信息

分类

通信与社交