该项目是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在作为AI应用或LLM客户端与Google Workspace服务(如Google日历)之间的桥梁。它允许AI通过标准化的MCP请求,安全地访问用户的Google Workspace数据和功能。
项目简介
该服务器通过实现MCP标准,提供一套工具(Tools)供LLM客户端调用,例如列出日历、获取或创建日历事件。它集成了OAuth 2.0流程来安全地获取用户授权,处理认证凭据的存储和刷新。支持Stdio和HTTP等多种传输方式。
主要功能点
- Google Workspace集成: 提供与Google日历API交互的能力,支持查看和创建日历事件。
- 安全认证: 实现标准的OAuth 2.0授权流程,通过用户授权安全访问Google数据,并管理用户凭据。
- MCP标准兼容: 遵循Model Context Protocol规范,通过JSON-RPC协议与兼容的客户端通信。
- 多种传输支持: 可通过标准输入/输出 (Stdio) 或 HTTP 方式运行。
- 可扩展性: 设计上便于添加对其他Google Workspace服务或API的支持。
安装步骤
- 克隆仓库:
git clone https://github.com/taylorwilsdon/google_workspace_mcp.git cd google_workspace_mcp - 安装依赖: 使用 'uv' (需要先安装uv: 'pip install uv') 安装项目及其依赖。
uv pip install -e . - 配置Google Cloud OAuth:
- 访问 Google Cloud Console,创建或选择一个项目。
- 在 "APIs & Services" -> "Library" 中启用所需的API,例如 "Google Calendar API"。
- 在 "APIs & Services" -> "OAuth consent screen" 中配置同意屏幕。
- 在 "APIs & Services" -> "Credentials" 中创建 "OAuth client ID",选择 "Desktop app" 类型。
- 创建后,下载客户端凭据 JSON 文件。将文件重命名为 'client_secret.json' 并放置在项目 根目录 ('google_workspace_mcp/') 下。
- 重要: 将 'client_secret.json' 添加到 '.gitignore' 文件中,切勿提交到版本控制。
- 在 Google Cloud Console 的 OAuth 客户端ID设置中,将授权重定向URI 'http://localhost:8080/callback' 添加到 "Authorized redirect URIs" 列表中。
服务器配置
MCP客户端需要知道如何启动此服务器进程并与之通信。典型的MCP客户端配置需要提供服务器的名称以及启动命令和参数。
- 服务器名称: 'google_workspace'
- 启动命令: 'python'
- 启动参数: '["main.py"]'
客户端配置示例(概念描述,非实际代码): 客户端会配置一个条目,指定服务器名称为 'google_workspace',使用 'python' 命令执行项目根目录下的 'main.py' 文件。服务器运行时需要确保Python 3.12+环境已激活,且通过'uv pip install -e .'安装的所有依赖以及 'client_secret.json' 文件都已正确就位。对于HTTP模式,需要配置为执行相应的HTTP启动命令并指定端口。
基本使用方法
- 启动服务器: 在安装和配置完成后,根据MCP客户端的配置,客户端会自动启动服务器进程(例如通过执行 'python main.py')。或者,您可以根据开发/测试需要手动启动(参见README中的运行方式)。
- 进行认证: 如果是首次使用或凭据失效,当调用需要授权的工具(如 'list_calendars')时,服务器会指示客户端提示用户通过访问一个Google授权URL来完成OAuth流程。用户需要在浏览器中完成授权。服务器(通过内置的回调服务器)接收授权码后,会自动交换并存储凭据。
- 调用工具: LLM客户端可以通过标准的MCP JSON-RPC请求调用服务器提供的工具,例如调用 'list_calendars' 获取日历列表,调用 'get_events' 查询事件,或调用 'create_event' 创建新事件。服务器接收请求,使用已存储的用户凭据与Google Calendar API交互,并将结果通过MCP响应返回给客户端。
信息
分类
生产力应用