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 客户端提供一致、结构化的上下文与能力。