gws MCP 服务器

使用说明(Markdown 格式)

  • 项目简介
    • 该仓库实现了一个 MCP 服务器,用于向 MCP 客户端暴露 Google Workspace API 的工具(Tools)。服务器通过 STDIO 以 JSON-RPC 进行通信,客户端可以读取工具清单、调用工具、并管理会话上下文。
  • 主要功能点
    • 通过 MCP 协议接收与返回 JSON-RPC 请求与响应(初始化、工具列表、工具调用等)。
    • 基于 Google Discovery 自动发现并暴露 Service 的工具集(Drive、Gmail、Calendar 等)的功能入口。
    • 工具调用支持参数传递、Body 携带、分页、以及可选的安全策略(如模型词牌 Model Armor 的 Sanitization 针对输出进行检查)。
    • 会话管理与能力声明,允许客户端了解可用 Tools 与服务能力。
    • 兼容多种传输场景,当前实现以 stdio 形式运行,便于与 Claude Desktop、Gemini 等 MCP 客户端对接。
  • 安装步骤
    • 需要先安装 Rust 构建环境。
    • 在仓库根目录执行 cargo build 或 cargo install --path . 以编译可执行文件。
    • 运行方式示例(在命令行执行,具体服务暴露的工具可通过 -s 指定):
      • gws mcp -s drive
      • gws mcp -s drive,gmail,calendar
      • gws mcp -s all
  • 服务器配置
    • MCP 客户端需要知道服务器启动命令及参数来连接。示例配置(JSON,给 MCP 客户端): { "mcpServers": { "gws": { "command": "gws", "args": ["mcp", "-s", "drive,gmail,calendar"] } } }
    • 说明:
      • server name 为 gws,与 MCP 客户端配置中的 key 对应。
      • command 指定启动 MCP 服务器的可执行文件名,这里使用 gws。
      • args 指定启动时的参数,示例暴露 Drive、Gmail、Calendar 服务的工具集。
  • 基本使用方法
    • 启动服务器后,向标准输入写入 MCP 的 JSON-RPC 请求,服务器返回相应的 JSON-RPC 响应。
    • 客户端可以通过 initialize 进行初始化、通过 tools/list 获取可用工具清单、通过 tools/call 调用具体工具、并处理返回的结果。
    • 服务器负责维持会话、能力声明与工具执行逻辑,确保对 LLM 客户端提供一致、结构化的上下文与能力。

服务器信息