幻灯片管理服务

提供通过Google Slides API创建、读取、修改和管理演示文稿的程序化接口,支持服务账户安全认证。

  • by bohachu
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 bohachu/botrun-google-slides-mcp

使用说明

谷歌幻灯片MCP服务器

描述

该项目提供了一个模型上下文协议(MCP)服务器,用于与Google幻灯片API交互。它允许您通过安全的服务帐户身份验证方法以编程方式创建、阅读、修改和管理Google幻灯片演示文稿。

Gemini CLI快速入门(主要方法)

完整的安装说明

按照以下分步说明使用Gemini CLI设置Google Slides MCP服务器:

  1. 创建工作目录

    mkdir ~/coding_projects/working
    
  2. 导航到工作目录

    cd ~/coding_projects/working
    
  3. 为Google服务帐户创建密钥目录

    mkdir -p ~/coding_projects/working/keys
    
  4. 复制您的Google服务帐户密钥

    • 拖放您的 google_service_account_key.json 文件到目录: ~/coding_projects/working/keys
    • 确保文件命名准确 google_service_account_key.json
  5. 使用Gemini API密钥创建.env文件

    vi ~/coding_projects/working/.env
    
    • 按 i 进入插入模式
    • 类型: GEMINI_API_KEY=your_actual_api_key_here
    • 按 ESC,然后键入 :wq 并按 Enter 保存并退出
  6. 创建MCP配置目录

    mkdir -p ~/coding_projects/working/.gemini
    
  7. 配置MCP设置

    vi ~/coding_projects/working/.gemini/settings.json
    
    • 按 i 进入插入模式
    • 插入以下内容:
    {
      "mcpServers": {
        "google-slides-mcp": {
          "command": "google-slides-mcp"
        }
      }
    }
    
    • 按 ESC,然后键入 :wq 并按 Enter 保存并退出
  8. 全局安装Google Slides MCP服务器

    记住先在终端中执行此命令:

    npm install -g @bohachu/google-slides-mcp
    

    这会将远程MCP服务器全局安装到您的本地计算机上,使其可以从任何路径执行。

  9. 验证安装

    gemini -y
    

    现在,您应该看到Google Slides MCP服务器环境已安装并准备就绪。

快速设置(初始安装后)

完成初始设置后,后续使用只需:

export GOOGLE_API_KEY="YOUR_API_KEY"

全局安装MCP服务器:

npm install -g @bohachu/google-slides-mcp

然后编辑 ~/.gemini/settings.json 要添加Google幻灯片MCP服务器:

{
  "mcpServers": {
    "google-slides-mcp": {
      "command": "google-slides-mcp"
    }
  }
}

注意:服务帐户密钥文件必须存在于 keys/google_service_account_key.json 使用Gemini CLI时,相对于您的工作目录。

2.设置Google服务帐户身份验证

  1. 转到 谷歌云控制台
  2. 创建新项目或选择现有项目
  3. 启用Google幻灯片API:
    • 导航到“APIs&Services”>“已启用的APIs&Services”
    • 点击“+启用API和服务”
    • 搜索“Google Slides API”并启用它
  4. 创建服务帐户凭据:
    • 导航到“API和服务”>“凭据”
    • 点击“+创建CREDENTIALS”>“服务帐户”
    • 填写服务帐户详细信息
    • 点击“创建”和“完成”
  5. 下载服务帐户密钥:
    • 点击您新创建的服务帐户
    • 转到“密钥”选项卡
    • 点击“添加密钥”>“创建新密钥”
    • 选择“JSON”作为密钥类型
    • 点击“创建”下载JSON文件
  6. 重要提示: 将下载的文件重命名为 google_service_account_key.json 并将其放置在 keys 当前工作目录中的目录

3.与Gemini CLI一起使用

配置后,您可以直接在Gemini CLI中使用Google幻灯片工具。启动Gemini时,MCP服务器将自动加载。

其他安装方法

从源代码构建

如果你想从源代码构建或为项目做出贡献:

# Clone the repository
git clone https://github.com/bohachu/botrun-google-slides-mcp.git
cd botrun-google-slides-mcp

# Install dependencies
npm install

# Build the project
npm run build

先决条件

  • Node.js(建议使用v18或更高版本)
  • npm(通常随Node.js一起提供)
  • 启用谷歌幻灯片API的谷歌云项目。
  • 您的Google Cloud项目的服务帐户凭据。

设置

  1. 克隆存储库(如果适用)或确保您位于项目目录中。

  2. 安装依赖项:

    npm install
    
  3. 构建服务器: 将TypeScript代码编译为JavaScript:

    npm run build
    

    这将创建一个 build 包含编译的JavaScript代码的目录。

  4. 设置身份验证:

    此项目使用Google服务帐户身份验证,以实现更好的安全性和更容易的部署。

    获取Google服务帐户凭据:

    • 转到 谷歌云控制台.
    • 创建新项目或选择现有项目。
    • 导航到“APIs&Services”>“已启用的APIs&Services”。
    • 单击“+启用API和服务”,搜索“Google Slides API”并启用。
    • 导航到“API和服务”>“凭据”。
    • 单击“+创建CREDENTIALS”>“服务帐户”。
    • 填写服务帐户详细信息:
      • 服务帐户名称(例如,“幻灯片mcp服务”)
      • 服务帐户ID(将自动生成)
      • 服务帐户描述(可选)
    • 单击“创建”。
    • 跳过授予角色和用户访问权限的可选步骤。
    • 单击“完成”。
    • 在列表中找到您新创建的服务帐户,然后单击它。
    • 转到“密钥”选项卡。
    • 单击“添加密钥”>“创建新密钥”。
    • 选择“JSON”作为密钥类型。
    • 单击“创建”。JSON文件将被下载到您的计算机。
    • 重要提示: 将此文件重命名为 google_service_account_key.json 并将其放置在 keys 这个项目的目录。
  5. 授予权限(如果需要):

    • 如果您需要访问不属于服务帐户的特定Google幻灯片演示文稿:
      • 与服务帐户电子邮件共享演示文稿(在JSON密钥文件中作为 client_email)
      • 至少授予“编辑”权限以实现完整功能

致谢

该项目基于Matteo Antoci的原创作品: 谷歌幻灯片mcp原始项目在GPL-3.0下获得许可,此修改版本保持相同的许可。我们感谢Matteo Antoci和原始项目的所有贡献者创建了这个基金会。

与原始版本相比的主要变化:

  • 身份验证方法:从使用刷新令牌的OAuth 2.0更改为服务帐户身份验证,以提高安全性并简化部署
  • 新功能:已添加 move_presentation 用于将演示文稿移动/复制到Google Drive文件夹的工具
  • 增强的安全性:使用本地存储的服务帐户密钥文件而不是环境变量作为凭据
  • 推动API集成:添加了Google Drive API作用域以支持文件管理操作

其他工具的MCP配置

此MCP服务器还可以与支持模型上下文协议的其他AI工具一起使用:

克劳德桌面

配置文件位置:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%\Claude\claude_desktop_config.json

配置(全局安装后):

{
  "mcpServers": {
    "google-slides-mcp": {
      "command": "google-slides-mcp"
    }
  }
}

注: 首次全球安装 npm install -g @bohachu/google-slides-mcp

编辑配置后:

  1. 完全退出克劳德桌面
  2. 重新启动克劳德桌面
  3. 查找MCP指示灯(🔌) 在聊天输入的右下角

克劳德代码

使用CLI(全局安装后):

# First install globally
npm install -g @bohachu/google-slides-mcp

# Add the server
claude mcp add google-slides google-slides-mcp

# For project-specific configuration
claude mcp add google-slides -s project google-slides-mcp

直接配置文件:

  • 用户配置: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
  • 项目配置: {project}/.mcp.json

配置格式:

{
  "mcpServers": {
    "google-slides-mcp": {
      "command": "google-slides-mcp"
    }
  }
}

光标IDE

配置文件位置:

  • 项目特定: {project}/.cursor/mcp.json

设置步骤:

  1. 首次全局安装: npm install -g @bohachu/google-slides-mcp
  2. 打开设置(Ctrl+Shift+J 或 Cmd+Shift+J)
  3. 导航到功能→ 模型上下文协议
  4. 单击“添加”添加新服务器
  5. 创建或编辑 .cursor/mcp.json:
{
  "mcpServers": {
    "google-slides-mcp": {
      "command": "google-slides-mcp"
    }
  }
}
  1. 刷新并确保服务器指示器变为绿色

所有工具的重要注意事项:

  • 首先全局安装服务器: npm install -g @bohachu/google-slides-mcp
  • 服务帐户密钥必须存在于 keys/google_service_account_key.json 相对于当前工作目录
  • 服务器从密钥文件加载凭据时不需要环境变量
  • 配置更改后,重新启动相应的工具以使更改生效
  • 对于Windows用户,在路径中使用正斜杠或转义反斜杠(例如。, C:/path/to/file 或 C:\\path\\to\\file)

MCP连接故障排除:

  • 克劳德桌面/代码:查看日志 ~/Library/Logs/Claude/mcp*.log (macOS)或 %APPDATA%\Claude\logs\mcp*.log (Windows)
  • 光标:打开输出面板(Ctrl+Shift+U)并从下拉列表中选择“MCP日志”
  • Gemini CLI:跑步 --debug 详细日志记录标志
  • 确保Node.js已安装并可从命令行访问(node --version)
  • 验证生成目录是否存在并包含 index.js 运行后 npm run build

运行服务器

执行编译后的代码:

npm run start

服务器将启动并监听标准输入/输出(stdio)上的MCP请求。您应该看到这样的消息: Google Slides MCP server running and connected via stdio.

可用工具

服务器通过模型上下文协议公开以下工具:

  • create_presentation:创建新的Google幻灯片演示文稿。

    • 输入:
      • title (string,必填):新演示文稿的标题。
    • 输出: JSON对象表示创建的演示文稿详细信息。
  • get_presentation:检索有关现有演示文稿的详细信息。

    • 输入:
      • presentationId (string,必填):要检索的演示文稿的ID。
      • fields (字符串,可选):字段掩码(例如“幻灯片,页面大小”),用于限制返回的数据。
    • 输出: 表示演示详细信息的JSON对象。
  • batch_update_presentation:对演示文稿应用一系列更新。这是修改幻灯片(添加文本、形状、图像、创建幻灯片等)的主要方法。

    • 输入:
      • presentationId (字符串,必填):要更新的演示文稿的ID。
      • requests (array,必填):定义更新的请求对象数组。请参阅 谷歌幻灯片API batchUpdate 文档 对于单个请求的结构。
      • writeControl (object,可选):控制写入请求的执行(例如,使用修订ID)。
    • 输出: JSON对象表示批量更新的结果。
  • get_page:检索演示文稿中特定页面(幻灯片)的详细信息。

    • 输入:
      • presentationId (string,必填):包含页面的演示文稿的ID。
      • pageObjectId (string,必填):要检索的页面(幻灯片)的对象ID。
    • 输出: 表示页面详细信息的JSON对象。
  • summarize_presentation:从演示文稿中提取并格式化所有文本内容,以便于总结。

    • 输入:
      • presentationId (字符串,必填):要摘要的演示文稿的ID。
      • include_notes (布尔值,可选):是否在摘要中包含演讲者笔记。默认为false。
    • 输出: JSON对象包含:
      • title:演示文稿的标题
      • slideCount:幻灯片总数
      • lastModified:修订信息
      • slides:幻灯片对象数组,包含:
        • slideNumber:演示文稿中的位置
        • slideId:幻灯片的对象ID
        • content:从幻灯片中提取的所有文本
        • notes:演讲者笔记(如有要求且可用)
  • move_presentation:将演示文稿移动或复制到特定的Google Drive文件夹。

    • 输入:
      • presentationId (string,必填):要移动的演示文稿的ID。
      • folderId (string,必填):目标Google Drive文件夹的ID。
      • copyInstead (布尔值,可选):如果为true,则在目标文件夹中创建副本,而不是移动。默认为false。
      • newName (字符串,可选):演示文稿的新名称(仅在copyNot为true时使用)。
    • 输出: JSON对象包含:
      • success:布尔值,指示操作是否成功
      • message:描述发生的事情
      • presentationUrl:访问演示文稿的URL
    • 笔记:
      • 服务帐户必须具有移动文件的适当权限。
      • 如果直接移动失败,该工具将尝试将演示文稿添加到文件夹中,而不会将其从原始位置删除。
      • 作为最后的手段,它将与文件夹所有者共享演示文稿,以便手动移动。
      • 要从Google Drive URL提取文件夹ID,请执行以下操作: https://drive.google.com/drive/folders/[FOLDER_ID]

(通过扩展可以添加更多工具 src/index.ts)

许可证

此项目根据GNU通用公共许可证v3.0获得许可-请参阅 许可证 文件以获取详细信息。

原创作品版权所有(C)2025马泰奥·安托奇
修改版权所有(C)2025邱伯文

贡献

欢迎投稿!请随时提交拉取请求。

安全说明

  • 永远不要承诺你的 google_service_account_key.json 文件到版本控制
  • 这 keys/ 目录应添加到 .gitignore
  • 服务帐户密钥应保持安全,并定期轮换
  • 仅向服务帐户授予必要的权限