项目简介
这是一个基于Model Context Protocol (MCP) 实现的服务器,专门用于与 Google Slides API 进行交互。它允许连接到此服务器的 LLM(大型语言模型)客户端通过标准化的协议来创建、读取和修改 Google 演示文稿。
主要功能点
- 创建演示文稿: LLM 可以请求创建一个新的 Google 演示文稿,并指定其标题。
- 获取演示文稿详情: LLM 可以根据演示文稿 ID 获取其详细信息,包括页面(幻灯片)结构、大小等。
- 批量更新演示文稿: 这是核心功能,LLM 可以通过发送一系列操作请求来修改演示文稿,例如添加文本框、形状、图片、创建新幻灯片、删除元素等。
- 获取特定页面详情: LLM 可以根据演示文稿 ID 和页面(幻灯片)对象 ID 获取特定页面的详细信息。
安装步骤
- 确保你的系统上安装了 Node.js (推荐 v18 或更高版本) 和 npm。
- 克隆此 GitHub 仓库到本地。
- 在项目目录中打开终端,运行 'npm install' 安装项目依赖。
- 运行 'npm run build' 编译 TypeScript 代码。这会在项目根目录生成一个 'build' 文件夹,包含可执行的 JavaScript 文件 ('build/index.js')。
- 访问 Google Cloud Console,创建一个 Google Cloud 项目或使用现有项目。
- 在你的 Google Cloud 项目中,启用 Google Slides API。
- 创建 OAuth 2.0 客户端 ID 和客户端密钥。选择“桌面应用”类型。
- 通过 Google OAuth 2.0 Playground 或其他授权流程,使用你的客户端 ID 和密钥,以及必要的 Google Slides API 权限范围 ('https://www.googleapis.com/auth/presentations'),获取一个 Google Refresh Token。
服务器配置
MCP 服务器通常由 MCP 客户端启动和管理。你需要在你的 MCP 客户端(例如某些支持 MCP 的 LLM 开发环境)的设置中配置如何启动此服务器。配置信息通常是一个 JSON 对象,你需要提供服务器名称、启动命令、参数以及认证信息环境变量。
以下是一个示例配置结构及其说明:
- '"your-chosen-server-alias"': 你在 MCP 客户端中为此服务器设置的一个别名(例如 '"google-slides"')。
- '"transportType"': 服务器与客户端之间的通信方式。对于此服务器,设置为 '"stdio"' (标准输入/输出)。
- '"command"': 用于启动服务器的可执行命令。对于 Node.js 应用,通常是 '"node"'。
- '"args"': 传递给 'command' 的参数列表。这里需要指定编译后服务器主文件的路径,例如 '["/path/to/google-slides-mcp/build/index.js"]'。请务必将 '/path/to/google-slides-mcp' 替换为你实际存放项目的路径。
- '"env"': 在启动服务器进程时设置的环境变量。你需要将你的 Google OAuth 凭据作为环境变量传递给服务器:
- '"GOOGLE_CLIENT_ID"': 你的 Google OAuth 客户端 ID。
- '"GOOGLE_CLIENT_SECRET"': 你的 Google OAuth 客户端密钥。
- '"GOOGLE_REFRESH_TOKEN"': 你获取到的 Google Refresh Token。
示例 JSON 配置片段(请根据你的客户端实际配置格式调整):
"your-chosen-server-alias": { "transportType": "stdio", "command": "node", "args": [ "你的项目实际路径/build/index.js" ], "env": { "GOOGLE_CLIENT_ID": "YOUR_CLIENT_ID_HERE", "GOOGLE_CLIENT_SECRET": "YOUR_CLIENT_SECRET_HERE", "GOOGLE_REFRESH_TOKEN": "YOUR_REFRESH_TOKEN_HERE" } // 可能还有其他如描述、图标等可选设置 }
基本使用方法
配置完成后,你的 MCP 客户端(LLM 应用)在与此服务器建立连接后,可以通过 MCP 协议发现并调用其提供的工具。
- LLM 可以发送 'ListTools' 请求来获取服务器提供的工具列表 ('create_presentation', 'get_presentation', 'batch_update_presentation', 'get_page') 及其功能描述和输入参数规范。
- LLM 可以根据需要构造 'CallTool' 请求,指定要调用的工具名称 ('name') 和相应的参数 ('arguments'),发送给服务器。
- 服务器会执行对应的 Google Slides API 操作,并将结果(成功响应或错误信息)通过 MCP 协议返回给 LLM。特别是 'batch_update_presentation' 工具的 'requests' 参数,LLM 需要根据 Google Slides API 文档构造具体的更新操作请求对象数组。
信息
分类
生产力应用