谷歌幻灯片MCP服务器
描述
该项目提供了一个模型上下文协议(MCP)服务器,用于与Google幻灯片API交互。它允许您通过安全的服务帐户身份验证方法以编程方式创建、阅读、修改和管理Google幻灯片演示文稿。
Gemini CLI快速入门(主要方法)
完整的安装说明
按照以下分步说明使用Gemini CLI设置Google Slides MCP服务器:
- 创建工作目录
mkdir ~/coding_projects/working- 导航到工作目录
cd ~/coding_projects/working- 为Google服务帐户创建密钥目录
mkdir -p ~/coding_projects/working/keys- 复制您的Google服务帐户密钥
- 拖放您的 google_service_account_key.json 文件到目录: ~/coding_projects/working/keys - 确保文件命名准确 google_service_account_key.json
- 使用Gemini API密钥创建.env文件
vi ~/coding_projects/working/.env- 按 i 进入插入模式 - 类型: GEMINI_API_KEY=your_actual_api_key_here - 按 ESC,然后键入 :wq 并按 Enter 保存并退出
- 创建MCP配置目录
mkdir -p ~/coding_projects/working/.gemini- 配置MCP设置
vi ~/coding_projects/working/.gemini/settings.json- 按 i 进入插入模式 - 插入以下内容:
{
"mcpServers": {
"google-slides-mcp": {
"command": "google-slides-mcp"
}
}
}- 按 ESC,然后键入 :wq 并按 Enter 保存并退出
- 全局安装Google Slides MCP服务器
记住先在终端中执行此命令:
npm install -g @bohachu/google-slides-mcp这会将远程MCP服务器全局安装到您的本地计算机上,使其可以从任何路径执行。
- 验证安装
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服务帐户身份验证
- 转到 谷歌云控制台
- 创建新项目或选择现有项目
- 启用Google幻灯片API:
- 导航到“APIs&Services”>“已启用的APIs&Services” - 点击“+启用API和服务” - 搜索“Google Slides API”并启用它
- 创建服务帐户凭据:
- 导航到“API和服务”>“凭据” - 点击“+创建CREDENTIALS”>“服务帐户” - 填写服务帐户详细信息 - 点击“创建”和“完成”
- 下载服务帐户密钥:
- 点击您新创建的服务帐户 - 转到“密钥”选项卡 - 点击“添加密钥”>“创建新密钥” - 选择“JSON”作为密钥类型 - 点击“创建”下载JSON文件
- 重要提示: 将下载的文件重命名为
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项目的服务帐户凭据。
设置
- 克隆存储库(如果适用)或确保您位于项目目录中。
- 安装依赖项:
npm install- 构建服务器:
将TypeScript代码编译为JavaScript:
npm run build这将创建一个 build 包含编译的JavaScript代码的目录。
- 设置身份验证:
此项目使用Google服务帐户身份验证,以实现更好的安全性和更容易的部署。
获取Google服务帐户凭据:
- 转到 谷歌云控制台. - 创建新项目或选择现有项目。 - 导航到“APIs&Services”>“已启用的APIs&Services”。 - 单击“+启用API和服务”,搜索“Google Slides API”并启用。 - 导航到“API和服务”>“凭据”。 - 单击“+创建CREDENTIALS”>“服务帐户”。 - 填写服务帐户详细信息: - 服务帐户名称(例如,“幻灯片mcp服务”) - 服务帐户ID(将自动生成) - 服务帐户描述(可选) - 单击“创建”。 - 跳过授予角色和用户访问权限的可选步骤。 - 单击“完成”。 - 在列表中找到您新创建的服务帐户,然后单击它。 - 转到“密钥”选项卡。 - 单击“添加密钥”>“创建新密钥”。 - 选择“JSON”作为密钥类型。 - 单击“创建”。JSON文件将被下载到您的计算机。 - 重要提示: 将此文件重命名为 google_service_account_key.json 并将其放置在 keys 这个项目的目录。
- 授予权限(如果需要):
- 如果您需要访问不属于服务帐户的特定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
编辑配置后:
- 完全退出克劳德桌面
- 重新启动克劳德桌面
- 查找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
设置步骤:
- 首次全局安装:
npm install -g @bohachu/google-slides-mcp - 打开设置(
Ctrl+Shift+J或Cmd+Shift+J) - 导航到功能→ 模型上下文协议
- 单击“添加”添加新服务器
- 创建或编辑
.cursor/mcp.json:
{
"mcpServers": {
"google-slides-mcp": {
"command": "google-slides-mcp"
}
}
}- 刷新并确保服务器指示器变为绿色
所有工具的重要注意事项:
- 首先全局安装服务器:
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 - 服务帐户密钥应保持安全,并定期轮换
- 仅向服务帐户授予必要的权限
