项目简介

这是一个基于Model Context Protocol (MCP) 实现的服务器,专门用于与 Google Slides API 进行交互。它允许连接到此服务器的 LLM(大型语言模型)客户端通过标准化的协议来创建、读取和修改 Google 演示文稿。

主要功能点

  • 创建演示文稿: LLM 可以请求创建一个新的 Google 演示文稿,并指定其标题。
  • 获取演示文稿详情: LLM 可以根据演示文稿 ID 获取其详细信息,包括页面(幻灯片)结构、大小等。
  • 批量更新演示文稿: 这是核心功能,LLM 可以通过发送一系列操作请求来修改演示文稿,例如添加文本框、形状、图片、创建新幻灯片、删除元素等。
  • 获取特定页面详情: LLM 可以根据演示文稿 ID 和页面(幻灯片)对象 ID 获取特定页面的详细信息。

安装步骤

  1. 确保你的系统上安装了 Node.js (推荐 v18 或更高版本) 和 npm。
  2. 克隆此 GitHub 仓库到本地。
  3. 在项目目录中打开终端,运行 'npm install' 安装项目依赖。
  4. 运行 'npm run build' 编译 TypeScript 代码。这会在项目根目录生成一个 'build' 文件夹,包含可执行的 JavaScript 文件 ('build/index.js')。
  5. 访问 Google Cloud Console,创建一个 Google Cloud 项目或使用现有项目。
  6. 在你的 Google Cloud 项目中,启用 Google Slides API。
  7. 创建 OAuth 2.0 客户端 ID 和客户端密钥。选择“桌面应用”类型。
  8. 通过 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 协议发现并调用其提供的工具。

  1. LLM 可以发送 'ListTools' 请求来获取服务器提供的工具列表 ('create_presentation', 'get_presentation', 'batch_update_presentation', 'get_page') 及其功能描述和输入参数规范。
  2. LLM 可以根据需要构造 'CallTool' 请求,指定要调用的工具名称 ('name') 和相应的参数 ('arguments'),发送给服务器。
  3. 服务器会执行对应的 Google Slides API 操作,并将结果(成功响应或错误信息)通过 MCP 协议返回给 LLM。特别是 'batch_update_presentation' 工具的 'requests' 参数,LLM 需要根据 Google Slides API 文档构造具体的更新操作请求对象数组。

信息

分类

生产力应用