Google Slides API 服务器

一个生产就绪的MCP服务器,提供对Google Slides API的语义化、开发者友好的访问,支持本地Python包和远程Cloudflare Workers部署。

  • by forayconsulting
  • TypeScript
  • 混合部署
  • 1 星标
  • 更新于
在 GitHub 查看 forayconsulting/google-slides-mcp

使用说明

谷歌幻灯片MCP服务器

一个生产就绪的MCP(模型上下文协议)服务器,提供对Google Slides API的语义友好访问。既可作为本地使用的Python包,也可作为远程访问的Cloudflare Workers部署。

特性

  • API完全访问:通过直接传递到所有47个Google Slides API请求类型 batch_update
  • 语义定位:人性化的工具,抽象出EMU数学并转换计算
  • 模板工作流:复制模板,用文本或图像替换占位符
  • OAuth支持:多用户场景下的每用户身份验证
  • 两种部署选项:
    • Python(FastMCP):克劳德桌面/代码的本地stdio传输
    • Cloudflare员工:Claude Mobile和web客户端的远程SSE传输

快速开始

选项1:Cloudflare Workers(远程)

将Claude Desktop或Claude Mobile连接到托管服务器:

URL: https://google-slides-mcp.foray-consulting.workers.dev/sse

无需本地安装-只需添加为自定义连接器并使用您的Google帐户进行身份验证。托管服务器可供任何谷歌用户公开访问。

注: 在首次身份验证时,您将看到谷歌的“此应用程序未验证”警告。点击 高级 → 转到谷歌幻灯片MCP(不安全) 继续。对于尚未完成谷歌验证过程的应用程序来说,这是正常的。

选项2:Python(本地)

cd packages/python
pip install -e ".[dev]"

# Acquire OAuth tokens
python scripts/get_token.py

# Run the server
google-slides-mcp --transport stdio

仓库结构

google-slides-mcp/
├── packages/
│   ├── python/                 # Python FastMCP implementation
│   │   ├── src/google_slides_mcp/
│   │   │   ├── tools/          # All 36 MCP tools
│   │   │   └── prompts/        # Workflow and discovery prompts
│   │   ├── scripts/
│   │   ├── tests/
│   │   └── pyproject.toml
│   │
│   └── cloudflare/             # Cloudflare Workers implementation
│       ├── src/
│       │   ├── index.ts        # OAuthProvider entry point
│       │   ├── mcp-agent.ts    # McpAgent Durable Object
│       │   ├── api/            # Google API REST clients + TokenManager
│       │   ├── auth/           # Google OAuth handler
│       │   ├── tools/          # All 36 MCP tools
│       │   ├── prompts/        # Workflow and discovery prompts
│       │   └── utils/          # EMU, color, transform utilities
│       ├── wrangler.toml
│       └── package.json
│
├── docs/
│   ├── development_history.md
│   └── google-oauth-setup.md
└── README.md

可用工具(共36个)

低级工具

  • batch_update -根据Google Slides API执行原始批更新请求
  • get_presentation -检索演示文稿元数据、幻灯片和元素
  • get_page -获取特定幻灯片的详细信息

模板工具

  • copy_template -复制Google幻灯片模板以创建新演示文稿
  • replace_placeholders -替换整个演示文稿中的占位符文本
  • replace_placeholder_with_image -用图像替换占位符形状
  • search_presentations -在Google云端硬盘中搜索演示文稿

创建工具

  • create_slide -使用预定义或自定义布局创建新幻灯片
  • add_text_box -向幻灯片添加样式文本框
  • add_image -从URL添加图像
  • add_shape -添加形状(矩形、椭圆形等)

内容工具

  • update_slide_content -按占位符类型更新幻灯片文本
  • update_presentation_content -跨多张幻灯片批量更新文本
  • apply_text_style -在幻灯片中应用一致的样式
  • update_table_content -使用可选的标题样式批量更新表单元格文本
  • replace_text_on_slide -幻灯片范围的查找和替换(比演示文稿范围的替换更安全)

定位工具

  • position_element -使用英寸和对齐来定位和调整元素的大小
  • distribute_elements -将元素均匀地分布在幻灯片上
  • align_elements -将多个元素彼此对齐或与幻灯片对齐

实用工具

  • list_slides -列出所有带有ID和标题的幻灯片
  • list_layouts -列出带有占位符类型的可用幻灯片布局
  • get_element_info -以人类可读的格式获取元素详细信息
  • inspect_slide -带有溢出/空警告的全面幻灯片审核
  • inspect_slides -在单个API调用中批量检查多个幻灯片
  • export_thumbnail -生成幻灯片缩略图

清理工具

  • clear_slide -从幻灯片中删除所有元素

分析工具

  • analyze_presentation -深潜风格指南提取

可视化工具

  • add_table -在幻灯片上创建样式化数据表
  • add_bar_chart -使用形状创建条形图
  • add_stat_callout -创建KPI/指标显示卡

装饰工具

  • set_slide_background -将幻灯片背景设置为颜色或图像
  • add_line -在幻灯片上添加直线

复合工具

  • get_presentation_style -从演示文稿中提取主题颜色和字体
  • create_table_slide -在一次通话中创建完整的主题表格幻灯片
  • create_chart_slide -在一次通话中创建完整的主题条形图幻灯片
  • create_dashboard_slide -在一次通话中创建完整的KPI仪表板幻灯片

MCP提示(共7条)

服务器包括语义路由提示,指导LLM实现最佳工具使用:

工作流提示

  • create_presentation_from_template -完成基于模板的甲板创建工作流程
  • update_existing_presentation -修改现有演示文稿的指南
  • build_presentation_from_scratch -创建没有模板的演示文稿
  • analyze_and_replicate_style -提取并应用样式指南

发现提示

  • get_started -工具景观和抽象级别介绍
  • tool_reference -按类别列出的详细工具参考
  • troubleshooting -常见问题和解决方案

Python包

安装

cd packages/python
pip install -e ".[dev]"

配置

  1. 在以下位置创建Google OAuth 2.0凭据 Google 云控制台
  2. 启用Google Slides API和Google Drive API
  3. 复制 .env.example 到 .env 并填写您的凭据

有关详细的设置说明,请参阅 docs/google-oauth-setup.md.

Claude桌面配置

{
  "mcpServers": {
    "google-slides": {
      "command": "google-slides-mcp",
      "args": ["--transport", "stdio"]
    }
  }
}

Cloudflare工人包

部署

cd packages/cloudflare
npm install

# Create KV namespace
npx wrangler kv namespace create "OAUTH_KV"

# Set secrets
npx wrangler secret put GOOGLE_CLIENT_ID
npx wrangler secret put GOOGLE_CLIENT_SECRET
npx wrangler secret put COOKIE_ENCRYPTION_KEY

# Deploy
npm run deploy

建筑

  • OAuthProvider:使用PKCE处理MCP OAuth 2.1流
  • McpAgent(耐用对象):维护会话状态和WebSocket连接
  • 谷歌OAuth处理程序:使用Google进行上游身份验证
  • 直接REST:用途 fetch() 而不是googleapi npm包

本地开发

npm run dev        # Start local server on port 8788
npm run typecheck  # Run TypeScript checks

发展

python

cd packages/python
pytest                    # Run tests
ruff check .              # Linting
mypy src/                 # Type checking

云耀

cd packages/cloudflare
npm run typecheck         # TypeScript checks
npm run dev               # Local development
npm run deploy            # Deploy to Cloudflare

发展历程

关于这个项目是如何构思和构建的详细时间表——从最初的构思到实际实施——请参阅 docs/development_history.md.

许可证

MIT许可证-请参阅 许可证 了解详情。