Skip to main content
Glama
matteoantoci

google-slides-mcp

by matteoantoci

Google Slides MCP Server

此进程是面向 Google Slides API 的 MCP 服务器。宿主通过 stdio 与它通信。首次启动会打开浏览器。您需要粘贴桌面客户端 ID 和客户端密钥。随后进入 Google 同意授权。后续启动会读取令牌存储。

前提条件

  • Node.js 20 或更高版本

  • 一个已启用 Google Slides API 的 Google Cloud 项目

  • 一个 OAuth 桌面客户端 ID 和客户端密钥

您不需要刷新令牌。您不需要进程环境变量。

Related MCP server: MCP Google Sheets Server

Claude Code

  1. 创建桌面 OAuth 客户端。按下述 Google Auth 平台步骤操作。

  2. 在 Claude Code 中运行:

/plugin marketplace add matteoantoci/claude-plugins
/plugin install google-slides-mcp@matteoantoci-plugins
  1. 如果 Claude 提示,请运行 /reload-plugins。

  2. 首次启动会打开浏览器。粘贴客户端 ID 和客户端密钥。完成 Google 同意授权。

后续会话会读取令牌存储。无需宿主 JSON。无需环境变量。

其他宿主

  1. 克隆此仓库。

  2. 运行 npm install。

  3. 运行 npm run build。

  4. 在 Google Cloud Console 中创建桌面 OAuth 客户端:

    • 打开 Google Auth platform。

    • 如果页面提示平台尚未配置,请点击开始使用。

    • 应用名称:Google Slides MCP。用户支持电子邮件:您的邮箱地址。

    • 受众群体:外部。

    • 联系电子邮件:您的邮箱地址。同意该政策。点击创建。

    • 打开受众群体。将您的 Gmail 添加为测试用户。

    • 打开数据访问权限。添加 https://www.googleapis.com/auth/presentations 和 https://www.googleapis.com/auth/drive.readonly。保存。

    • 打开客户端。点击创建客户端。应用类型:桌面应用。名称:Google Slides MCP Desktop。点击创建。

    • 复制客户端 ID 和客户端密钥。

  5. 运行 npm run start。粘贴客户端 ID 和客户端密钥。完成 Google 同意授权。然后停止该进程。

  6. 将宿主指向 node /path/to/google-slides-mcp/build/index.js。不要设置环境变量。

示例宿主配置:

"google-slides-mcp": {
  "transportType": "stdio",
  "command": "node",
  "args": [
    "/path/to/google-slides-mcp/build/index.js"
  ]
}

请将路径替换为您机器上编译后的 build/index.js。

首次启动

该进程会打开一个回环页面。

  • 如果存储中没有客户端 ID 或客户端密钥,请粘贴这两个值。

  • 继续前往 Google 同意授权。

  • 关闭成功页面。

该进程会将 Google 凭据写入令牌存储。它首先尝试操作系统钥匙串。如果钥匙串不可用,则使用 ~/.config/google-slides-mcp/credential.json。文件权限为 0600。

后续启动使用存储。不再打开浏览器。

GOOGLE_CLIENT_ID、GOOGLE_CLIENT_SECRET 和 GOOGLE_REFRESH_TOKEN 可以覆盖其中一个字段。它们绝非必需。如果环境变量提供了缺失的字段,该进程会将合并后的凭据写入存储。

无宿主运行

npm run start

该进程监听 stdio。stderr 会打印 Google Slides MCP server running and connected via stdio.

可用工具

  • create_presentation:创建新的 Google Slides 演示文稿。

    • 输入:

      • title(字符串,必需):新演示文稿的标题。

    • 输出: 表示所创建演示文稿详细信息的 JSON 对象。

  • get_presentation:检索现有演示文稿的详细信息。

    • 输入:

      • presentationId(字符串,必需):要检索的演示文稿的 ID。

      • fields(字符串,可选):用于限制返回数据的字段掩码(例如 "slides,pageSize")。

    • 输出: 表示演示文稿详细信息的 JSON 对象。

  • batch_update_presentation:对演示文稿应用一系列更新。这是修改幻灯片的主要方法(添加文本、形状、图像、创建幻灯片等)。

    • 输入:

      • presentationId(字符串,必需):要更新的演示文稿的 ID。

      • requests(数组,必需):定义更新的请求对象数组。单个请求的结构请参阅 Google Slides API batchUpdate 文档。

      • writeControl(对象,可选):控制写请求的执行方式(例如,使用修订 ID)。

    • 输出: 表示批量更新结果的 JSON 对象。

  • get_page:检索演示文稿中特定页面(幻灯片)的详细信息。

    • 输入:

      • presentationId(字符串,必需):要检索的演示文稿的 ID。

      • pageObjectId(字符串,必需):要检索的页面(幻灯片)的对象 ID。

    • 输出: 表示页面详细信息的 JSON 对象。

  • summarize_presentation:提取并格式化演示文稿中的所有文本内容,以便更轻松地生成摘要。

    • 输入:

      • presentationId(字符串,必需):要生成摘要的演示文稿的 ID。

      • include_notes(布尔值,可选):是否在摘要中包含演讲者备注。默认为 false。

    • 输出: 包含以下内容的 JSON 对象:

      • title:演示文稿的标题

      • slideCount:幻灯片总数

      • lastModified:修订信息

      • slides:包含以下内容的幻灯片对象数组:

        • slideNumber:在演示文稿中的位置

        • slideId:幻灯片的对象 ID

        • content:从幻灯片中提取的所有文本

        • notes:演讲者备注(如果已请求且可用)

Related MCP Connectors

Related MCP Servers