使用说明
谷歌幻灯片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) - 至少授予“编辑”权限以实现完整功能
- 与服务帐户电子邮件共享演示文稿(在JSON密钥文件中作为
- 如果您需要访问不属于服务帐户的特定Google幻灯片演示文稿:
致谢
该项目基于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,必填):定义更新的请求对象数组。请参阅 谷歌幻灯片APIbatchUpdate文档 对于单个请求的结构。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:幻灯片的对象IDcontent:从幻灯片中提取的所有文本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 - 服务帐户密钥应保持安全,并定期轮换
- 仅向服务帐户授予必要的权限
