MCP服务器幻灯片
FastMCP服务器,用于使用模型上下文协议(MCP)验证Google Drive中的Google幻灯片文件。
特性
- 展示管理:阅读、编辑和管理Google幻灯片演示文稿
- 文本编辑:使用完整的格式控制(粗体、颜色、字体、对齐方式等)更新文本
- 网元管理:将图像、表格、图表和项目符号添加到幻灯片中
- 滑动操作:复制幻灯片并管理演示文稿结构
- OAuth身份验证:使用演示文稿读/写权限安全访问Google API
- 日志记录:可选的基于文件的日志记录系统
- 无控制台输出:所有日志记录都将转到
logs.txt用于调试
先决条件
- 谷歌云项目设置:
- 首选 谷歌云控制台 - 创建新项目或选择现有项目 - 启用Google Drive API和Google Slides API - 创建OAuth 2.0凭据(桌面应用程序) - 使用以下范围配置OAuth同意屏幕: - https://www.googleapis.com/auth/drive.readonly - https://www.googleapis.com/auth/drive.file - https://www.googleapis.com/auth/presentations - 下载凭据JSON文件
- UV包装管理器:
- 安装 紫外线 如果尚未安装
安装
# Install dependencies
uv sync配置
- 复制示例环境文件:
cp env.example .env- 编辑
.env并配置:
- OAUTH_CLIENT_SECRET:您的Google OAuth凭据JSON文件的路径 - OAUTH_CLIENT_TOKEN:OAuth令牌的保存路径 - ENABLE_LOGGING:设置为 true 启用日志记录 logs.txt
- 将您的Google OAuth凭据文件放置在指定的位置
OAUTH_CLIENT_SECRET
用法
运行服务器
在stdio模式下运行服务器:
uv run slides-mcp与检查员一起开发
使用FastMCP检查器运行服务器进行测试和调试:
uv run fastmcp dev src/server.py这将启动一个交互式检查器,您可以在其中:
- 测试工具
- 浏览资源
- 尝试提示
- 查看服务器功能
项目结构
slides-mcp-server/
├── src/
│ ├── __init__.py
│ └── server.py # Main FastMCP server implementation
├── pyproject.toml # Project configuration and dependencies
└── README.md可用工具
get_slides_deck(file_id: str)
通过文件ID获取Google幻灯片演示文稿的内容。
参数:
file_id(str):要检查的Google Drive文件ID
退货:
success(bool):操作是否成功is_slides(bool):文件是否为谷歌幻灯片演示文稿presentation(object):演示元数据(id、title、locale、slide_count、revision_id)file(对象):文件元数据(id、名称、mimeType、时间戳、webViewLink)slides(array):包含内容的幻灯片对象数组
- 每张幻灯片包含:slide_number、object_id和元素数组 - 元素可以是:形状(带文本内容)、表格、图像、视频
error(str):如果发生错误,则显示错误消息
示例(成功-谷歌幻灯片):
{
"success": true,
"is_slides": true,
"presentation": {
"id": "1ABC...",
"title": "My Presentation",
"locale": "en",
"slide_count": 3,
"revision_id": "ALm..."
},
"file": {
"id": "1ABC...",
"name": "My Presentation",
"mimeType": "application/vnd.google-apps.presentation",
"webViewLink": "https://docs.google.com/presentation/d/1ABC.../edit"
},
"slides": [
{
"slide_number": 1,
"object_id": "slide_id_1",
"elements": [
{
"object_id": "shape1",
"type": "shape",
"content": "Welcome to the presentation"
},
{
"object_id": "img1",
"type": "image",
"content": "https://..."
}
]
}
]
}示例(不是幻灯片文件):
{
"exists": true,
"is_slides": false,
"message": "File exists but is not a Google Slides file (type: application/pdf)"
}示例(找不到文件):
{
"exists": false,
"is_slides": false,
"message": "File with ID '1ABC...' not found in Google Drive"
}发展
服务器使用stdio传输进行通信,使其与Claude Desktop等MCP客户端兼容。
日志记录
当 ENABLE_LOGGING=true 设置在您的 .env 文件,服务器将所有操作记录到 logs.txt 包括:
- 身份验证尝试
- 文件搜索查询
- 结果和错误
- 所有操作的时间戳
身份验证流程
首次运行时,服务器将:
- 在以下位置检查现有令牌
OAUTH_CLIENT_TOKEN - 如果未找到:
- 将OAuth授权URL记录到 logs.txt (当 ENABLE_LOGGING=true) - 打开浏览器进行OAuth身份验证 - 将令牌保存到中指定的路径 OAUTH_CLIENT_TOKEN
- 自动刷新过期的令牌
- 所有身份验证步骤都记录到
logs.txt用于调试
备注:检查 logs.txt 如果您需要手动复制授权URL,或者浏览器没有自动打开,请使用该URL。
安全说明
- 永远不要承诺你的
.env文件,credentials.json,或token.json到版本控制 - OAuth令牌提供:
- 对Google Drive元数据的只读访问 - 创建和管理应用程序创建或打开的文件 - 完全读/写访问谷歌幻灯片演示文稿
- 日志可能包含敏感信息-保留
logs.txt安全 - 审查和批准OAuth同意屏幕,以控制服务器可以访问哪些演示文稿
许可证
在此处添加您的许可证。
